:root{--ink:#1b343b;--muted:#536c74;--accent:#0b6865;--accent-hover:#07514f;--ground:#f3f7f7;--panel:#fff;--line:#d9e4e5;--soft:#e5f1ef;--danger:#ad3434;--warning:#805013;--radius:12px;font-family:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:var(--ground);font-synthesis:none;font-size:14px;line-height:1.6}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{ -webkit-tap-highlight-color:transparent}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #348c86;outline-offset:3px}::selection{color:#fff;background:#0b6865}input{caret-color:var(--accent)}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.3;letter-spacing:-.02em;font-weight:650}h2{font-size:20px;font-weight:650}h3{font-size:15px;font-weight:650}small,.muted{color:var(--muted)}small{font-size:12px}.startup{margin:15vh auto;text-align:center}.startup strong{font-size:34px;color:var(--accent)}
.shell{min-height:100dvh;display:grid;grid-template-columns:220px minmax(0,1fr)}.nav-rail{background:var(--accent);color:white;padding:32px 22px;display:flex;flex-direction:column;gap:35px}.brand{padding:0 13px}.brand strong{font-size:30px;letter-spacing:3px;font-weight:650}.brand p{font-size:12px;margin-top:3px;color:#d7efec}.nav-rail nav{display:grid;gap:8px}.nav-item{border:0;background:transparent;color:#daeeeb;padding:13px 16px;text-align:left;border-radius:10px;font-weight:550}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#fff;color:var(--accent)}.rail-footer{margin-top:auto;padding:0 13px;font-size:12px;color:#d7efec}.rail-footer strong{color:white;display:block;font-weight:500;margin-bottom:5px}.main{padding:32px 34px 24px;max-width:1640px;width:100%;margin:0 auto;min-width:0}.page-header{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:28px}.page-header p{margin-top:8px;color:var(--muted);font-size:14px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);padding:9px 15px;min-height:42px;background:white;color:var(--ink);border-radius:9px;font-weight:550;white-space:nowrap;text-decoration:none;transition:background .15s}.btn:hover{background:#eef4f4}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{color:var(--danger);border-color:#e9cccc}.btn.danger:hover{background:#fff0f0}.btn.quiet{border-color:transparent;background:transparent;color:var(--muted)}.btn.compact{padding:5px 10px;min-height:34px;font-size:12px}.text-action{border:0;background:none;color:var(--accent);padding:3px 0;text-align:left;text-decoration:underline;text-underline-offset:3px}.text-action:hover{color:var(--accent-hover)}.danger-text{color:var(--danger)}
.workspace{display:grid;grid-template-columns:170px minmax(0,1fr) 240px;gap:22px;align-items:start}.route-list{display:grid;gap:9px}.route-list-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.route-item{width:100%;border:1px solid transparent;border-radius:var(--radius);background:white;padding:15px;text-align:left;color:var(--ink)}.route-item strong{display:block;font-size:14px;font-weight:600}.route-item small{display:block;margin-top:5px}.route-item:hover{background:var(--soft)}.route-item.selected{border-color:var(--route-color);background:var(--route-soft)}.route-line{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--route-color);margin-right:7px}.calendar-panel{background:white;border-radius:16px;padding:24px;min-width:0}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.calendar-head h2{font-size:22px;font-variant-numeric:tabular-nums}.month-switch{display:flex;gap:2px}.plan-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:18px;margin-bottom:15px;border-bottom:1px solid var(--line)}.plan-bar p{font-size:12px;color:var(--muted)}.plan-bar strong{color:var(--ink);font-size:14px}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekdays{padding:0 0 11px;text-align:center;font-size:12px;color:var(--muted)}.day{border:1px solid transparent;background:var(--route-soft);min-height:75px;padding:9px 8px;border-radius:11px;display:flex;flex-direction:column;align-items:flex-start;color:var(--ink);position:relative;font-variant-numeric:tabular-nums;transition:background .15s,border-color .15s}.day:hover{border-color:var(--route-color)}.day.selected{border:2px solid var(--route-color);padding:8px 7px;background:var(--route-soft)}.day.other-month{opacity:.45}.day.past{background:#f1f4f4}.day.stopped{background:#f0f1f1}.day-num{font-size:17px;font-weight:600;line-height:1.2}.day-label{font-size:12px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;margin-top:9px;color:var(--route-ink)}.day.stopped .day-label{color:#647175}.today-tag{position:absolute;right:5px;top:5px;font-size:10px;font-weight:600;color:var(--accent)}.rear-mark{width:5px;height:5px;background:var(--route-color);border-radius:50%;position:absolute;right:7px;bottom:8px}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:19px}.legend span{display:flex;align-items:center;gap:5px}.legend-box{width:11px;height:11px;border-radius:3px;background:var(--route-soft);border:1px solid var(--route-color)}.legend-box.stopped{background:#e9eded;border:0}.calendar-note{margin-top:15px;color:var(--muted);font-size:12px}.plan-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}.detail{background:white;border-radius:16px;padding:23px;min-width:0}.detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.detail-date{font-size:20px;letter-spacing:-.02em}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:5px;background:var(--soft);color:var(--accent);font-size:11px;padding:3px 7px;white-space:nowrap}.badge.warning{color:var(--warning);background:#fff2d9}.badge.neutral{color:var(--muted);background:#eef2f3}.badge.danger{background:#fde9e9;color:var(--danger)}.duty-block+.duty-block{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.duty-title{font-size:14px;font-weight:650;margin-bottom:10px}.group-title{display:flex;align-items:center;justify-content:space-between;font-weight:650;font-size:17px;margin-bottom:13px}.staff-line{display:grid;grid-template-columns:44px 1fr;gap:8px;padding:6px 0;font-size:13px}.staff-line .role{color:var(--muted)}.detail .actions{margin-top:15px;gap:7px}.detail .actions .btn{flex:1;padding-left:8px;padding-right:8px;font-size:12px}.trip-dates{font-size:12px;color:var(--muted);margin-bottom:12px}.empty{padding:22px 0;color:var(--muted)}.empty h3{color:var(--ink);margin-bottom:8px}.empty p{margin-bottom:18px}.getting-started{background:#edf5f3;border-radius:var(--radius);padding:17px;margin-top:16px;font-size:13px}.getting-started p{margin:8px 0 13px}.bottom-status{margin-top:23px;display:flex;gap:10px;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}
.surface{background:white;border-radius:16px;padding:25px}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:20px}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.search{min-width:220px}.control,input:not([type=checkbox]):not([type=color]),select{width:100%;border:1px solid #bfced0;border-radius:8px;min-height:42px;padding:8px 11px;background:#fff;color:var(--ink)}input::placeholder{color:#647a80}.toolbar input,.toolbar select{width:auto}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}th{text-align:left;color:var(--muted);font-weight:550;font-size:12px;background:#f5f8f8;padding:13px 14px;white-space:nowrap}td{padding:15px 14px;border-bottom:1px solid #e7eeee;white-space:nowrap}tr:last-child td{border-bottom:0}.person-name{font-weight:600}.table-empty{padding:45px 0;text-align:center}.table-empty p{margin:8px 0 22px;color:var(--muted)}.count-note{color:var(--muted);font-size:12px}.group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.crew-card{border:1px solid var(--line);border-radius:var(--radius);padding:19px}.crew-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.crew-card h3{font-size:18px}.crew-card p{font-size:13px;margin-top:7px}.crew-card .btn{margin-top:18px;width:100%}.crew-card .muted{margin-right:9px}.data-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px}.data-section{background:white;border-radius:16px;padding:28px}.data-section h2{margin-bottom:8px}.data-section p{color:var(--muted);margin-bottom:24px;max-width:65ch}.data-section .field{max-width:300px}.data-section .actions{margin-top:22px}.data-section+.data-section{margin-top:20px}.export-preview{margin-top:20px}.export-preview table{font-size:12px}.info-strip{padding:13px 16px;background:#edf5f3;border-radius:9px;font-size:13px;margin:18px 0}.steps{display:grid;gap:13px;margin:20px 0;padding-left:20px;color:var(--muted)}
dialog{width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 48px);border:0;border-radius:16px;padding:0;color:var(--ink);box-shadow:0 24px 80px #173e4140;overflow:auto;background:white}dialog::backdrop{background:#16333765}.dialog-header{padding:23px 26px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.dialog-header h2{font-size:22px}.dialog-body{padding:24px 26px}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:18px 26px;border-top:1px solid var(--line);background:#f7fafa;position:sticky;bottom:0;z-index:2}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:7px;margin-bottom:17px}.field label{font-size:13px;font-weight:600}.field small{font-size:12px}.full{grid-column:1/-1}.field input[type=color]{width:100%;height:42px;background:white;border:1px solid #bfced0;border-radius:8px;padding:4px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:23px 0 12px}.section-heading h3{font-size:15px}.picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-height:265px;overflow:auto;padding:3px}.pick{border:1px solid var(--line);background:white;border-radius:9px;min-height:45px;padding:9px 6px;font-size:13px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick:hover{border-color:var(--accent)}.pick.assigned{background:#fff4e3;color:#754e1b;border-color:#ecd5af}.pick.selected{background:var(--soft);border:2px solid var(--accent);color:var(--accent);padding:8px 5px;font-weight:600}.pick .order{font-size:10px;background:var(--accent);color:white;border-radius:4px;position:absolute;top:2px;right:3px;line-height:15px;min-width:15px}.selection-summary{background:#f4f8f8;border-radius:9px;padding:13px;margin-top:12px;font-size:13px}.move-note{color:var(--warning);background:#fff4e3;border-radius:8px;padding:11px;margin-top:12px;font-size:12px}.rotation-list{margin-top:16px;display:grid;gap:7px}.rotation-row{display:flex;align-items:center;gap:9px;font-size:13px;background:#f4f8f8;padding:7px 10px;border-radius:7px}.rotation-row strong{flex:1}.error-inline{color:var(--danger);background:#fff1f1;padding:11px 14px;border-radius:9px;margin-bottom:15px;font-size:13px}.checkbox{display:flex;align-items:flex-start;gap:9px;font-size:13px;margin-top:18px}.checkbox input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}.conflict-list{padding:0;list-style:none;margin:15px 0}.conflict-list li{padding:12px 0;border-bottom:1px solid var(--line)}.conflict-list strong{display:block;font-size:14px}.conflict-list span{font-size:13px;color:var(--muted)}#notices{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 32px));z-index:50}.toast{border:1px solid #aacdc7;border-radius:12px;background:#f0faf7;padding:14px 18px;color:#17554e;box-shadow:0 8px 30px #173e4120;display:flex;justify-content:space-between;align-items:center;gap:10px}.toast.error{color:var(--danger);background:#fff5f5;border-color:#ecc6c6}.toast button{background:none;border:0;padding:3px 6px;color:inherit;font-size:12px}.loading{opacity:.65;pointer-events:none}
@media(min-width:1650px){.workspace{grid-template-columns:190px minmax(0,1fr) 275px}.day{min-height:91px}}
@media(max-width:1250px){.shell{grid-template-columns:180px minmax(0,1fr)}.nav-rail{padding:28px 16px}.main{padding:28px 22px}.workspace{grid-template-columns:145px minmax(0,1fr);gap:17px}.detail{grid-column:2}.calendar-panel{padding:20px}.group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail .duty-block{display:inline-block;vertical-align:top;width:100%}.day{min-height:78px}}
@media(max-width:850px){.shell{grid-template-columns:1fr}.nav-rail{padding:17px 20px;gap:14px}.brand{padding:0;display:flex;align-items:baseline;gap:14px}.brand strong{font-size:24px}.brand p{margin:0}.nav-rail nav{display:flex;gap:7px}.nav-item{flex:1;text-align:center;padding:9px 6px;font-size:12px;white-space:nowrap}.rail-footer{display:none}.main{padding:24px 20px}.page-header{margin-bottom:22px}.page-header h1{font-size:25px}.page-header p{font-size:13px}.workspace{grid-template-columns:1fr}.route-list{display:flex;overflow-x:auto;gap:8px;padding:3px 3px 8px}.route-list-title{display:none}.route-item{min-width:120px;width:120px;padding:12px}.detail{grid-column:1}.data-grid{grid-template-columns:1fr}.picker{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-panel{padding:22px}.data-section{padding:23px}}
@media(max-width:520px){.main{padding:20px 12px}.page-header{align-items:flex-start;gap:12px}.page-header .actions .btn{min-height:36px;padding:6px 9px;font-size:12px}.page-header p{max-width:210px}.calendar-panel{padding:18px 10px;border-radius:13px}.calendar-head{padding:0 6px}.calendar-head h2{font-size:19px}.calendar-head .btn{padding:4px 8px;font-size:11px;min-height:32px}.plan-bar{padding:0 6px 15px;align-items:flex-start}.plan-bar .btn{font-size:11px;padding:5px 8px;min-height:34px}.calendar,.weekdays{gap:4px}.day{padding:8px 4px;min-height:65px;border-radius:8px}.day.selected{padding:7px 3px}.day-num{font-size:15px}.day-label{font-size:10px;margin-top:12px}.today-tag{font-size:9px;right:3px;top:3px}.legend,.calendar-note,.plan-actions{margin-left:6px;margin-right:6px}.group-grid{grid-template-columns:1fr}.surface{padding:18px 14px}.toolbar{align-items:stretch}.filters{width:100%}.toolbar input.search{width:100%;min-width:0}.toolbar select{flex:1;min-width:120px}.table-wrap{margin:0 -7px}th,td{padding:12px 9px}.form-grid{grid-template-columns:1fr;gap:0}.picker{grid-template-columns:repeat(3,minmax(0,1fr))}.dialog-body{padding:19px 18px}.dialog-header{padding:17px 18px}.dialog-header h2{font-size:20px}.dialog-footer{padding:14px 18px}.bottom-status{align-items:flex-start;gap:15px}.detail{padding:21px}.data-section{padding:22px 18px}.brand p{font-size:11px}.dialog-footer .btn{flex:1}.rotation-row .btn{padding:4px 7px}.toast{font-size:13px}}
.workspace>aside,.data-grid>div{min-width:0}.day.other-month{opacity:1;background:#f7f9f9;color:#536c74}.day.other-month .day-label{color:#536c74}.route-item{flex-shrink:0}
@media(max-width:850px){.workspace,.data-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.pick[hidden],.filter-empty[hidden]{display:none}
.export-preview{max-width:100%;max-height:480px;overflow:auto;overscroll-behavior:contain;scrollbar-color:#86a9a8 #edf3f3;scrollbar-width:auto}
.export-preview th,.export-preview td{min-width:104px;text-align:center}
.export-preview thead th{position:sticky;top:0;z-index:2;background:#edf3f3}
.export-preview tbody th{position:sticky;left:0;z-index:1;background:#f5f8f8;border-bottom:1px solid var(--line)}
.export-preview thead th:first-child{left:0;z-index:3}
.export-preview .rest-cell{color:var(--muted)}
.preview-note{font-size:12px;margin:12px 0!important}
.export-legend{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--ink)}
.export-legend span{padding:4px 8px;border-radius:5px}

/* Shared surface and role tokens: calm, compact scheduling across web and MAUI. */
:root{--surface-container:#edf4f3;--surface-low:#f7fafa;--on-primary:#fff;--outline-strong:#91aaa9;--role-container:#e5f1ef;--role-ink:#0b6865;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--shape-small:8px;--shape-medium:12px;--shape-large:16px}
.btn,.pick{border-radius:var(--shape-small);min-height:44px}
.btn:active:not(:disabled),.pick:active:not(:disabled){filter:brightness(.94)}
.badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1.4;min-height:24px;padding:4px 8px;flex-shrink:0;border-radius:6px;font-size:12px;font-weight:600}
.nav-item{min-height:48px}.nav-rail{gap:32px}.main{padding:32px}.workspace{grid-template-columns:160px minmax(0,1fr) 288px;gap:16px}
.page-header{margin-bottom:24px}.page-header h1{font-weight:650}.route-item{padding:16px 12px;border-radius:12px}.route-item.selected{box-shadow:inset 3px 0 var(--route-color)}
.calendar-panel,.detail,.data-section{border-radius:var(--shape-large)}.calendar-panel{padding:24px 16px}.calendar-head{gap:12px}.plan-bar{padding-bottom:16px}.plan-bar p{line-height:1.6}
.day{min-height:92px}.day-label{font-size:12px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}.day.coupled .day-label{display:flex;flex-wrap:wrap;align-items:center;gap:0 2px}.day.coupled .day-label>span:not(.coupling-dot){white-space:nowrap}.coupling-dot{color:var(--muted)}
.detail{padding:24px 16px}.detail-head{align-items:center;gap:8px;margin-bottom:20px}.eyebrow{font-size:12px;color:var(--muted);margin-bottom:4px}.detail-date{font-size:24px;line-height:1.3}.duty-block{padding:20px 0;border-top:1px solid var(--line)}.duty-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:16px}.duty-title>strong{margin-right:auto}.coupling-status{background:var(--surface-container);color:var(--muted)}.trip-dates{font-size:12px;line-height:1.5;margin:8px 0 16px;color:var(--muted)}
.crew-rosters{display:grid;gap:12px}.crew-roster{padding:12px;background:var(--surface-low);border:1px solid var(--line);border-radius:var(--shape-medium)}.group-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;font-size:16px}.group-title>strong{overflow-wrap:anywhere;min-width:0}.crew-role{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:24px;padding:4px 8px;border-radius:6px;background:var(--role-container);color:var(--role-ink);font-size:12px;line-height:1.4;font-weight:600;white-space:nowrap;flex-shrink:0}.staff-line{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;margin-top:8px;font-size:13px}.staff-line .role{font-size:12px;color:var(--muted)}.staff-line>span:last-child{overflow-wrap:anywhere}.duty-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.duty-actions .btn{padding:8px;font-size:12px;white-space:normal}.detail-stop{border-top:1px solid var(--line);padding-top:16px;margin-top:8px}.detail-stop .btn{width:100%}
.dialog-header{padding:24px}.dialog-body{padding:24px}.dialog-footer{padding:16px 24px;gap:8px}.dialog-body>p{line-height:1.7}.field{gap:8px;margin-bottom:16px}.field input,.field select{min-height:44px}.rear-date-fields{margin-top:24px}.rear-picker{margin-top:12px}.rotation-row{padding:8px 12px;gap:12px;border-radius:8px}.rotation-number{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:var(--soft);color:var(--accent);font-size:12px}.rotation-row .btn{min-width:44px;min-height:44px}.rotation-row strong{min-width:0;overflow-wrap:anywhere}.plan-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:24px;padding:12px 16px;background:var(--soft);border-radius:8px;color:var(--accent)}.plan-summary span{font-size:12px}.rear-preview-list{max-height:220px;overflow:auto;margin:8px 0 12px}.rear-preview-row{display:grid;grid-template-columns:72px 1fr 12px 1fr;gap:8px;padding:12px 8px;border-bottom:1px solid var(--line);align-items:center;font-size:13px}.rear-preview-row>span:first-child{color:var(--muted)}.rear-preview-row strong{overflow-wrap:anywhere;font-weight:600}
@media(min-width:1650px){.workspace{grid-template-columns:176px minmax(0,1fr) 304px;gap:24px}.calendar-panel{padding:24px}.detail{padding:24px}}
@media(max-width:1350px) and (min-width:851px){.workspace{grid-template-columns:144px minmax(0,1fr)}.detail{grid-column:2}.crew-rosters{grid-template-columns:repeat(2,minmax(0,1fr))}.detail .duty-block{display:block}.duty-actions{display:flex}.main{padding:24px}.shell{grid-template-columns:180px minmax(0,1fr)}}
@media(max-width:850px){.main{padding:24px 16px}.workspace{grid-template-columns:minmax(0,1fr);gap:16px}.detail{grid-column:1}.nav-rail{padding:16px 20px;gap:16px}.nav-item{padding:12px 6px}.route-item{width:128px;min-width:128px;padding:12px}.route-item.selected{box-shadow:inset 0 -3px var(--route-color)}.detail{padding:24px}.calendar-panel{padding:20px 12px}.day{min-height:84px}.plan-actions .btn{min-height:48px}.dialog-footer .btn{min-height:48px}.pick{min-height:48px}.btn.compact{min-height:44px}.crew-rosters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.main{padding:20px 8px}.nav-rail{padding:16px 12px;gap:12px}.nav-rail nav{gap:4px}.nav-item{font-size:12px}.page-header{padding:0 4px;gap:12px}.page-header h1{font-size:24px}.page-header .actions .btn{min-height:44px}.calendar-panel{padding:16px 8px}.calendar-head{flex-wrap:wrap}.calendar-head h2{font-size:20px}.calendar-head .btn{min-height:44px;min-width:44px;padding:8px}.plan-bar{gap:12px}.plan-bar .btn{min-height:44px}.calendar,.weekdays{gap:3px}.day{min-height:88px;padding:8px 3px}.day.selected{padding:7px 2px}.day-label{font-size:11px;margin-top:12px}.day.coupled .day-label{gap:0 1px}.detail{padding:20px 16px}.crew-rosters{grid-template-columns:1fr}.crew-roster{padding:16px}.staff-line{font-size:14px}.duty-actions .btn{font-size:13px;min-height:48px}.dialog-header{padding:16px}.dialog-body{padding:16px}.dialog-footer{padding:12px 16px;flex-wrap:wrap}.dialog-footer>.btn{min-width:104px}.dialog-header h2{font-size:20px}.rear-preview-row{grid-template-columns:64px 1fr 8px 1fr;gap:4px;font-size:12px}.plan-summary{padding:12px}.surface,.data-section{padding:20px 16px}}

/* Cloud account controls share the existing typography and teal theme. */
.cloud-status{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;border-bottom:1px solid #dce6e5;background:#fff;flex-wrap:wrap;color:#1b343b;font-size:14px}
.cloud-connection{margin-left:16px;color:#536c74}.cloud-status .actions{gap:8px}.cloud-banner{background:#fff3d6;color:#58421a;padding:12px 24px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cloud-login{min-height:90vh;display:grid;place-items:center;padding:24px;background:#f3f7f6}.cloud-login-card{width:min(100%,440px);background:white;border:1px solid #dce6e5;border-radius:16px;padding:32px}.cloud-login-card h1{font-size:28px;margin:12px 0}.cloud-login-card form,.cloud-form form{display:grid;gap:10px;margin:24px 0}.cloud-login-card label,.cloud-form label{display:block;font-weight:600;margin-top:8px}.cloud-login-card input,.cloud-form input,.cloud-form select{width:100%;min-height:46px}.cloud-form{padding:24px;display:grid;gap:10px}.cloud-form-error{color:#a12b27;min-height:22px;margin:4px 0}.account-list>div{padding:12px 0;display:flex;gap:12px;justify-content:space-between;align-items:center;border-bottom:1px solid #dce6e5}.cloud-login-card button[type=submit],.cloud-form button[type=submit]{min-height:48px}
#cloud-editor{width:min(620px,calc(100vw - 24px));max-height:90dvh;border:1px solid #dce6e5;border-radius:16px;padding:0;color:#1b343b}#cloud-editor::backdrop{background:#173b4166}
@media(max-width:700px){.cloud-status{padding:12px}.cloud-status .actions{width:100%;flex-wrap:wrap}.cloud-connection{display:block;margin:4px 0 0}.cloud-login-card{padding:24px}.cloud-form{padding:16px}.cloud-banner{padding:12px}}
