:root{--ink:#213b36;--muted:#788781;--green:#245d4c;--line:#e5e9e3;--bg:#f7f8f4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:white;border-radius:7px;padding:9px 14px;color:var(--ink)}button:hover{border-color:var(--green);background:#f0f5ef}a{color:inherit;text-decoration:none}aside{position:fixed;inset:0 auto 0 0;width:232px;background:#fff;border-right:1px solid var(--line);padding:33px 22px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center}.brand b{font-size:19px;letter-spacing:-.4px}small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:5px}.logo{background:var(--green);color:white;width:42px;height:45px;border-radius:11px;font:bold 35px Georgia;text-align:center}.logo span{color:#cedb93}.lab-label{font-size:10px;letter-spacing:1.5px;color:#8d9890;margin:47px 10px 17px}nav a{display:flex;gap:14px;align-items:center;padding:13px 15px;margin:5px 0;border-radius:7px;color:#6c7b74}nav a.active{background:#eaf1e9;color:#245d4c;font-weight:600}nav .icon{font-size:18px;width:20px}.side-bottom{margin-top:auto;font-size:12px;padding:20px 8px;border-top:1px solid var(--line)}.live{display:inline-block;background:#78955e;width:6px;height:6px;border-radius:50%;margin-right:7px}.shell{margin-left:232px}header{height:85px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#fff;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.header-right{display:flex;align-items:center;gap:12px}.header-right b{color:var(--ink);font-size:12px}.header-right small{font-size:10px}.avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e9eade;color:#626b43;width:35px;height:35px}.demo{padding:6px 9px;border:1px solid #e4ddc4;border-radius:5px;color:#95804c;font-size:10px;margin-right:15px}main{padding:36px 40px 45px;max-width:1600px;margin:auto}.eyebrow{font-size:10px;letter-spacing:2px;color:#84917c;margin-bottom:12px}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:15px}h1{font-size:29px;letter-spacing:-1px;font-weight:600;margin:0 0 10px}h2{font-size:16px;margin:0}p{color:var(--muted);line-height:1.8;margin:4px 0}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#184938;color:white}.hero{background:#eaf0e5;border:1px solid #dfe6d7;border-radius:12px;padding:28px 32px;margin-bottom:25px;position:relative;overflow:hidden}.hero:after{content:'✳';position:absolute;right:45px;top:-40px;font-size:220px;color:#d7e1cd;line-height:1;pointer-events:none}.hero h2{font-size:22px;margin-bottom:8px}.hero p{max-width:75%;position:relative;z-index:1;color:#647a62}.hero button{margin-top:18px;position:relative;z-index:1}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:27px}.stat,.panel,.card{border:1px solid var(--line);border-radius:10px;background:white}.stat{padding:22px}.stat-label{font-size:12px;color:#7d8980}.stat strong{font-size:32px;font-weight:500;display:block;margin:13px 0 8px;font-variant-numeric:tabular-nums}.stat small{font-size:11px}.grid{display:grid;grid-template-columns:1.55fr 1fr;gap:22px}.panel{padding:23px;margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.text-button{background:transparent;border:0;font-size:12px;padding:0;color:#66816e}.row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 0;border-bottom:1px solid #f0f2ed}.row:last-child{border:0}.row-title{font-size:13px;margin-bottom:5px}.row-meta{font-size:11px;color:var(--muted)}.tag{font-size:10px;border-radius:5px;padding:5px 9px;display:inline-block;white-space:nowrap;background:#eaf1e9;color:#57745b}.tag.amber{background:#f8f0dd;color:#a18033}.tag.red{background:#f7eae5;color:#b16852}.tag.gray{background:#f0f1ee;color:#7d867e}.project-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{padding:24px}.card h2{line-height:1.6;margin:13px 0}.progress{background:#edf0e9;border-radius:6px;height:5px;margin:20px 0 10px}.progress i{display:block;height:5px;background:#74906b;border-radius:6px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.toolbar input{flex:1;min-width:180px}.toolbar input,.toolbar select{border:1px solid var(--line);border-radius:6px;padding:10px 13px;background:white;color:var(--ink)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:9px;background:#fff}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th{background:#f0f3ec;color:#7a877a;font-size:11px;font-weight:500;padding:15px 18px}td{padding:17px 18px;font-size:12px;border-top:1px solid #eef1ea}td small{font-size:10px}td button{font-size:11px;padding:5px 9px;margin-right:5px}.empty{text-align:center;padding:45px;color:var(--muted)}.note{margin-top:18px;font-size:12px;color:#87917f}.week{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.day{border:1px solid var(--line);border-radius:8px;padding:18px 12px;background:white}.day.today{background:#eef3e8;border-color:#aabc99}.day strong{display:block;margin:18px 0 8px;font-size:16px}footer{padding:0 40px 25px;color:#98a18f;font-size:10px;display:flex;justify-content:space-between}dialog{border:1px solid var(--line);border-radius:12px;padding:26px;max-width:560px;width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#172d2855;backdrop-filter:blur(3px)}.dialog-head,.dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-head{margin-bottom:20px}.dialog-head button{border:0;font-size:23px;padding:0 7px}.dialog-foot{justify-content:flex-end;margin-top:24px}label{display:block;font-size:12px;margin:13px 0}label input,label textarea,label select{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid #dce2d8;border-radius:6px;background:white;color:var(--ink)}textarea{min-height:90px;resize:vertical}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);padding:13px 23px;border-radius:8px;background:var(--green);color:white;display:none;z-index:10}.detail p{margin:13px 0;white-space:pre-wrap}.detail b{color:var(--ink)}:focus-visible{outline:2px solid #74906b;outline-offset:3px}@media(min-width:1500px){main{padding-top:45px}}@media(max-width:1050px){aside{width:190px;padding:25px 12px}.shell{margin-left:190px}main{padding:26px 24px}header{padding:0 24px}.project-cards{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:25px}}@media(max-width:700px){aside{position:static;width:100%;padding:16px;border-right:0}.brand{margin-bottom:14px}.lab-label,.side-bottom{display:none}nav{display:flex;overflow:auto}nav a{flex-shrink:0;font-size:12px;padding:10px}nav .icon{display:none}.shell{margin-left:0}header{height:65px;padding:0 18px}.demo{display:none}main{padding:25px 16px}.stats{grid-template-columns:1fr 1fr}.heading{align-items:flex-start}h1{font-size:25px}.hero{padding:22px}.hero:after{right:0}.hero p{max-width:90%}.project-cards{grid-template-columns:1fr}.week{grid-template-columns:1fr 1fr}.panel{padding:18px}footer{padding:0 16px 20px;display:block}footer span{display:block;margin-top:8px}}
.hero h2,.hero .eyebrow{position:relative;z-index:1}.hero:after{opacity:.5}@media(max-width:700px){.hero:after{font-size:150px;right:-25px;top:0;opacity:.24}.heading>.primary{white-space:nowrap;padding:10px;font-size:12px}.hero .eyebrow{font-size:8px;letter-spacing:1px}}
.schedule-summary{display:flex;align-items:center;gap:26px;padding:18px 22px;background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:22px;flex-wrap:wrap}.schedule-summary span{display:flex;align-items:center;gap:9px;font-size:12px}.schedule-summary b{font-size:20px;font-weight:500;margin-left:6px}.schedule-summary small{margin:0 0 0 auto}.event-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.event-dot.meeting{background:#507c61}.event-dot.journal{background:#7580b3}.event-dot.cleaning{background:#c5a05c}.calendar-tools{display:flex;justify-content:space-between;align-items:center;margin:20px 0;gap:12px;flex-wrap:wrap}.calendar-tools strong{margin:0 12px;font-weight:500}.calendar-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:white}.calendar{min-width:700px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#f0f3ec;text-align:center;font-size:11px;color:var(--muted)}.calendar-weekdays>div{padding:13px}.calendar-day{min-height:150px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:9px;min-width:0}.calendar-day:nth-child(7n){border-right:0}.calendar-day.blank{background:#fafbf8}.calendar-day.is-today{background:#f1f6ed}.date-line{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:7px}.is-today .date-line>span{background:var(--green);color:white;border-radius:50%;padding:5px}.date-add{border:0;background:transparent;padding:0 4px;color:#9aa78f;font-size:15px}.calendar-event{text-align:left;display:block;width:100%;border:0;border-left:3px solid #9aa68f;background:#f1f3ee;padding:7px;margin:7px 0;border-radius:4px;white-space:normal;overflow-wrap:anywhere}.calendar-event.meeting{background:#eaf1e8;border-left-color:#507c61}.calendar-event.journal{background:#eeeef7;border-left-color:#7580b3}.calendar-event.cleaning{background:#f8f2e5;border-left-color:#c5a05c}.calendar-event span{font-size:9px;color:#6f7c6b;display:block;line-height:1.6}.calendar-event b{display:block;font-size:11px;font-weight:500;line-height:1.6;margin-top:3px}.calendar-event small{font-size:10px}.calendar-event.cancelled{opacity:.5;text-decoration:line-through}.event-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:23px}@media(max-width:700px){.schedule-summary{gap:15px;padding:14px}.schedule-summary small{margin:0;width:100%}.calendar-tools strong{margin:0 5px;font-size:13px}.calendar-tools button{font-size:11px;padding:8px}.calendar-day{padding:7px}}
.week-scroll{height:650px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:white;position:relative}.time-week{min-width:1110px}.time-week-head{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:60px repeat(7,minmax(0,1fr));background:#f0f3ec;border-bottom:1px solid var(--line);height:48px;font-size:11px;align-items:center;text-align:center}.time-week-head>span{font-size:9px;color:var(--muted)}.time-week-head b{font-weight:500;margin-left:5px}.today-head{color:var(--green);font-weight:600}.time-week-body{display:grid;grid-template-columns:60px repeat(7,minmax(0,1fr));height:1440px;position:relative}.time-ruler{position:relative;background:#fff;z-index:2}.time-ruler span{position:absolute;right:7px;font-size:10px;color:var(--muted);line-height:14px}.time-day{position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 29px,#eff1ec 29px,#eff1ec 30px,transparent 30px,transparent 59px,#dfe5dc 59px,#dfe5dc 60px)}.today-column{background-color:#f4f7f0}.time-event{position:absolute;overflow:hidden;text-align:left;padding:0 5px;border:0;border-left:3px solid #9aa68f;border-radius:3px;background:#f1f3ee;min-height:1px;line-height:16px;z-index:1}.time-event.meeting{background:#eaf1e8;border-left-color:#507c61}.time-event.journal{background:#eeeef7;border-left-color:#7580b3}.time-event.cleaning{background:#f8f2e5;border-left-color:#c5a05c}.time-event span{display:block;font-size:10px}.time-event b{font-size:11px;font-weight:500;display:block}.time-event small{font-size:10px;margin-top:0}.time-event.cancelled{opacity:.5;text-decoration:line-through}.time-event:hover,.time-event:focus-visible{z-index:3;outline:2px solid var(--green);outline-offset:0}.calendar-tools>div{display:flex;align-items:center;flex-wrap:wrap;gap:4px}@media(max-width:700px){.week-scroll{height:550px}.calendar-tools strong{font-size:11px}}
.time-ruler{position:sticky;left:0;z-index:3;border-right:1px solid var(--line)}.time-week-head>span{position:sticky;left:0;z-index:5;background:#f0f3ec;align-self:stretch;display:flex;align-items:center;justify-content:center}.time-event{display:flex;flex-direction:column;justify-content:flex-start}.time-event span,.time-event b,.time-event small{flex-shrink:0}
.equipment-symbol{font-size:32px;color:var(--green);background:#eef3e8;border-radius:10px;padding:10px 16px}.equipment-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));max-width:1100px}.equipment-cards .eyebrow{margin-top:20px;line-height:1.8}.equipment-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.booking-date{margin:0;font-size:11px;color:var(--muted)}.booking-date input{margin-top:6px}.time-event.instrument,.calendar-event.instrument{background:#e9f1f5;border-left-color:#5e8da3}.event-dot.instrument{background:#5e8da3}
#modal-message{background:#fcf1e5;border:1px solid #ebd8bd;border-radius:6px;padding:10px;color:#9a613b;font-size:12px;line-height:1.7;margin-top:16px}
header{gap:20px;position:sticky;top:0;z-index:6}.header-search{display:flex;align-items:center;gap:9px;flex:1;max-width:480px;background:#f6f8f3;border:1px solid #e0e6dc;border-radius:8px;padding:9px 12px}.header-search[hidden]{display:none}.header-search>span{font-size:21px;line-height:1;color:#73866f}.header-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.header-search:focus-within{border-color:var(--green);box-shadow:0 0 0 2px #245d4c12}.header-right{flex-shrink:0}.equipment-cards{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;max-width:none}.equipment-card{padding:16px;display:flex;flex-direction:column;gap:0}.equipment-card .panel-head{margin-bottom:10px}.equipment-card .equipment-symbol{font-size:19px;padding:5px 10px;border-radius:7px}.equipment-card .tag{padding:4px 7px;font-size:10px}.equipment-card h2{font-size:14px;line-height:1.6;margin:0 0 5px;overflow-wrap:anywhere}.equipment-card .equipment-spec{font-size:11px;color:#61775e;line-height:1.6;margin:0 0 10px}.equipment-meta{display:flex;flex-direction:column;gap:5px;font-size:10px;color:var(--muted);line-height:1.6}.equipment-actions{margin-top:auto;padding-top:14px;gap:7px}.equipment-actions button{padding:6px 12px;font-size:11px}.equipment-card .equipment-actions .primary{flex:1}.equipment-card .equipment-actions button:last-child{flex:1}@media(max-width:1100px){header{gap:12px;padding-left:24px;padding-right:24px}.header-search{max-width:360px}.header-right .demo{display:none}}@media(max-width:700px){header:has(.header-search:not([hidden])){height:auto;min-height:80px;flex-wrap:wrap;padding:10px 16px;gap:8px}header:has(.header-search:not([hidden])) #breadcrumb{font-size:10px;order:0;flex:1}header:has(.header-search:not([hidden])) .header-right{order:1}header:has(.header-search:not([hidden])) .header-search{order:2;flex-basis:100%;max-width:none}.equipment-cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.equipment-card{padding:14px}}
body{padding-top:76px}aside{top:76px}header{position:fixed;inset:0 0 auto 0;height:76px;z-index:10;padding:0 28px;gap:22px}.header-search{position:relative;max-width:650px;flex:1;min-width:150px}.header-search input{font-size:13px}#breadcrumb{margin-left:auto;white-space:nowrap;font-size:11px}.global-results{position:absolute;top:calc(100% + 10px);left:0;right:0;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 15px 45px #17352922;max-height:min(65vh,540px);overflow:auto;color:var(--ink);z-index:20}.global-results[hidden]{display:none}.global-result-heading{padding:12px 16px;font-size:11px;color:var(--muted);background:#f5f7f1;border-bottom:1px solid var(--line);position:sticky;top:0}.global-result{width:100%;display:flex;align-items:center;gap:13px;text-align:left;border:0;border-radius:0;border-bottom:1px solid #eef1ea;padding:13px 16px}.global-result>span:nth-child(2){flex:1;min-width:0}.global-result b{font-size:12px;font-weight:500;display:block;overflow-wrap:anywhere}.global-result small{font-size:10px;line-height:1.6;overflow-wrap:anywhere}.global-result .tag{min-width:45px;text-align:center}.global-result:last-child{border-bottom:0}.global-results .empty{padding:24px;font-size:12px}.header-right .demo{display:none}@media(max-width:900px){#breadcrumb{display:none}header{gap:14px;padding:0 20px}}@media(max-width:700px){header:has(.header-search:not([hidden])){height:76px;min-height:76px;flex-wrap:nowrap;padding:0 14px;gap:10px}header:has(.header-search:not([hidden])) .header-search{order:0;flex-basis:auto;max-width:none}header:has(.header-search:not([hidden])) .header-right{order:1}.header-right b{display:none}.header-search input{font-size:11px}.global-results{position:fixed;left:12px;right:12px;top:70px}aside{top:auto}}
.home-heading{margin-bottom:24px}.home-heading h1{font-size:26px}.home-heading p{font-size:12px}.stat-unit{font-size:12px;color:var(--muted);margin-left:8px}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.today-time{width:48px;flex-shrink:0;color:var(--green);font-size:13px}.today-time b{font-weight:500}.today-time small{font-size:11px}.today-content{min-width:0;flex:1}.today-content .row-meta{line-height:1.7;overflow-wrap:anywhere}.overview-grid .row{gap:10px}.overview-grid .row-title{line-height:1.7}.overview-grid .row button{padding:6px 9px;font-size:11px;white-space:nowrap}.overview-grid .row>div:last-child{flex-shrink:0}.home-empty{padding:30px 0;text-align:center;color:var(--muted);font-size:12px}.completed-tasks{margin-top:20px;border-top:1px solid var(--line);padding-top:15px}.completed-tasks summary{font-size:12px;color:var(--muted);cursor:pointer}@media(max-width:1150px){.overview-grid{grid-template-columns:1fr}}
