:root{--paper:#f5f3ee;--card:#fffefa;--ink:#292e29;--muted:#71786e;--line:#e2e5dc;--red:#b64430;--redwash:#fbebe4;--green:#416c51;--greenwash:#eaf1e8;--gold:#94702b;--shadow:0 8px 28px #323b2510;font-family:Inter,-apple-system,BlinkMacSystemFont,"Hiragino Sans GB","Hiragino Kaku Gothic ProN","Microsoft Yahei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:11px 16px;color:var(--ink);font-weight:550;transition:background .15s,transform .15s}button:hover{background:#eeeee7}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #bd774f;outline-offset:2px}button.primary{background:var(--red);color:#fff;border-color:var(--red)}button.primary:hover{background:#963926}button.green{background:var(--green);color:#fff}button.small{font-size:12px;padding:7px 11px}button.plain{border-color:transparent;background:transparent}a{color:var(--red)}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;margin-bottom:8px;font-weight:620}h2{font-size:19px;letter-spacing:-.4px;margin-bottom:6px}h3{font-size:15px;margin-bottom:10px}p{line-height:1.7}small,.muted{color:var(--muted)}small{font-size:12px}label{display:block;font-size:13px;font-weight:550}input,select,textarea{border:1px solid #d7ddd0;background:var(--card);padding:10px 11px;border-radius:8px;width:100%;color:var(--ink);min-width:0}input[type=checkbox]{width:auto}textarea{resize:vertical;min-height:72px}label>input,label>select,label>textarea{margin-top:7px}hr{border:0;border-top:1px solid var(--line);margin:22px 0}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{padding:30px 19px 20px;background:#eeeee7;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;margin:0 12px 34px}.brand-mark{height:40px;width:40px;background:var(--red);color:white;display:grid;place-items:center;border-radius:13px;font-size:24px;font-weight:700}.brand-word{font-size:25px;letter-spacing:-1.2px;font-weight:750}.brand small{display:block;font-size:10px;letter-spacing:1.5px;margin-top:2px}.nav-label{font-size:10px;letter-spacing:2px;color:var(--muted);padding:0 13px;margin:20px 0 10px}.nav{display:grid;gap:6px}.nav button{display:flex;gap:11px;align-items:center;text-align:left;border:0;background:transparent;padding:13px 14px;font-size:13px;color:#626a5f}.nav button.active{background:var(--card);box-shadow:0 2px 5px #00000004;color:var(--red)}.nav .icon{font-size:19px;width:21px;display:inline-block}.sidebar-foot{margin-top:auto;padding:20px 12px 0;font-size:11px;color:var(--muted);line-height:1.9}.store-dot,.dot{height:7px;width:7px;border-radius:50%;background:var(--green);display:inline-block;margin-right:6px}.workspace{min-width:0}.topbar{height:78px;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8f7f2}.topbar-left{font-size:12px;color:var(--muted);letter-spacing:.5px}.topbar-right{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e5e8db;font-size:12px;font-weight:700}.topbar .name{font-size:12px}.topbar select{font-size:12px;width:auto;padding:7px}.main{max-width:1390px;padding:34px 38px 60px;margin:auto}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px}.eyebrow{font-size:10px;color:var(--red);letter-spacing:2px;font-weight:650;margin-bottom:13px}.subtitle{color:var(--muted);font-size:13px;margin:0}.badge{font-size:11px;border-radius:20px;padding:6px 10px;display:inline-flex;align-items:center;gap:5px;background:#eaeee4;color:#56624d;white-space:nowrap}.badge.green{color:var(--green);background:var(--greenwash)}.badge.red{color:var(--red);background:var(--redwash)}.badge.gold{color:var(--gold);background:#f4eedc}.demo-banner{padding:10px 38px;background:#f3e8ce;color:#745a2b;font-size:11px;line-height:1.6;display:flex;justify-content:space-between;gap:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 7px #30332203;padding:24px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}.grid2{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stack{display:grid;gap:20px}.clock-card{padding:29px 32px;text-align:center;background:linear-gradient(150deg,#fffefa,#f8f7ed);position:relative;overflow:hidden}.clock-card:before{content:'';position:absolute;width:215px;height:215px;top:88px;left:calc(50% - 107px);border:1px solid #e9e9dc;border-radius:50%;pointer-events:none}.clock-card .card-head{text-align:left}.clock-face{position:relative;padding:35px 0 20px}.clock-digits{font-size:62px;letter-spacing:-3px;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.3}.clock-seconds{font-size:22px;color:#b8bdad;letter-spacing:-.5px;margin-left:3px}.clock-date{font-size:12px;color:var(--muted);margin:6px 0 21px}.location{font-size:12px;padding:14px;border:1px solid var(--line);border-radius:10px;text-align:left;line-height:1.6;margin:18px 0;background:#ffffff80;position:relative}.location.good{border-color:#ceddcb;background:#eef4eb}.location.bad{color:#a44835;background:#fcf1eb;border-color:#edd5ca}.clock-actions{display:flex;gap:10px;position:relative}.clock-actions button{flex:1;padding:19px 8px;font-size:15px}.clock-hint{font-size:11px;color:var(--muted);margin:15px 0 0;line-height:1.7}.stat{padding:21px}.stat .number{font-size:29px;letter-spacing:-1px;font-weight:550;margin:12px 0 2px}.stat .unit{font-size:13px;color:var(--muted);letter-spacing:0;margin-left:5px}.stat small{font-size:11px}.stat-label{font-size:12px;color:var(--muted)}.schedule-line{display:flex;gap:14px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}.schedule-line:last-child{border-bottom:0}.day-square{background:#f0f1e9;border-radius:10px;min-width:48px;padding:9px;text-align:center;font-size:18px;font-weight:550}.day-square small{font-size:10px;display:block;margin-top:3px}.line-main{flex:1;min-width:0}.line-main strong{font-size:14px;font-weight:600}.line-main small{display:block;margin-top:6px;font-size:11px}.line-meta{font-size:12px;color:var(--muted)}.section-gap{margin-top:24px}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.toolbar .spacer{flex:1}.tabs{display:flex;padding:4px;background:#e9ece2;border-radius:10px;gap:3px}.tabs button{padding:8px 13px;border:none;background:transparent;font-size:12px}.tabs button.active{background:var(--card);box-shadow:0 1px 4px #00000010}.progress{height:4px;border-radius:4px;background:#e5e8df;overflow:hidden;margin-top:11px}.progress-bar{height:100%;background:var(--green)}.availability-list{display:grid;gap:11px}.av-day{display:grid;grid-template-columns:105px 146px 1fr;gap:20px;align-items:start;padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:12px}.av-date{padding-top:9px;display:flex;align-items:baseline;gap:10px}.av-date b{font-size:20px;font-weight:550}.av-date small{font-size:11px}.av-ranges{display:grid;gap:8px}.time-range{display:flex;gap:8px;align-items:center}.time-range input{max-width:140px;padding:8px}.av-day select{font-size:12px}.av-day .av-help{font-size:12px;color:var(--muted);padding:11px 0}.availability-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-top:20px;margin-top:10px}.availability-actions>div{display:flex;gap:10px}.footnote{font-size:11px;color:var(--muted);line-height:1.9;margin:18px 0 0}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--card)}table{width:100%;border-collapse:collapse;font-size:12px}th{font-weight:550;text-align:left;padding:15px;background:#f2f3ec;color:var(--muted);white-space:nowrap}td{padding:15px;border-top:1px solid var(--line);vertical-align:top}td .muted{font-size:11px}.roster{min-width:820px;table-layout:fixed}.roster th:first-child{width:108px}.roster th{font-size:11px;text-align:center}.roster th:first-child{text-align:left}.roster td{height:116px;padding:9px 7px;border-right:1px solid var(--line)}.roster td:first-child{padding:20px 12px}.cell-button{padding:7px;background:transparent;border:1px dashed transparent;border-radius:8px;width:100%;min-height:45px;text-align:left;font-size:10px;white-space:normal;color:var(--muted)}.cell-button:hover{border-color:#c2cfb8;background:#f1f4ec}.shift-chip{display:block;text-align:left;width:100%;font-size:10px;line-height:1.8;color:#3d6048;background:#e6efe2;border:1px solid #d3e1cc;padding:7px;margin:5px 0;border-radius:7px}.shift-chip.draft{border:1px dashed #c29456;background:#faf0da;color:#876326}.shift-chip.canceled{text-decoration:line-through;color:#9b6255;background:#faece6}.empty{text-align:center;padding:40px 18px;color:var(--muted);font-size:13px;line-height:1.8}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px;flex-wrap:wrap}dialog{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:28px;border-radius:18px;max-width:min(650px,calc(100vw - 24px));width:650px;max-height:90vh;box-shadow:0 24px 90px #0003}dialog::backdrop{background:#27332465;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:22px}.modal-heading h2{margin:0}.form-error{font-size:12px;line-height:1.7;color:var(--red);margin:12px 0}.request{margin-bottom:16px}.request-detail{background:#f4f4ed;border-radius:8px;padding:15px;line-height:1.8;font-size:12px;margin:16px 0;overflow-wrap:anywhere}.request .reason{font-size:13px}.request-actions{display:flex;gap:8px}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:#e9ecdf;padding:70px;display:flex;flex-direction:column;justify-content:space-between}.login-art .brand{margin:0}.login-art h1{font-size:48px;line-height:1.3;letter-spacing:-2px;max-width:430px}.login-art p{font-size:14px;color:#6a745f;max-width:350px}.login-ornament{font-size:110px;color:#758b64;line-height:1.3;font-weight:200;letter-spacing:-10px}.login-panel{display:flex;align-items:center;justify-content:center;padding:48px 30px}.login-box{width:360px;max-width:100%}.login-box form{display:grid;gap:19px;margin-top:30px}.login-box .primary{margin-top:5px;padding:14px}.demo-logins{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.demo-logins button{text-align:left;font-size:12px;line-height:1.8}.demo-logins small{display:block;font-size:10px}.demo-label{font-size:11px;line-height:1.7;color:var(--gold);margin-top:20px}.loading{padding:80px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#303c2f;color:white;padding:14px 22px;border-radius:12px;font-size:13px;max-width:min(650px,90vw);box-shadow:0 10px 30px #0002;z-index:20;display:none;line-height:1.6}#toast.show{display:block}#toast.error{background:#8f3c2f}.month-input{width:160px}.notification{padding:16px 0;border-bottom:1px solid var(--line);display:flex;gap:15px;align-items:center;font-size:13px;line-height:1.8}.notification>div{flex:1}.notification.read{color:var(--muted)}.inline-help{padding:12px 16px;background:#edf1e6;border-radius:10px;color:#58674f;font-size:12px;line-height:1.8;margin-bottom:20px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.break-row{display:flex;gap:9px;margin-top:9px}.break-row input{font-size:12px}.checkline{display:flex;align-items:center;gap:9px;line-height:1.6}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.value-table{font-variant-numeric:tabular-nums}.brand-top-mobile{display:none}
@media(min-width:1500px){.main{padding-top:42px}.grid2{gap:28px}.clock-card{padding:32px 45px}.clock-face{padding:46px 0 28px}}
@media(max-width:1050px){.shell{grid-template-columns:180px 1fr}.sidebar{padding:25px 10px}.brand{margin-left:7px;gap:8px}.brand-word{font-size:23px}.main{padding:28px 24px 50px}.topbar{padding:0 24px}.grid2{grid-template-columns:1fr}.clock-card{max-width:none}.clock-digits{font-size:67px}.av-day{grid-template-columns:85px 125px 1fr;gap:12px}.login-art{padding:40px}.settings-grid{grid-template-columns:1fr}}
@media(max-width:730px){.shell{display:block}.sidebar{height:auto;position:static;padding:0;border-right:0;background:var(--paper)}.sidebar .brand,.nav-label,.sidebar-foot{display:none}.nav{display:flex;overflow-x:auto;padding:10px 12px;gap:5px;background:#eeeee7;scrollbar-width:none}.nav button{flex-shrink:0;gap:6px;padding:10px 12px;font-size:12px;white-space:nowrap}.nav .icon{font-size:16px;width:16px}.sidebar{position:sticky;top:0;z-index:5}.topbar{height:62px;padding:0 18px}.topbar-left{font-size:10px}.topbar-right{gap:6px}.topbar .name{display:none}.topbar select{max-width:112px;padding:5px;font-size:11px}.topbar button{font-size:11px;padding:7px}.avatar{width:27px;height:27px}.main{padding:26px 17px 45px}.heading{align-items:flex-start;margin-bottom:21px}.heading .badge{display:none}h1{font-size:26px}.eyebrow{font-size:9px;margin-bottom:10px}.subtitle{font-size:12px}.demo-banner{padding:9px 18px;font-size:10px}.demo-banner span:last-child{display:none}.card{padding:19px;border-radius:13px}.clock-card{padding:22px}.clock-card .card-head{margin-bottom:5px}.clock-digits{font-size:60px}.clock-card:before{top:65px}.clock-face{padding-top:25px}.grid3{gap:9px}.stat{padding:14px 12px}.stat .number{font-size:23px;margin-top:10px}.stat .unit{font-size:10px;margin-left:2px}.stat-label{font-size:10px}.stat small{font-size:9px}.card h2{font-size:17px}.av-day{grid-template-columns:1fr 1fr;gap:10px;padding:15px}.av-date{padding-top:7px}.av-ranges,.av-help{grid-column:1/-1}.time-range input{max-width:none;flex:1;width:80px}.availability-actions{display:block}.availability-actions>div{margin-top:12px;justify-content:flex-end}.tabs button{padding:8px 10px}.toolbar{gap:8px}.toolbar small{width:100%}.form-grid{gap:14px}.form-grid label{font-size:12px}dialog{padding:20px}.break-row{flex-wrap:wrap}.break-row input{flex:1;min-width:180px}.login{display:block}.login-art{padding:30px;min-height:235px}.login-art h1{font-size:30px;letter-spacing:-1px;margin:24px 0 9px}.login-art p{font-size:12px;margin:0}.login-art .brand-mark{width:31px;height:31px;font-size:20px}.login-art .brand-word{font-size:21px}.login-ornament,.login-art footer{display:none}.login-panel{padding:32px 24px}.login-box h2{font-size:21px}.login-box form{gap:15px;margin-top:23px}.month-input{width:147px}.notification{font-size:12px}.line-meta{font-size:10px}.row-actions .small{font-size:10px}.clock-actions button{font-size:14px}.form-grid .full{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.matrix-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:12px 0 10px;font-size:11px;color:var(--muted)}.matrix-legend span{display:inline-flex;align-items:center;gap:6px}.legend-box{display:inline-block;width:18px;height:14px;border:1px solid #aeb6aa}.legend-box.work,.matrix-cell.work{background:#a9d18e}.legend-box.close,.matrix-cell.close{background:#ff2b2b;color:#fff}.legend-box.flex,.matrix-cell.flex{background:#fff200;color:#4a4510}.legend-box.off,.matrix-cell.off{background:#fff}.legend-box.unknown,.matrix-cell.unknown{background:#d9e1e8}.draft-key{margin-left:auto}.matrix-wrap{overflow:auto;border:1px solid #aeb6aa;border-radius:10px;background:#fff;max-width:100%;box-shadow:var(--shadow)}.hour-matrix{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-variant-numeric:tabular-nums}.hour-matrix.roster{table-layout:auto;min-width:1050px}.hour-matrix th{padding:5px 2px;height:27px;text-align:center;background:#f7f7f4;color:var(--ink);border-right:1px solid #aeb6aa;border-bottom:1px solid #2b2b2b;font-size:10px}.hour-matrix th:first-child{position:sticky;left:0;z-index:4;width:124px;min-width:124px;text-align:left;padding-left:10px;border-right:2px solid #2f75b5}.hour-matrix td{padding:0;height:27px;border-top:0;border-right:1px solid #2b2b2b;border-bottom:1px solid #2b2b2b;vertical-align:middle}.hour-matrix td:first-child{position:sticky;left:0;z-index:3;background:#fff;width:124px;min-width:124px;padding:4px 8px;border-right:2px solid #2f75b5}.hour-matrix td:first-child strong{display:block;font-size:11px;white-space:nowrap}.hour-matrix td:first-child small{display:block;font-size:8px;white-space:nowrap}.hour-matrix .day-slot{width:24px;min-width:24px;height:27px}.hour-matrix .day-start{border-left:5px solid #2f75b5}.matrix-cell{display:grid;place-items:center;width:100%;height:26px;min-width:23px;border:0;border-radius:0;padding:0;font-size:9px;font-weight:700;color:#233024}.matrix-cell:hover{filter:brightness(.94);background-color:inherit}.matrix-cell:disabled{opacity:.55}.matrix-cell.inside{background:#fff;color:#879084}.matrix-cell.inside:after{content:'·';font-size:15px}.matrix-cell.draft{outline:2px dashed #936c2c;outline-offset:-3px}.precision-editor{margin-top:16px;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:12px 16px}.precision-editor summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--green)}.precision-editor .availability-list{margin-top:14px}.availability-matrix{min-width:560px}
