/* V0.3: white surfaces, restrained accents, content-first layout. */
:root{--ink:#20242b;--muted:#737981;--green:#2864db;--bg:#fff;--line:#eceef1;--red:#bd4444;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
html,body,.shell,.main,.sidebar{background:#fff}.shell{min-height:100dvh}.main{margin:0 auto}.sidebar{gap:28px}.brand{letter-spacing:0}.brand small{display:none}.brandmark{width:32px;height:32px;border-radius:8px;box-shadow:none}.brandmark svg{width:20px}.nav button{border-radius:7px;color:#676e78}.nav button.active{background:#f3f6fc}.side-bottom{font-size:11px;color:#969ba3}
.topbar{min-height:70px}.location{font-size:19px;color:#252b35}.role-switch select{border:0;background:#f6f7f8;color:#4f5661;border-radius:7px;font-size:13px}.role-switch>.avatar{display:none}.avatar{border:0;background:#f3f5f8;color:#626f83;border-radius:8px}
h1,.welcome h1{font-size:25px;letter-spacing:0;margin:0;font-weight:650}h2{font-size:16px}.page-head{padding:26px 0 22px}.welcome{padding:26px 0 24px}.welcome-date{font-size:12px;background:none;border:0;padding:0;color:#7a8088}.btn{border-radius:7px;box-shadow:none;font-weight:500}.btn.secondary{border-color:#e2e5e9;color:#4f5661}.btn.soft{background:#f2f5fb}.btn.small{border-radius:6px}.btn.shift-late{background:#f4f1f9;color:#75638e}
.overview{background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 24px;margin-bottom:22px;box-shadow:none}.overview .stat,.overview .stat:first-child{border-color:var(--line);color:var(--ink)}.overview .stat .number{font-size:30px;color:var(--ink);font-weight:600;letter-spacing:0}.stat .label,.stat .number small{color:#777e88}.stat .number small{font-size:11px}
.quick-actions{gap:12px;margin-bottom:28px}.quick-action{border:1px solid var(--line);border-radius:8px;min-height:68px;padding:12px 16px}.quick-action .quick-icon,.quick-action:nth-child(n) .quick-icon{background:#f6f7f8;color:#536174;border-radius:8px;width:38px;height:38px}.quick-action:first-child .quick-icon{color:var(--green)}.quick-action strong{font-weight:500;color:#3c434e}.quick-icon svg{width:21px;height:21px}
.card{border:1px solid var(--line);border-radius:9px;box-shadow:none;margin-bottom:24px}.card-head{padding:16px 20px;border-color:var(--line)}.card-head h2{font-size:16px}.section-mark{display:none}.card-body{padding:18px 20px}.text-link{color:#737b87}.week-strip{padding:10px 18px;border-color:var(--line)}.day{border-radius:6px;color:#8a8f97;font-size:11px;min-height:54px}.day b{color:#353d48;font-size:16px;margin-top:6px}.day.selected{box-shadow:none;color:#fff}.day.selected b{color:#fff}.day.is-today:not(.selected){background:#f4f6f9}.session{border-color:var(--line);padding:19px 0}.session-time{color:#303845}.session-time small{color:#9a9fa6}.session-main{border-color:#b3c6ec}.session.group .session-main{border-color:#cbbddf}.session h3{font-weight:600}.session p,.meta,.person p,.list-card p{color:#777f8a}.pill{background:#f2f7f4;color:#587c65;border-radius:4px;font-size:10px}.pill.amber{background:#faf6ed;color:#9b7c39}.pill.gray{background:#f3f4f6;color:#7c828b}.pill.red{background:#fcf1f0;color:#b36159}
.task{min-height:64px;border-color:var(--line)}.task-icon{background:#f6f7f8;color:#687588;border-radius:7px;width:34px;height:34px}.task .count{background:#f3f5f8;color:#626e81}.task .task-copy{font-size:14px}.toolbar input,.toolbar select{border-radius:7px;border-color:#e2e5e9}.segmented{border-radius:7px;background:#f5f6f8;padding:3px}.segmented button{border-radius:5px;color:#818793;min-height:36px}.segmented button.active{color:#343d4b;box-shadow:none;background:#fff}.view-toggle{background:#f5f6f8;border:0;border-radius:6px}.view-toggle button{border-radius:4px;color:#818793;min-height:32px}.view-toggle button.active{box-shadow:none;color:#3c4c63}.list-card{padding:20px}.amount{color:#303844;font-size:24px}.person{border-radius:8px}.note{color:#68717e;background:#f6f7f8;border-radius:6px}.version-label{text-align:center;color:#a0a5ad;font-size:11px;padding:15px 0}
.calendar-tools{padding:10px 18px;border-color:var(--line)}.calendar-tools select{border-radius:6px;border-color:#e5e7eb;color:#5b6574;font-size:12px}.legend{color:#828996}.dot{background:#8faedc}.dot.purple{background:#bba7d0}.dot.gray{background:#c9cdd4}.timeline-head>div{color:#626c7a;border-color:var(--line);padding:10px 4px}.timeline-head .avatar{display:none}.time-axis{border-color:var(--line)}.time-axis span{color:#8b929c}.timeline-lane{border-color:var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 71px,#eef0f3 71px,#eef0f3 72px)}.lesson-block{border-radius:5px;background:#f0f5fc;color:#46689d;border-color:#dce6f4;border-left-color:#85a4d4}.lesson-block.group{border-radius:5px;background:#f5f1fa;color:#7f699c;border-color:#e8e0f1;border-left-color:#baa2d1}.lesson-block.finished{background:#f5f6f8;color:#7f8996;border-color:#e5e8ed;border-left-color:#bbc4cf}
.mini-roster th,.mini-roster td:first-child{color:#6e7784}.mini-roster button,.roster button{background:#f0f4fa;color:#5476a6;border-radius:4px}.mini-roster button.late,.roster button.late{background:#f4f1f8;color:#827197}.mini-roster button.rest,.roster button.rest{background:#f4f5f6;color:#90959d}.mini-roster .current-day{outline:1px solid #a0b9e1;outline-offset:1px}.shift-item{border-color:var(--line)}.shift-day-label{color:#808894}.roster th{background:#fafafa}.roster th,.roster td{border-color:var(--line)}
.bottom-nav{background:#fff;box-shadow:none;border-color:var(--line);backdrop-filter:none}.bottom-nav button{color:#959ba5;border-radius:0}.bottom-nav button.active{background:none;color:var(--green);font-weight:500}.bottom-nav button.active:before{display:none}dialog{border-radius:12px;border:1px solid #e5e7eb}dialog::backdrop{background:#20242b55;backdrop-filter:none}.modal-head{background:#fff;border-color:var(--line)}.modal-head button{background:#f5f6f8;color:#7a838e;border-radius:7px}.field input,.field select,.field textarea{background:#fff;border-color:#dfe3e8;border-radius:7px}label.field,.detail-grid small,.history{color:#757e8a}.check-list label{border-radius:6px}.check-list label:has(input:checked){background:#f5f8fc}.audit{padding:16px 20px}.notice{border-radius:6px}.form-footer{border-color:var(--line)}
@media(max-width:760px){
 .main{padding:0 max(20px,env(safe-area-inset-left)) calc(92px + env(safe-area-inset-bottom));max-width:650px}.topbar{min-height:60px;border-bottom:1px solid var(--line)}.location{font-size:18px}.role-switch select{font-size:12px;max-width:155px;min-height:36px;padding:8px}.welcome{padding:24px 0 23px;align-items:center}.welcome h1,h1{font-size:22px}.welcome-date{font-size:11px}.page-head{padding:24px 0 20px}.page-head>.btn{font-size:12px;min-height:42px;padding:10px 12px}.overview{padding:0 0 23px;margin-bottom:22px}.overview .stat{padding:0 9px}.overview .stat .number{font-size:27px}.stat .label{font-size:11px}.quick-actions{gap:8px;margin-bottom:25px}.quick-action{padding:0;border:0;min-height:64px;gap:9px}.quick-action .quick-icon,.quick-action:nth-child(n) .quick-icon{width:39px;height:39px;border-radius:8px}.quick-action strong{font-size:12px;color:#606976}.card{border:0;border-radius:0;margin-bottom:20px}.card-head{padding:15px 0;border-top:1px solid var(--line);min-height:54px}.card-head h2{font-size:16px}.card-body{padding:16px 0}.week-strip{padding:8px 0;gap:5px}.day{padding:7px 0;min-height:53px}.day b{font-size:16px}.session{margin:0;padding:18px 0;grid-template-columns:50px minmax(0,1fr) auto;gap:9px}.session h3{font-size:14px}.session p{font-size:12px}.session-time{font-size:16px}.session-time small{font-size:11px}.session .pill{font-size:10px;padding:4px 5px}.schedule-toolbar{grid-template-columns:142px minmax(0,1fr);margin-bottom:16px}.schedule-toolbar .grow{font-size:16px;padding:10px}.schedule-toolbar .segmented{margin:0}.toolbar input{font-size:16px;min-height:44px}.calendar-tools{padding:8px 0}.calendar-tools .legend{font-size:10px}.calendar-tools select{min-height:36px}.timeline-head,.timeline-body{grid-template-columns:35px repeat(var(--lanes),minmax(80px,1fr))}.timeline-head>div{font-size:12px}.timetable-scroll{overflow-x:auto;overflow-y:hidden;max-height:none}.lesson-block{padding:6px 4px}.mini-roster{padding:10px 0 14px}.mini-roster table{border-spacing:4px 8px}.mini-roster th:first-child{width:42px}.mini-roster button{height:34px}.shift-day-label{padding:16px 0 6px}.shift-item{padding:16px 0}.shift-item button{min-width:104px;min-height:47px}.legend{padding:16px 0}.roster-toolbar{margin-bottom:15px}.roster-toolbar>.meta{font-size:12px;padding:0 0 7px}.list-card{padding:20px 0}.person{padding:17px}.audit{padding:16px 0}.bottom-nav{padding:6px 10px calc(6px + env(safe-area-inset-bottom));max-width:650px}.bottom-nav button{min-height:53px;font-size:10px;gap:5px}.bottom-nav svg{width:21px;height:21px}dialog{border-radius:15px 15px 0 0;max-height:calc(100dvh - 24px - env(safe-area-inset-top))}.form-grid{grid-template-columns:1fr}.field input,.field select,.field textarea{font-size:16px}.modal-head{padding:16px 20px}.modal-head h2{font-size:17px}.version-label{padding-top:0}
}
@media(max-width:370px){.main{padding-left:16px;padding-right:16px}.welcome h1,h1{font-size:21px}.welcome-date{font-size:10px}.schedule-toolbar{grid-template-columns:137px minmax(0,1fr)}.session h3{font-size:13px}.session p{font-size:11px}.session .pill{font-size:9px}.mini-roster table{border-spacing:3px 7px}.timeline-head,.timeline-body{grid-template-columns:32px repeat(var(--lanes),minmax(78px,1fr))}}

.brand{padding:0;gap:10px;font-size:16px;line-height:1.5}.brandmark{flex-shrink:0}.brand>div:last-child{min-width:0}
