:root{font-family:Microsoft YaHei,Noto Sans SC,sans-serif;color:#153e5a;background:#f4f8fb;font-size:14px;line-height:1.7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #d9eaf4;color:#153e5a;background:#fff;padding:8px 15px;border-radius:8px;transition:background .15s}button:hover{background:#e8f5ff}button:disabled{opacity:.55;cursor:wait}a{color:#237bb8;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #208c91;outline-offset:2px}.primary{background:#237bb8;color:#fff;border-color:#237bb8}.primary:hover{background:#1c6ca4}.text-btn{background:transparent;border:0;padding:6px;color:#237bb8}.brand{font-size:26px;font-weight:700;letter-spacing:2px;color:#153e5a}.brand:before{content:"";display:inline-block;background:#237bb8;width:20px;height:22px;border-radius:4px 4px 2px 2px;margin-right:10px;vertical-align:-1px}.muted{color:#617e92}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.5;margin:8px 0 14px}h2{font-size:21px;margin:0 0 20px}h3{font-size:17px;margin:24px 0 12px}.kicker{color:#208c91;font-size:12px;letter-spacing:1px}.error,.success{border-radius:10px;padding:12px 16px;font-size:13px;margin-top:16px}.error{color:#a84136;background:#fff1ef;border:1px solid #f6d6d0}.success{color:#208c91;background:#e5f5f0;border:1px solid #cde9df}.banner{margin:0 0 20px}.auth-page{min-height:100vh;background:#e8f5ff url(/login-background.png) center/cover fixed;display:flex;flex-direction:column;align-items:center;padding:40px 20px;gap:24px}.auth-card{width:min(480px,100%);background:#fffffff5;border:1px solid white;border-radius:24px;padding:36px;box-shadow:0 18px 70px #153e5a15}.auth-card .muted{font-size:13px;margin-bottom:24px}.auth-card form>.primary{width:100%;min-height:48px}.auth-card form>.text-btn{display:block;margin:12px auto 0}.auth-foot{font-size:12px}label{display:block;color:#365a70;font-size:13px;margin-bottom:18px}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #d9eaf4;border-radius:8px;background:#fff;color:#153e5a;margin-top:6px;min-height:42px}input[type=checkbox]{width:20px;height:20px;min-height:0;display:block}textarea{min-height:100px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.wide{grid-column:1/-1}.required{color:#b0754e}.shell{display:flex;min-height:100vh}.shell aside{position:fixed;width:220px;top:0;bottom:0;background:#fff;border-right:1px solid #e4eef5;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.shell aside .brand{padding:0 12px}.sidebar-caption{font-size:11px;color:#617e92;padding:8px 12px 24px}.shell nav{overflow:auto;flex:1;scrollbar-width:thin}.shell nav button{border:0;background:transparent;text-align:left;display:block;width:100%;margin:3px 0;padding:10px 14px;color:#617e92;border-radius:9px}.shell nav button.selected{background:#e8f5ff;color:#237bb8;font-weight:600}.shell nav button:hover{background:#f4fafe}.sidebar-foot{border-top:1px solid #e4eef5;padding:18px 12px 0;color:#617e92;font-size:11px}.workspace{margin-left:220px;width:calc(100% - 220px)}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#fff;border-bottom:1px solid #e4eef5;gap:20px}.topbar strong{font-size:17px}.topbar .muted{font-size:12px;margin-left:20px}.account{display:flex;align-items:center;gap:22px;font-size:13px}.content{max-width:1600px;margin:auto;padding:32px}.welcome{padding:8px 0 26px}.welcome h1{font-size:27px}.welcome p:last-child{font-size:13px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:0 0 28px}.metrics>button,.metrics>div{padding:24px;text-align:left;background:#fff;border:1px solid #e4eef5;border-radius:16px;display:flex;flex-direction:column;gap:8px}.metrics span{font-size:12px;color:#617e92}.metrics strong{font-size:30px;line-height:1.4;letter-spacing:.5px}.metrics small{font-size:11px;color:#237bb8}.panel{background:#fff;border:1px solid #e4eef5;border-radius:18px;padding:28px;margin-bottom:24px}.panel.subtle{background:#e8f5ff;border-color:transparent}.panel.subtle h3{margin-top:0}.panel.subtle p{font-size:13px;color:#617e92}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.quick-actions button{text-align:left;display:flex;justify-content:space-between;padding:18px;background:#f4fafe;border:0;border-radius:12px}.quick-actions span{color:#237bb8}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.toolbar .search{max-width:280px;margin:0;flex:1}.toolbar label{margin:0}.toolbar input[type=date]{width:auto}.table-wrap{overflow:auto;background:#fff;border:1px solid #e4eef5;border-radius:16px}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{background:#f4fafe;color:#617e92;font-size:12px;font-weight:500;padding:16px 18px}td{padding:15px 18px;border-top:1px solid #edf3f7;font-size:13px;max-width:350px;overflow:hidden;text-overflow:ellipsis}tbody tr:hover{background:#fcfdff}.row-actions{display:flex;align-items:center;gap:6px;max-width:none;flex-wrap:wrap;min-width:130px}.row-actions button{font-size:12px;padding:4px 8px;border-color:transparent;color:#237bb8;background:transparent}.row-actions button:hover{background:#e8f5ff}.status{padding:4px 9px;border-radius:6px;background:#f1f5f8;color:#617e92;font-size:11px}.status-APPROVED,.status-ACTIVE,.status-CONFIRMED,.status-VERIFIED,.status-DONE,.status-AVAILABLE,.status-FILED{background:#e5f5f0;color:#208c91}.status-OCCUPIED,.status-ACCEPTED,.status-PROCESSING{background:#e8f5ff;color:#237bb8}.status-PENDING,.status-DRAFT,.status-HIGH,.status-RESERVED{background:#fff6e9;color:#a56623}.status-URGENT,.status-SUSPENDED,.status-REJECTED{background:#fff1ef;color:#a84136}.empty{text-align:center;padding:60px 20px;color:#617e92;white-space:normal}.list-foot{font-size:11px;color:#617e92;margin-top:18px}.info-line{padding:12px 16px;background:#e8f5ff;border-radius:10px;color:#617e92;font-size:12px;margin-bottom:20px}.room-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-bottom:24px}.room-board button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;border-radius:12px;background:#e5f5f0;border-color:#cde9df}.room-board strong{font-size:19px}.room-board span{font-size:12px}.room-board small{font-size:11px;color:#617e92}.room-board .room-OCCUPIED{background:#e8f5ff;border-color:#d9eaf4}.room-board .room-RESERVED{background:#fff6e9;border-color:#f1e3cb}.room-board .room-MAINTENANCE{background:#f1f5f8}.modal-backdrop{position:fixed;inset:0;background:#153e5a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;display:flex;align-items:center;justify-content:center;padding:24px}.modal{max-height:calc(100vh - 48px);overflow:auto;width:min(720px,100%);background:#fff;border-radius:20px;padding:28px;box-shadow:0 24px 100px #153e5a25}.modal>header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.modal>header h2{margin:0;font-size:20px}.modal>header button{border:0;background:#f4fafe;font-size:20px;line-height:1;width:34px;height:34px;padding:0;border-radius:50%}.modal form footer{display:flex;justify-content:flex-end;gap:14px;padding-top:24px;border-top:1px solid #e4eef5;margin-top:8px}.modal form footer .primary{min-width:128px}.allocations>div{display:grid;grid-template-columns:1.4fr 1fr auto;gap:10px;margin-bottom:10px;align-items:center}.allocations input,.allocations select{margin:0}.allocations h3{margin-top:0}dl{display:grid;grid-template-columns:140px 1fr;gap:12px 20px;font-size:13px;margin:0 0 24px}dt{color:#617e92}dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.detail-item{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #e4eef5;font-size:13px}.detail-item span{color:#617e92}.event{border-left:2px solid #d9eaf4;padding:0 0 14px 18px;margin-top:14px}.event p{font-size:13px;color:#617e92;margin:6px 0}.event small{font-size:11px;color:#617e92}.file-list{list-style:none;padding:0}.file-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}.file-list small{color:#617e92;font-size:11px}.pending-page{max-width:900px;margin:auto;padding:28px 20px}.pending-page>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.pending-page h1{font-size:26px}.pending-page .muted{font-size:13px}.pending-page dl{margin-top:28px}.notice-box{background:#fff6e9;padding:14px;border-radius:10px;margin-top:20px}.nav-toggle{display:none}@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.content{padding:24px}.topbar{padding:0 24px}.quick-actions{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.shell aside{transform:translate(-100%);transition:transform .2s;width:230px;box-shadow:10px 0 40px #153e5a15}.shell aside.open{transform:translate(0)}.workspace{width:100%;margin:0}.nav-toggle{display:block}.topbar{height:70px;padding:0 18px;gap:12px}.topbar>div:first-of-type{flex:1}.topbar .muted{display:none}.account{gap:10px;font-size:12px}.content{padding:22px 18px}.welcome h1{font-size:24px}.metrics{gap:14px}.metrics>button,.metrics>div{padding:20px}.metrics strong{font-size:25px}.quick-actions{gap:12px}.quick-actions button{padding:16px;font-size:13px}.panel{padding:22px}.toolbar .search{flex-basis:100%;max-width:none}.toolbar button{font-size:12px;padding:9px 13px}.modal-backdrop{padding:12px}.modal{padding:24px 20px;max-height:calc(100vh - 24px)}.modal h2{font-size:18px}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.allocations>div{grid-template-columns:1fr}.auth-card{padding:30px 24px}.auth-page{padding:30px 20px}.brand{font-size:24px}dl{grid-template-columns:110px 1fr;gap:12px}.room-board{grid-template-columns:repeat(2,1fr)}.topbar .account span{max-width:60px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.choices,.context-list{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.choices label{display:flex;align-items:center;gap:8px}.choices input{width:auto}.upload-label{display:flex;gap:10px;align-items:center}.import-panel{margin:20px 0}select[multiple]{min-height:110px}.context-list button{background:#e9f6ff}.panel form+form{margin-top:24px}
