:root{--background:#f5f7fb;--foreground:#172033;--panel:#ffffff;--panel-muted:#f8fafc;--line:#dbe3ee;--brand:#0f766e;--brand-strong:#115e59;--brand-soft:#e8f7f4;--blue-soft:#eef6ff;--amber-soft:#fff7e8;--rose-soft:#fff0f3;--slate-50:#f8fafc;--slate-100:#edf2f7;--slate-200:#dbe3ee;--slate-400:#91a0b5;--slate-500:#61708a;--slate-600:#4a5870;--slate-700:#344256;--slate-800:#202d3d;--slate-900:#152033;--slate-950:#0d1726;--shadow-card:0 1px 2px rgba(15,23,42,0.06),0 10px 28px rgba(15,23,42,0.06);--shadow-lift:0 14px 36px rgba(15,23,42,0.12)}.attendance-page,.home-page{min-height:100vh;background:#f5f7fb;color:var(--slate-950);overflow-x:hidden}.attendance-page *,.home-page *{box-sizing:border-box}.home-page{padding:2.5rem 1.5rem}.home-shell{width:min(100%,64rem);min-height:calc(100vh - 5rem);display:flex;flex-direction:column;justify-content:center;margin:0 auto}.home-hero{border-left:4px solid var(--brand);padding-left:1.5rem}.home-hero p{margin:0;color:var(--slate-500);font-weight:800}.home-hero h1{margin:1rem 0 0;color:var(--slate-950);font-size:clamp(2.25rem,5vw,3rem);font-weight:950;line-height:1.15}.home-hero .home-hero-copy{max-width:44rem;margin-top:1.5rem;color:var(--slate-600);font-size:1.125rem;line-height:1.75;overflow-wrap:anywhere}.home-entry-grid{display:grid;gap:1.25rem;margin-top:2.5rem}.attendance-action-button,.attendance-back-link,.home-primary-card,.home-secondary-link{text-decoration:none}.home-primary-card{min-height:16rem;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:.75rem;background:#fff;padding:1.5rem;box-shadow:var(--shadow-card);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.home-primary-card:focus-visible,.home-primary-card:hover{border-color:rgba(15,118,110,.24);box-shadow:var(--shadow-lift);transform:translateY(-1px);outline:none}.home-primary-icon,.home-secondary-icon{display:inline-flex;align-items:center;justify-content:center}.home-primary-icon{width:3.5rem;height:3.5rem;border-radius:.75rem;background:var(--brand-soft);color:var(--brand)}.home-primary-copy{display:grid;gap:.75rem;margin-top:1.75rem}.home-primary-copy span:first-child{color:var(--slate-950);font-size:1.5rem;font-weight:950}.home-primary-copy span:last-child{max-width:36rem;color:var(--slate-600);font-size:1.0625rem;font-weight:700;line-height:1.65}.home-primary-action{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.75rem;color:var(--brand);font-weight:950}.home-secondary-panel{border:1px solid var(--line);border-radius:.75rem;background:#fff;padding:.75rem;box-shadow:var(--shadow-card)}.home-secondary-panel>p{margin:0;padding:.5rem;color:var(--slate-500);font-size:.875rem;font-weight:950}.home-secondary-list{display:grid;gap:.5rem}.home-secondary-link{min-height:5.5rem;display:flex;align-items:center;gap:.875rem;border:1px solid transparent;border-radius:.625rem;background:var(--slate-50);padding:.75rem;color:var(--slate-700);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.home-secondary-link:focus-visible,.home-secondary-link:hover{border-color:var(--line);background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.08);outline:none}.home-secondary-icon{flex:0 0 auto;width:2.75rem;height:2.75rem;border-radius:.5rem;background:#fff;color:var(--slate-600);box-shadow:0 1px 4px rgba(15,23,42,.08)}.home-secondary-copy{min-width:0;flex:1 1 auto;display:grid;gap:.25rem}.home-secondary-copy span:first-child{color:var(--slate-900);font-size:1.0625rem;font-weight:950}.home-secondary-copy span:last-child{color:var(--slate-500);font-size:.875rem;font-weight:700;line-height:1.45}.home-secondary-link>svg{flex:0 0 auto;color:var(--slate-400);transition:color .15s ease,transform .15s ease}.home-secondary-link:focus-visible>svg,.home-secondary-link:hover>svg{color:var(--brand);transform:translateX(2px)}.attendance-page{padding:1rem}.attendance-auth-section,.attendance-loading,.attendance-shell{width:100%;max-width:calc(100vw - 2rem);margin:0 auto}.attendance-loading{border:1px solid var(--line);border-radius:.75rem;background:#fff;padding:1.5rem;color:var(--slate-600);font-size:.875rem;font-weight:900;box-shadow:var(--shadow-card)}.attendance-auth-section{min-height:calc(100vh - 2rem);display:grid;align-items:center;gap:1.5rem}.attendance-auth-copy{min-width:0;border-left:4px solid var(--brand);padding-left:1.25rem}.attendance-auth-copy>p:first-of-type{margin:0;color:var(--slate-500);font-size:1.125rem;font-weight:950}.attendance-auth-copy h1{margin:1rem 0 0;color:var(--slate-950);font-size:clamp(2.25rem,8vw,3rem);font-weight:950;line-height:1.15}.attendance-auth-copy>p:last-child{max-width:44rem;margin:1.25rem 0 0;color:var(--slate-600);font-size:1.125rem;font-weight:800;line-height:1.75;overflow-wrap:anywhere;word-break:break-word}.attendance-action-button,.attendance-back-link{min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.625rem;font-size:.875rem;font-weight:950}.attendance-back-link{margin-bottom:1.5rem;padding:.625rem .875rem;color:var(--slate-600)}.attendance-auth-card,.attendance-back-link{border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-card)}.attendance-auth-card{border-radius:.75rem;padding:1.25rem}.attendance-auth-card,.attendance-page .field{width:100%;min-width:0}.attendance-shell{display:grid;gap:1.25rem}.attendance-header{display:flex;flex-direction:column;gap:1rem;border:1px solid var(--line);border-radius:.75rem;background:#fff;padding:1.25rem;box-shadow:var(--shadow-card)}.attendance-actions{display:flex;flex-direction:column;gap:.5rem}.attendance-action-button{border:1px solid var(--line);padding:.625rem 1rem}.attendance-action-button-secondary{background:#fff;color:var(--slate-700)}.attendance-action-button-dark{background:var(--slate-950);color:#fff}.attendance-competition-grid{display:grid;gap:1rem}.attendance-calendar-settings,.attendance-leaderboard-card,.attendance-personal-card,.attendance-team-summary>section{border:1px solid var(--line);border-radius:.75rem;background:#fff;box-shadow:var(--shadow-card)}.attendance-personal-card{min-width:0;overflow:hidden;border-color:rgba(15,118,110,.24);padding:1.25rem}.attendance-personal-heading{display:flex;align-items:center;gap:.875rem}.attendance-calendar-editor h3,.attendance-calendar-editor p,.attendance-leaderboard-header h2,.attendance-leaderboard-header p,.attendance-leaderboard-person h3,.attendance-leaderboard-person p,.attendance-personal-heading h2,.attendance-personal-heading p,.attendance-pinned-rank>p,.attendance-team-summary p{margin:0}.attendance-leaderboard-header p,.attendance-personal-heading p{color:var(--brand);font-size:.8125rem;font-weight:950}.attendance-leaderboard-header h2,.attendance-personal-heading h2{margin-top:.2rem;color:var(--slate-950);font-size:1.35rem;font-weight:950;line-height:1.3}.attendance-status-icon{width:3rem;height:3rem;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;border-radius:.75rem}.attendance-status-icon svg{width:1.5rem;height:1.5rem;stroke-width:2.5}.attendance-status-icon.is-checked{background:#dff8ed;color:#047857}.attendance-status-icon.is-error{background:#fff0f3;color:#be123c}.attendance-status-icon.is-pending,.attendance-status-icon.is-syncing{background:#eef6ff;color:#1d4ed8}.attendance-status-icon.is-rest{background:#fff7e8;color:#9a6700}.attendance-mark-error{margin:1rem 0 0;border:1px solid #fecdd3;border-radius:.5rem;background:#fff1f2;padding:.75rem;color:#be123c;font-size:.875rem;font-weight:800;line-height:1.5}.attendance-personal-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:1.25rem}.attendance-personal-metrics>div{min-width:0;border:1px solid var(--slate-100);border-radius:.625rem;background:var(--slate-50);padding:.75rem}.attendance-personal-metrics small,.attendance-personal-metrics span{display:block;color:var(--slate-500);font-size:.75rem;font-weight:850;line-height:1.35}.attendance-personal-metrics strong{display:inline-block;margin:.25rem .2rem 0 0;color:var(--slate-950);font-size:2rem;font-weight:950;line-height:1}.attendance-personal-metrics small{display:inline}.attendance-recent-strip{display:grid;grid-template-columns:repeat(7,minmax(4rem,1fr));gap:.4rem;margin-top:1rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:thin}.attendance-day-stamp{min-width:4rem;min-height:5rem;display:grid;align-content:center;justify-items:center;gap:.15rem;border:1px solid var(--slate-200);border-radius:.5rem;background:#fff;padding:.5rem .25rem}.attendance-day-stamp small,.attendance-day-stamp span{color:var(--slate-500);font-size:.6875rem;font-weight:850}.attendance-day-stamp strong{color:var(--slate-800);font-size:.875rem;font-weight:950}.attendance-day-stamp.is-checked{border-color:#a7e9d2;background:#ecfdf5}.attendance-day-stamp.is-checked small{color:#047857}.attendance-day-stamp.is-missed{border-color:#fecdd3;background:#fff1f2}.attendance-day-stamp.is-missed small{color:#be123c}.attendance-day-stamp.is-pending{border-color:#bfdbfe;background:#eff6ff}.attendance-day-stamp.is-pending small{color:#1d4ed8}.attendance-day-stamp.is-rest{background:var(--slate-50)}.attendance-personal-times{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin-top:.75rem;color:var(--slate-500);font-size:.75rem;font-weight:800}.attendance-leaderboard-card{min-width:0;overflow:hidden}.attendance-leaderboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--slate-100);padding:1.25rem}.attendance-leaderboard-header>div>span{display:block;margin-top:.35rem;color:var(--slate-500);font-size:.75rem;font-weight:800}.attendance-leaderboard-header>svg{width:2rem;height:2rem;flex:0 0 auto;color:#9a6700}.attendance-leaderboard-list{display:grid}.attendance-leaderboard-row{display:grid;grid-template-columns:2.75rem minmax(0,1fr) auto;align-items:center;gap:.75rem;min-width:0;border-bottom:1px solid var(--slate-100);padding:.875rem 1rem}.attendance-leaderboard-row.is-current-user{background:#eef9f7;box-shadow:inset 4px 0 0 var(--brand)}.attendance-rank-badge{width:2.5rem;height:2.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.625rem;background:var(--slate-100);color:var(--slate-600);font-size:.875rem;font-weight:950}.attendance-rank-badge svg{display:none}.attendance-leaderboard-row.podium-1 .attendance-rank-badge{background:#fff4bf;color:#8a5a00}.attendance-leaderboard-row.podium-2 .attendance-rank-badge{background:#edf1f5;color:#526174}.attendance-leaderboard-row.podium-3 .attendance-rank-badge{background:#f8e7d8;color:#94502b}.attendance-leaderboard-row.podium-1 .attendance-rank-badge svg,.attendance-leaderboard-row.podium-2 .attendance-rank-badge svg,.attendance-leaderboard-row.podium-3 .attendance-rank-badge svg{width:1rem;height:1rem;display:block;margin-right:.1rem}.attendance-leaderboard-person{min-width:0}.attendance-leaderboard-person>div{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:.35rem}.attendance-leaderboard-person h3{overflow:hidden;color:var(--slate-950);font-size:1rem;font-weight:950;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.attendance-leaderboard-person>div>span{border-radius:999px;background:var(--slate-100);padding:.15rem .45rem;color:var(--slate-600);font-size:.6875rem;font-weight:900}.attendance-leaderboard-person>div>span:first-of-type{background:var(--brand-soft);color:var(--brand)}.attendance-leaderboard-person p{margin-top:.25rem;overflow:hidden;color:var(--slate-500);font-size:.75rem;font-weight:800;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.attendance-leaderboard-score{text-align:right;white-space:nowrap}.attendance-leaderboard-score strong{color:var(--slate-950);font-size:1.35rem;font-weight:950}.attendance-leaderboard-score span,.attendance-leaderboard-streak span{color:var(--slate-500);font-size:.75rem;font-weight:850}.attendance-leaderboard-streak{grid-column:2/4;display:inline-flex;align-items:center;gap:.25rem;color:#b45309}.attendance-leaderboard-streak svg{width:.875rem;height:.875rem}.attendance-pinned-rank{border-top:.5rem solid var(--slate-50)}.attendance-pinned-rank>p{padding:.65rem 1rem 0;color:var(--brand);font-size:.75rem;font-weight:950}.attendance-pinned-rank .attendance-leaderboard-row{border-bottom:0}.attendance-load-more{width:calc(100% - 2rem);min-height:2.75rem;margin:1rem;border:1px solid var(--line);border-radius:.625rem;background:#fff;color:var(--slate-700);font-size:.875rem;font-weight:950}.attendance-load-more:hover:not(:disabled){border-color:rgba(15,118,110,.35);background:var(--brand-soft);color:var(--brand)}.attendance-load-more:disabled{cursor:wait;opacity:.65}.attendance-empty-state{margin:0;padding:2rem 1rem;color:var(--slate-500);text-align:center;font-size:.875rem;font-weight:800}.attendance-team-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.attendance-team-summary>section{padding:1rem 1.25rem}.attendance-team-summary p{color:var(--slate-500);font-size:.8125rem;font-weight:900}.attendance-team-summary strong{display:block;margin-top:.25rem;color:var(--slate-950);font-size:2rem;font-weight:950}.attendance-team-summary>section:last-child strong{color:#be123c}.attendance-calendar-settings{overflow:hidden}.attendance-calendar-settings>summary{min-height:4.5rem;display:flex;cursor:pointer;list-style:none;align-items:center;gap:.75rem;padding:1rem 1.25rem}.attendance-calendar-settings>summary::-webkit-details-marker{display:none}.attendance-calendar-summary-icon{width:2.75rem;height:2.75rem;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;border-radius:.625rem;background:var(--brand-soft);color:var(--brand)}.attendance-calendar-summary-icon svg{width:1.25rem;height:1.25rem}.attendance-calendar-settings>summary>span:nth-child(2){min-width:0;flex:1 1 auto}.attendance-calendar-settings>summary small,.attendance-calendar-settings>summary strong{display:block}.attendance-calendar-settings>summary strong{color:var(--slate-950);font-size:1rem;font-weight:950}.attendance-calendar-settings>summary small{margin-top:.2rem;color:var(--slate-500);font-size:.75rem;font-weight:800}.attendance-calendar-chevron{width:1.25rem;height:1.25rem;color:var(--slate-400);transition:transform .15s ease}.attendance-calendar-settings[open] .attendance-calendar-chevron{transform:rotate(180deg)}.attendance-calendar-body{border-top:1px solid var(--line);padding:1rem}.attendance-calendar-toolbar{display:grid;grid-template-columns:2.75rem 1fr 2.75rem;align-items:center;gap:.5rem;margin-bottom:1rem}.attendance-calendar-toolbar strong{color:var(--slate-950);text-align:center;font-size:1rem;font-weight:950}.attendance-calendar-editor-actions button,.attendance-calendar-toolbar button{min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;color:var(--slate-700);font-weight:900}.attendance-calendar-editor-actions svg,.attendance-calendar-toolbar svg{width:1rem;height:1rem}.attendance-calendar-message{margin:0 0 1rem;border-radius:.5rem;padding:.75rem;font-size:.8125rem;font-weight:850}.attendance-calendar-message.is-error{border:1px solid #fecdd3;background:#fff1f2;color:#be123c}.attendance-calendar-message.is-success{border:1px solid #a7e9d2;background:#ecfdf5;color:#047857}.attendance-calendar-layout{display:grid;gap:1rem}.attendance-month-grid{position:relative;min-height:18rem;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-content:start;gap:.35rem}.attendance-weekday-label{padding:.25rem;color:var(--slate-500);text-align:center;font-size:.6875rem;font-weight:900}.attendance-calendar-day{aspect-ratio:1;min-width:0;display:grid;align-content:center;justify-items:center;gap:.1rem;border:1px solid var(--slate-200);border-radius:.5rem;background:#fff;color:var(--slate-700)}.attendance-calendar-day strong{font-size:.875rem;font-weight:950}.attendance-calendar-day small{color:var(--slate-500);font-size:.625rem;font-weight:850}.attendance-calendar-day.is-workday{background:#f0fdfa}.attendance-calendar-day.is-rest{background:var(--slate-50)}.attendance-calendar-day.is-override{box-shadow:inset 0 -3px 0 #d97706}.attendance-calendar-day.is-selected{border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}.attendance-calendar-loading{position:absolute;inset:2rem 0 0;display:grid;place-items:center;margin:0;border-radius:.625rem;background:rgba(255,255,255,.88);color:var(--slate-600);font-size:.8125rem;font-weight:900}.attendance-calendar-editor{min-height:14rem;border:1px solid var(--line);border-radius:.625rem;background:var(--slate-50);padding:1rem}.attendance-calendar-editor label>span,.attendance-calendar-editor p{color:var(--slate-500);font-size:.75rem;font-weight:900}.attendance-calendar-editor h3{margin-top:.25rem;color:var(--slate-950);font-size:1.25rem;font-weight:950}.attendance-calendar-editor>div:first-child>span{display:block;margin-top:.25rem;color:var(--slate-500);font-size:.75rem;font-weight:800}.attendance-day-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:1rem}.attendance-day-mode button{min-height:2.75rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;color:var(--slate-600);font-size:.8125rem;font-weight:900}.attendance-day-mode button.is-active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.attendance-calendar-editor label{display:grid;gap:.35rem;margin-top:1rem}.attendance-calendar-editor input{width:100%;min-height:2.75rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;padding:.625rem .75rem;color:var(--slate-800);font:inherit;font-size:.875rem;font-weight:750}.attendance-calendar-editor-actions{display:grid;gap:.5rem;margin-top:1rem}.attendance-calendar-editor-actions button:first-child{border-color:var(--brand);background:var(--brand);color:#fff}.attendance-calendar-editor-actions button:disabled{cursor:wait;opacity:.65}.attendance-calendar-placeholder{min-height:12rem;display:grid;place-items:center;color:var(--slate-500);text-align:center;font-size:.875rem;font-weight:800;line-height:1.6}.attendance-calendar-settings>summary:focus-visible,.attendance-page a:focus-visible,.attendance-page button:focus-visible,.attendance-page input:focus-visible,.attendance-page select:focus-visible{outline:3px solid rgba(15,118,110,.28);outline-offset:2px}@media (min-width:1024px){.home-entry-grid{grid-template-columns:minmax(0,2fr) minmax(20rem,1fr)}.attendance-auth-section,.attendance-loading,.attendance-shell{max-width:80rem}.attendance-auth-section{grid-template-columns:minmax(0,1fr) minmax(20rem,26rem)}.attendance-header{justify-content:space-between}.attendance-actions,.attendance-header{flex-direction:row;align-items:center}.attendance-competition-grid{grid-template-columns:minmax(0,.9fr) minmax(34rem,1.1fr);align-items:start}.attendance-leaderboard-row{grid-template-columns:2.75rem minmax(0,1fr) 7.5rem 7.75rem}.attendance-leaderboard-streak{grid-column:auto;justify-self:end}.attendance-calendar-layout{grid-template-columns:minmax(0,1.4fr) minmax(17rem,.8fr);align-items:start}.attendance-calendar-body{padding:1.25rem}}@media (max-width:639px){.attendance-auth-card,.attendance-auth-copy{max-width:22rem}.attendance-auth-copy>p:last-child{max-width:20rem;font-size:1rem}.attendance-personal-card{padding:1rem}.attendance-personal-metrics>div{padding:.65rem .5rem}.attendance-personal-metrics strong{font-size:1.65rem}.attendance-personal-metrics small,.attendance-personal-metrics span{font-size:.6875rem}.attendance-team-summary{gap:.75rem}.attendance-calendar-day{min-height:2.75rem;aspect-ratio:auto}.attendance-calendar-day small{font-size:.5625rem}}@media (prefers-reduced-motion:reduce){.attendance-calendar-chevron{transition:none}}.bus-page{min-height:100vh;background:#f5f7fb;color:var(--slate-950);overflow-x:hidden;padding:1rem}.bus-auth-shell *,.bus-page *{box-sizing:border-box;min-width:0}.bus-page.is-driver-mode{background:#eef6ff}.bus-auth-shell,.bus-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:#f5f7fb;overflow-x:hidden}.bus-loading{gap:.75rem;color:var(--slate-600);font-weight:800}.bus-auth-card,.bus-panel,.driver-location-card,.driver-run-card,.driver-stop-card,.driver-summary{border:1px solid var(--line);border-radius:.75rem;background:#fff;box-shadow:var(--shadow-card)}.bus-auth-card{width:min(100%,28rem);padding:1.25rem}.bus-auth-heading,.bus-header,.bus-header-actions,.bus-panel-heading,.bus-role-row,.driver-status-actions,.driver-stop-actions,.driver-stop-meta,.driver-stop-topline,.driver-summary,.planner-stop-row,.run-card-meta,.run-card-summary,.run-control-row,.stop-add-row{display:flex}.bus-auth-heading,.bus-panel-heading,.bus-role-row,.driver-stop-meta,.driver-stop-topline,.planner-stop-row,.run-card-summary{align-items:center}.bus-auth-heading{gap:.75rem;margin-bottom:1.25rem}.bus-auth-heading p,.bus-kicker,.bus-panel-heading p,.driver-run-card p,.driver-summary p{margin:0;color:var(--slate-500);font-size:.75rem;font-weight:800}.bus-auth-heading h1,.bus-header h1,.bus-panel-heading h2,.driver-run-card h2,.driver-stop-card h3,.driver-summary h2{margin:.2rem 0 0;color:var(--slate-950);font-weight:900;letter-spacing:0}.bus-auth-heading h1{font-size:1.25rem}.bus-header{max-width:84rem;margin:0 auto 1rem;flex-direction:column;gap:1rem}.bus-header h1{font-size:1.75rem}.bus-role-row{margin-top:.5rem;color:var(--slate-600);font-size:.875rem;font-weight:800}.bus-header-actions,.bus-role-row{gap:.5rem;flex-wrap:wrap}.bus-view-switcher{display:grid;grid-template-columns:auto auto minmax(11rem,14rem);align-items:center;gap:.625rem;border:1px solid rgba(15,118,110,.18);border-radius:.75rem;background:linear-gradient(180deg,#ffffff,#f0fdfa);padding:.5rem;box-shadow:0 8px 24px rgba(15,23,42,.08)}.bus-view-switcher.is-driver-only{grid-template-columns:auto}.bus-view-switcher>div:first-child,.driver-preview-picker{display:grid;gap:.2rem}.bus-view-switcher span,.driver-preview-picker span{color:var(--slate-500);font-size:.7rem;font-weight:900;line-height:1}.bus-view-switcher strong{color:var(--slate-900);font-size:.875rem;font-weight:950;line-height:1.1;white-space:nowrap}.driver-preview-picker .field{min-height:2.25rem;padding-top:.4rem;padding-bottom:.4rem}.bus-mode-switch{display:inline-flex;border:1px solid var(--line);border-radius:.5rem;background:#fff;padding:.25rem}.bus-mode-switch button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:0;border-radius:.375rem;background:transparent;padding:.5rem .75rem;color:var(--slate-600);font-size:.875rem;font-weight:800}.bus-mode-switch button.is-active{background:var(--brand);color:#fff}.bus-dark-button,.bus-primary-button,.bus-secondary-button{min-height:2.625rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.625rem .875rem;font-size:.875rem;font-weight:900;text-decoration:none}.bus-primary-button{border:1px solid var(--brand);background:var(--brand);color:#fff}.bus-secondary-button{border:1px solid var(--line);background:#fff;color:var(--slate-700)}.bus-dark-button{border:1px solid var(--slate-950);background:var(--slate-950);color:#fff}.bus-form,.bus-form-grid{display:grid;gap:.75rem}.bus-form label,.bus-form-grid label{display:grid;gap:.35rem}.bus-form span,.bus-form-grid span{color:var(--slate-500);font-size:.75rem;font-weight:800}.bus-form-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));align-items:end}.bus-error,.bus-error-panel,.bus-notice-panel{margin:0;border-radius:.5rem;padding:.75rem .875rem;font-size:.875rem;font-weight:800}.bus-error,.bus-error-panel{border:1px solid #fecdd3;background:#fff0f3;color:#be123c}.bus-error-panel,.bus-notice-panel{max-width:84rem;margin:0 auto 1rem}.bus-notice-panel{border:1px solid #a7f3d0;background:#ecfdf5;color:#047857}.planner-grid{max-width:84rem;margin:0 auto;display:grid;gap:1rem}.activity-list,.driver-stop-list,.mini-stop-list,.planner-main,.planner-side,.planner-stop-list,.run-list,.student-mini-list,.template-list{display:grid;gap:.75rem}.bus-panel{padding:1rem}.bus-panel-heading{justify-content:space-between;gap:1rem;margin-bottom:1rem}.run-card{border:1px solid var(--line);border-radius:.75rem;background:var(--slate-50);overflow:hidden}.run-card.is-active{border-color:var(--brand);background:#f0fdfa}.run-card-summary{width:100%;justify-content:space-between;gap:.75rem;border:0;background:transparent;padding:.875rem;text-align:left}.driver-stop-card h3,.planner-stop-row h3,.run-card-summary strong{display:block;color:var(--slate-950);font-size:.95rem;font-weight:900}.activity-list small,.mini-stop-list small,.planner-stop-row small,.run-card-summary small,.student-mini-list small{display:block;color:var(--slate-500);font-size:.75rem;font-weight:700;line-height:1.45}.run-card-meta{gap:.5rem;flex-wrap:wrap;padding:0 .875rem .875rem;color:var(--slate-500);font-size:.75rem;font-weight:800}.run-card-detail{border-top:1px solid var(--line);padding:.875rem}.run-control-row,.stop-add-row{gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.run-control-row .field,.stop-add-row .field{min-width:10rem;flex:1 1 10rem}.driver-location-muted,.driver-map-link{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;border-radius:.5rem;background:#fff;padding:.75rem;color:var(--slate-700);font-size:.8125rem;font-weight:800;text-decoration:none}.planner-stop-row{gap:.75rem;justify-content:space-between;border:1px solid var(--line);border-radius:.5rem;background:#fff;padding:.75rem}.planner-stop-row>div{flex:1 1 auto;min-width:0}.planner-stop-row p{margin:.2rem 0;color:var(--slate-600);font-size:.8125rem;font-weight:700}.stop-order{display:inline-flex;width:2rem;height:2rem;flex:0 0 auto;align-items:center;justify-content:center;border-radius:999px;background:var(--brand);color:#fff;font-size:.8125rem;font-weight:900}.template-list button{display:flex;justify-content:space-between;gap:.75rem;border:1px solid var(--line);border-radius:.5rem;background:#fff;padding:.75rem;color:var(--slate-700);text-align:left}.template-list button.is-active{border-color:var(--brand);background:#f0fdfa;color:var(--brand-strong)}.activity-list strong,.mini-stop-list p,.student-mini-list strong,.template-list span{margin:0;font-size:.875rem;font-weight:900}.activity-list span,.template-list small{color:var(--slate-500);font-size:.75rem;font-weight:800}.activity-list article,.mini-stop-list div,.student-mini-list article{border:1px solid var(--line);border-radius:.5rem;background:var(--slate-50);padding:.75rem}.mini-stop-list div{display:grid;grid-template-columns:2rem 1fr;gap:.5rem}.mini-stop-list span{display:inline-flex;width:1.75rem;height:1.75rem;align-items:center;justify-content:center;border-radius:999px;background:#fff;color:var(--slate-600);font-size:.75rem;font-weight:900}.student-mini-list p{margin:0;color:var(--slate-500);font-size:.8125rem;font-weight:800}.driver-shell{max-width:42rem;margin:0 auto;display:grid;gap:.875rem}.driver-summary{justify-content:space-between;padding:1rem}.driver-summary h2{font-size:1.75rem}.driver-summary span{display:block;margin-top:.25rem;color:var(--slate-600);font-size:.875rem;font-weight:800}.driver-preview-banner{display:flex;align-items:flex-start;gap:.75rem;border:1px solid rgba(14,165,233,.22);border-radius:.75rem;background:#eff6ff;color:#075985;padding:.875rem}.driver-preview-banner strong{display:block;color:#0f172a;font-size:.9rem;font-weight:900}.driver-preview-banner p{margin:.25rem 0 0;font-size:.8125rem;font-weight:750;line-height:1.5}.driver-location-card,.driver-run-card{padding:1rem}.driver-run-card{display:flex;justify-content:space-between;gap:1rem}.driver-run-card h2{font-size:1.35rem}.driver-location-card p,.driver-run-card span,.driver-stop-card p{display:block;margin:.35rem 0 0;color:var(--slate-600);font-size:.875rem;font-weight:700;line-height:1.5}.driver-location-card.is-muted{background:var(--slate-50);box-shadow:none}.driver-run-actions,.driver-status-actions,.driver-stop-actions{display:flex;flex-wrap:wrap;gap:.5rem}.driver-run-actions button{border:1px solid var(--brand);border-radius:.5rem;background:var(--brand);padding:.65rem .8rem;color:#fff;font-size:.875rem;font-weight:900}.driver-location-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.driver-location-card h3{margin:0;font-size:1rem;font-weight:900}.driver-stop-card{padding:1rem}.driver-stop-card.is-picked_up{border-color:#a7f3d0}.driver-stop-card.is-skipped{border-color:#fde68a}.driver-stop-topline{justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.driver-stop-topline>span{color:var(--slate-500);font-size:.8125rem;font-weight:900}.driver-stop-card h3{font-size:1.35rem}.driver-stop-meta{flex-wrap:wrap;gap:.5rem;margin-top:.875rem}.driver-stop-meta span{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;background:var(--slate-50);padding:.4rem .65rem;color:var(--slate-700);font-size:.8125rem;font-weight:900}.driver-stop-actions{margin-top:1rem}.driver-stop-actions a{min-height:3rem;flex:1 1 8rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.65rem;background:var(--slate-950);color:#fff;font-size:1rem;font-weight:900;text-decoration:none}.driver-status-actions{margin-top:.75rem}.driver-status-actions button{min-height:3.25rem;flex:1 1 6rem;border:1px solid var(--line);border-radius:.65rem;background:#fff;color:var(--slate-800);font-size:1rem;font-weight:900}.bus-empty{max-width:42rem;margin:2rem auto;display:grid;justify-items:center;gap:.5rem;border:1px solid var(--line);border-radius:.75rem;background:#fff;padding:2rem;color:var(--slate-500);text-align:center}.bus-empty.compact{margin:0;padding:1rem}.bus-empty h2,.bus-empty p{margin:0}.bus-empty h2{color:var(--slate-950);font-size:1.25rem;font-weight:900}.bus-empty p{font-size:.875rem;font-weight:700}@media (min-width:1024px){.bus-header{flex-direction:row;align-items:center;justify-content:space-between}.planner-grid{grid-template-columns:minmax(0,1fr) 24rem;align-items:start}}@media (max-width:640px){.bus-page{padding:.75rem}.bus-header-actions,.bus-header-actions>*,.driver-location-card,.driver-run-card{width:100%}.bus-header-actions{flex-direction:column}.bus-dark-button,.bus-mode-switch,.bus-primary-button,.bus-secondary-button,.bus-view-switcher{width:100%}.bus-view-switcher{grid-template-columns:1fr}.bus-mode-switch button{flex:1 1 0}.driver-preview-picker .field{width:100%}.driver-location-card,.driver-run-card{flex-direction:column;align-items:stretch}}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--background);color:var(--foreground);font-family:Arial,PingFang TC,Microsoft JhengHei,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid rgba(15,118,110,.22);outline-offset:2px}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed}.field{width:100%;border-radius:.5rem;border:1px solid var(--line);background:#fff;min-height:2.625rem;padding:.625rem .75rem;font-size:.875rem;color:var(--slate-800);outline:none;box-shadow:0 1px 0 rgba(15,23,42,.02);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.field::placeholder{color:var(--slate-400)}.field:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(15,118,110,.12)}textarea.field{line-height:1.55}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.min-w-0{min-width:0}.w-full{width:100%}.w-64{width:16rem}.w-2\.5{width:.625rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-12{width:3rem}.w-14{width:3.5rem}.h-full{height:100%}.h-2\.5{height:.625rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-12{height:3rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-10{min-height:2.5rem}.min-h-11{min-height:2.75rem}.min-h-16{min-height:4rem}.min-h-24{min-height:6rem}.min-h-32{min-height:8rem}.min-h-56{min-height:14rem}.min-h-64{min-height:16rem}.min-h-\[calc\(100vh-4rem\)\]{min-height:calc(100vh - 4rem)}.min-w-11{min-width:2.75rem}.max-w-44{max-width:11rem}.max-w-xs{max-width:20rem}.max-w-2xl{max-width:42rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-h-40{max-height:10rem}.max-h-72{max-height:18rem}.mx-auto{margin-left:auto;margin-right:auto}.relative{position:relative}.absolute{position:absolute}.-left-\[21px\]{left:-21px}.top-1\.5{top:.375rem}.scroll-mt-6{scroll-margin-top:1.5rem}.overflow-y-auto{overflow-y:auto}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-2{column-gap:.5rem}.gap-y-1{row-gap:.25rem}.space-y-2>:not([hidden])~:not([hidden]){margin-top:.5rem}.space-y-3>:not([hidden])~:not([hidden]){margin-top:.75rem}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.5rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pl-4{padding-left:1rem}.pr-1{padding-right:.25rem}.m-4{margin:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.border{border:1px solid var(--slate-200)}.border-2{border-width:2px;border-style:solid}.border-b{border-bottom:1px solid var(--slate-200)}.border-l{border-left:1px solid var(--slate-200)}.border-t{border-top:1px solid var(--slate-200)}.border-slate-200{border-color:var(--line)}.border-slate-100{border-color:var(--slate-100)}.border-slate-400{border-color:var(--slate-400)}.border-slate-950{border-color:var(--slate-950)}.border-white{border-color:#fff}.border-amber-200{border-color:#fde68a}.border-blue-200{border-color:#bfdbfe}.border-cyan-200{border-color:#a5f3fc}.border-emerald-200{border-color:#a7f3d0}.border-rose-200{border-color:#fecdd3}.border-sky-200{border-color:#bae6fd}.border-teal-200{border-color:#99f6e4}.border-teal-700{border-color:#0f766e}.border-orange-200{border-color:#fed7aa}.border-violet-200{border-color:#ddd6fe}.divide-y>:not([hidden])~:not([hidden]){border-top:1px solid var(--slate-100)}.divide-slate-100>:not([hidden])~:not([hidden]){border-color:var(--slate-100)}.shadow-sm{box-shadow:var(--shadow-card)}.bg-transparent{background:transparent}.bg-white{background:#fff}.bg-white\/15{background:rgba(255,255,255,.15)}.bg-white\/20{background:rgba(255,255,255,.2)}.bg-slate-50{background:var(--slate-50)}.bg-slate-100{background:var(--slate-100)}.bg-slate-300{background:#cbd5e1}.bg-slate-400{background:var(--slate-400)}.bg-slate-950{background:var(--brand)}.bg-amber-50{background:var(--amber-soft)}.bg-amber-100{background:#fef3c7}.bg-blue-50{background:var(--blue-soft)}.bg-cyan-50{background:#ecfeff}.bg-emerald-50{background:#ecfdf5}.bg-emerald-600{background:#059669}.bg-orange-100{background:#ffedd5}.bg-rose-50{background:var(--rose-soft)}.bg-rose-100{background:#ffe4e6}.bg-sky-50{background:#f0f9ff}.bg-teal-50{background:#f0fdfa}.bg-teal-50\/60{background:rgba(240,253,250,.6)}.bg-violet-50{background:#f5f3ff}.text-left{text-align:left}.text-center{text-align:center}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-black{font-weight:900}.leading-none{line-height:1}.leading-6{line-height:1.5rem}.tracking-tight{letter-spacing:0}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.break-all{word-break:break-all}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.whitespace-pre-line{white-space:pre-line}.text-white{color:#fff}.text-slate-300{color:#cbd5e1}.text-slate-400{color:var(--slate-400)}.text-slate-500{color:var(--slate-500)}.text-slate-600{color:var(--slate-600)}.text-slate-700{color:var(--slate-700)}.text-slate-800{color:var(--slate-800)}.text-slate-900{color:var(--slate-900)}.text-slate-950{color:var(--slate-950)}.text-amber-700{color:#b45309}.text-amber-800{color:#92400e}.text-blue-600{color:#2563eb}.text-blue-700{color:#1d4ed8}.text-cyan-700{color:#0e7490}.text-emerald-200{color:#a7f3d0}.text-emerald-600{color:#059669}.text-emerald-700{color:#047857}.text-rose-200{color:#fecdd3}.text-rose-600{color:#e11d48}.text-rose-700{color:#be123c}.text-rose-800{color:#9f1239}.text-orange-800{color:#9a3412}.text-sky-700{color:#0369a1}.text-teal-700{color:#0f766e}.text-violet-700{color:#6d28d9}.outline-none{outline:none}.transition{transition:all .15s ease}.resize-y{resize:vertical}.cursor-pointer{cursor:pointer}.list-none{list-style:none}.translate-x-0{transform:translateX(0)}.translate-x-6{transform:translateX(1.5rem)}.hover\:bg-slate-50:hover{background:var(--slate-50)}.hover\:bg-slate-100:hover{background:var(--slate-100)}.hover\:bg-slate-800:hover{background:var(--brand-strong)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-slate-400:disabled{background:var(--slate-400)}.disabled\:text-slate-400:disabled{color:var(--slate-400)}.ring-1{box-shadow:0 1px 2px rgba(15,23,42,.05),0 0 0 1px var(--ring-color,rgba(226,232,240,.95))}.ring-amber-200{--ring-color:#fde68a}.ring-emerald-100{--ring-color:#d1fae5}.ring-orange-200{--ring-color:#fed7aa}.ring-rose-200{--ring-color:#fecdd3}.ring-slate-200{--ring-color:var(--slate-200)}.focus-within\:border-slate-400:focus-within{border-color:var(--brand)}.focus-within\:ring-2:focus-within{box-shadow:0 0 0 3px rgba(15,118,110,.12)}.focus-within\:ring-slate-100:focus-within{box-shadow:0 0 0 3px rgba(15,118,110,.12)}.focus\:border-teal-500:focus{border-color:var(--brand)}.placeholder\:text-slate-400::placeholder{color:var(--slate-400)}.group[open] .group-open\:rotate-180{transform:rotate(180deg)}.app-shell,.auth-shell{background:linear-gradient(180deg,rgba(255,255,255,.86) 0,rgba(245,247,251,.9) 22rem),var(--background)}.auth-shell{position:relative;overflow-x:hidden;background:linear-gradient(135deg,rgba(248,250,252,.96) 0,rgba(238,246,255,.92) 42%,rgba(246,251,247,.96) 100%),var(--background)}.auth-shell:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.42;background-image:linear-gradient(rgba(15,23,42,.045) 1px,transparent 0),linear-gradient(90deg,rgba(15,23,42,.045) 1px,transparent 0);background-size:3rem 3rem}.auth-shell>*{position:relative;z-index:1}.auth-grid{max-width:74rem}.auth-copy{display:flex;min-height:32rem;flex-direction:column;justify-content:center}.auth-brand-badge{display:inline-flex;width:fit-content;align-items:center;gap:.5rem;border:1px solid rgba(15,118,110,.18);border-radius:.5rem;background:rgba(255,255,255,.86);padding:.5rem .75rem;color:var(--slate-700);font-size:.875rem;font-weight:700;box-shadow:0 8px 20px rgba(15,23,42,.05)}.auth-kicker{margin:1.5rem 0 0;color:var(--brand-strong);font-size:.875rem;font-weight:800}.auth-title{max-width:42rem;margin:.65rem 0 0;color:var(--slate-950);font-size:2.75rem;font-weight:800;line-height:1.08}.auth-lead{max-width:42rem;margin:1rem 0 0;color:var(--slate-600);font-size:1rem;font-weight:600;line-height:1.75}.auth-feature-list{display:grid;max-width:42rem;margin-top:2rem;gap:.75rem}.auth-feature-card{display:flex;min-height:7rem;align-items:flex-start;gap:.75rem;border:1px solid var(--line);border-left-width:4px;border-radius:.5rem;background:rgba(255,255,255,.88);padding:1rem;box-shadow:0 12px 26px rgba(15,23,42,.07)}.auth-feature-card.is-blue{border-left-color:#2563eb}.auth-feature-card.is-rose{border-left-color:#e11d48}.auth-feature-card.is-emerald{border-left-color:#059669}.auth-feature-icon,.auth-form-icon{display:inline-flex;width:2.5rem;height:2.5rem;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid rgba(219,227,238,.92);border-radius:.5rem;background:rgba(248,250,252,.92)}.auth-feature-title{margin:0;color:var(--slate-900);font-size:.9375rem;font-weight:800}.auth-feature-copy{margin:.35rem 0 0;color:var(--slate-500);font-size:.8125rem;font-weight:600;line-height:1.5}.auth-security-note{display:inline-flex;width:fit-content;max-width:100%;align-items:center;gap:.75rem;margin-top:2rem;border:1px solid rgba(15,118,110,.16);border-radius:.5rem;background:rgba(232,247,244,.72);padding:.875rem 1rem;color:var(--slate-700);font-size:.875rem;font-weight:700;line-height:1.5}.auth-card{background:rgba(255,255,255,.94);box-shadow:0 20px 46px rgba(15,23,42,.14);backdrop-filter:blur(16px)}.auth-card-header{display:flex;align-items:center;gap:.875rem;border-bottom:1px solid var(--line);padding-bottom:1.25rem}.auth-card-kicker{margin:0 0 .125rem;color:var(--brand-strong);font-size:.75rem;font-weight:800}.auth-input-shell{display:flex;min-height:2.875rem;align-items:center;gap:.625rem;border:1px solid var(--line);border-radius:.5rem;background:rgba(255,255,255,.96);padding:.625rem .75rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.auth-input-shell:focus-within{border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px rgba(15,118,110,.12)}.auth-input-shell input{width:100%;min-width:0;border:0;background:transparent;color:var(--slate-900);font-size:.875rem;outline:none}.auth-input-shell input::placeholder{color:var(--slate-400)}.feature-tile{background:rgba(255,255,255,.9)}.app-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);box-shadow:0 1px 0 rgba(15,23,42,.05)}.app-header-inner,.app-layout{max-width:90rem}.brand-lockup{border-left:4px solid var(--brand);padding-left:1rem}.brand-lockup h1{font-size:clamp(1.25rem,2vw,1.625rem)}.header-actions{align-items:stretch}.branch-picker,.user-chip{min-width:12.5rem;background:rgba(255,255,255,.9)}.workspace-tabs{position:sticky;top:5.5rem;z-index:10;background:rgba(255,255,255,.9);backdrop-filter:blur(12px)}.workspace-tabs button{min-width:8.5rem;justify-content:center}.mobile-workspace-nav{display:none}.auth-card,.auth-feature-card,.content-column>.grid:first-child>section,.content-column>section,.feature-tile,.right-rail>section{border-color:var(--line)}.content-column>section,.right-rail>section{overflow:hidden}.right-rail{align-self:start}.right-rail>section{background:rgba(255,255,255,.92)}.workspace-collapsible{overflow:hidden}.workspace-collapsible-summary{display:flex;min-height:4.25rem;cursor:pointer;list-style:none;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;transition:background .15s ease}.workspace-collapsible-summary::-webkit-details-marker{display:none}.workspace-collapsible-summary::marker{content:""}.workspace-collapsible-summary:hover{background:var(--slate-50)}.workspace-collapsible-icon{display:inline-flex;width:2.25rem;height:2.25rem;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:.5rem;background:var(--slate-50)}.workspace-collapsible-subtitle,.workspace-collapsible-title{display:block}.workspace-collapsible-title{color:var(--slate-950);font-size:1rem;font-weight:800;line-height:1.4}.workspace-collapsible-subtitle{margin-top:.125rem;color:var(--slate-500);font-size:.8125rem;font-weight:700;line-height:1.4}.workspace-collapsible-chevron{flex:0 0 auto;transition:transform .15s ease}.workspace-collapsible[open] .workspace-collapsible-summary{border-bottom:1px solid var(--line);background:var(--slate-50)}.workspace-collapsible[open] .workspace-collapsible-chevron{transform:rotate(180deg)}.workspace-collapsible-body{background:#fff}.personal-record-class-group{overflow:hidden}.personal-record-class-summary{display:flex;min-height:4rem;cursor:pointer;list-style:none;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;transition:background .15s ease}.personal-record-class-summary::-webkit-details-marker{display:none}.personal-record-class-summary::marker{content:""}.personal-record-class-summary:hover{background:var(--slate-50)}.personal-record-class-meta,.personal-record-class-title{display:block}.personal-record-class-title{color:var(--slate-950);font-size:1rem;font-weight:900;line-height:1.35}.personal-record-class-meta{margin-top:.125rem;color:var(--slate-500);font-size:.8125rem;font-weight:800;line-height:1.4}.personal-record-class-chevron{flex:0 0 auto;transition:transform .15s ease}.personal-record-class-group[open] .personal-record-class-summary{border-bottom:1px solid var(--line);background:var(--slate-50)}.personal-record-class-group[open] .personal-record-class-chevron{transform:rotate(180deg)}.notification-toggle-card{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--line);border-radius:.75rem;padding:1rem;text-align:left;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.notification-toggle-card:hover{box-shadow:0 12px 24px rgba(15,23,42,.08)}.notification-toggle-card:focus-visible{outline:3px solid rgba(13,148,136,.28);outline-offset:2px}.notification-toggle-card:disabled{cursor:not-allowed;opacity:.65}.notification-toggle-card.is-enabled{border-color:rgba(5,150,105,.32);background:#ecfdf5}.notification-toggle-card.is-disabled{background:var(--slate-50)}.notification-toggle-copy{display:grid;min-width:0;gap:.35rem}.notification-toggle-title{display:inline-flex;align-items:center;gap:.5rem;color:var(--slate-950);font-size:1rem;font-weight:900;line-height:1.35}.notification-toggle-card.is-enabled .notification-toggle-title{color:#047857}.notification-toggle-description{color:var(--slate-500);font-size:.875rem;font-weight:700;line-height:1.5}.notification-toggle-control{display:inline-flex;flex:0 0 auto;align-items:center;gap:.75rem}.notification-toggle-state{color:var(--slate-600);font-size:.9375rem;font-weight:900;white-space:nowrap}.notification-toggle-card.is-enabled .notification-toggle-state{color:#047857}.notification-toggle-switch{display:inline-flex;width:4rem;height:2.25rem;align-items:center;border-radius:999px;background:#cbd5e1;padding:.25rem;transition:background .15s ease}.notification-toggle-card.is-enabled .notification-toggle-switch{background:#059669}.notification-toggle-knob{display:block;width:1.75rem;height:1.75rem;border-radius:999px;background:#fff;box-shadow:0 4px 10px rgba(15,23,42,.18);transition:transform .15s ease}.notification-toggle-card.is-enabled .notification-toggle-knob{transform:translateX(1.75rem)}.completed-card{overflow:hidden}.completed-summary{display:flex;min-height:3.5rem;cursor:pointer;list-style:none;align-items:center;justify-content:space-between;gap:.75rem;padding:.875rem 1rem;transition:background .15s ease}.completed-summary::-webkit-details-marker{display:none}.completed-summary:hover{background:var(--slate-50)}.completed-summary-title{min-width:0;color:var(--slate-950);font-size:.9375rem;font-weight:800;line-height:1.45}.completed-summary-icon{flex:0 0 auto;transition:transform .15s ease}.completed-card[open] .completed-summary{border-bottom:1px solid var(--line);background:var(--slate-50)}.completed-card[open] .completed-summary-icon{transform:rotate(180deg)}.completed-card-body{background:#fff}.archive-search{background:rgba(255,255,255,.78)}.status-action-group{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-start}.status-action-button{display:inline-flex;min-height:2.5rem;align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:.5rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:800;line-height:1.1;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.status-action-button:hover:not(:disabled){transform:translateY(-1px)}.status-action-button:disabled{opacity:.55}.record-card-main{display:grid;gap:.85rem}.record-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;border-top:1px solid var(--slate-100);padding-top:.75rem}.record-card-actions>.status-action-group{flex:0 1 auto}.record-card-actions .status-action-button,.record-card-actions>button{white-space:nowrap}.record-card-progress{align-items:start}.record-card-details{border-top:1px solid var(--slate-100);padding-top:.75rem}.record-card-details-summary{cursor:pointer;list-style:none;border-radius:.5rem;background:var(--slate-50);color:var(--slate-700);padding:.65rem .85rem;font-size:.9375rem;font-weight:900}.record-card-details-summary::-webkit-details-marker{display:none}.record-card-details-summary:after{content:"展開";float:right;color:var(--brand);font-size:.8125rem}.record-card-details[open] .record-card-details-summary:after{content:"收合"}.workspace-tabs button.bg-slate-950,button.bg-slate-950{box-shadow:0 8px 18px rgba(15,118,110,.2)}button.border.bg-white:hover,label.border.bg-white:hover{border-color:#c7d2e2}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (min-width:640px){.auth-feature-list{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:w-64{width:16rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:items-center{align-items:center}.lg\:items-start{align-items:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:grid-cols-\[1fr_360px\]{grid-template-columns:1fr 360px}.lg\:grid-cols-\[1fr_420px\]{grid-template-columns:1fr 420px}.lg\:grid-cols-\[minmax\(240px\2c 320px\)_1fr\]{grid-template-columns:minmax(240px,320px) 1fr}.app-shell .field{min-height:2.875rem;font-size:.9375rem;font-weight:600}.app-shell .personal-record-class-title,.app-shell .workspace-collapsible-title{font-size:1.0625rem;line-height:1.4}.app-shell .personal-record-class-meta,.app-shell .workspace-collapsible-subtitle{font-size:.875rem;line-height:1.45}.app-shell .completed-summary-title{font-size:1.0625rem;font-weight:900;line-height:1.5rem}.app-shell .record-card{padding:1.1rem 1.25rem}.app-shell .record-card-main{grid-template-columns:minmax(0,1fr) minmax(12rem,14rem);align-items:start;gap:1.25rem}.app-shell .record-card-title{font-size:1.1875rem;font-weight:900;line-height:1.65rem}.app-shell .record-card-id{font-size:.9375rem;line-height:1.3rem}.app-shell .record-card-body{max-width:72ch;font-size:.95rem;line-height:1.65}.app-shell .record-card-meta{gap:.45rem .9rem;color:var(--slate-700);font-size:.875rem;font-weight:800;line-height:1.45}.app-shell .record-card-actions{width:100%;justify-self:end;align-items:stretch;border-top:0;border-left:1px solid var(--slate-100);padding-top:0;padding-left:1rem}.app-shell .record-card-actions>.rounded-lg,.app-shell .record-card-actions>.status-action-group{width:100%}.app-shell .record-card-actions>.status-action-group{display:grid;grid-template-columns:1fr;gap:.5rem}.app-shell .status-action-button{min-height:2.5rem;font-size:.875rem}.app-shell .record-card-actions .status-action-button,.app-shell .record-card-actions>button{width:100%}.app-shell .workspace-tabs button{min-height:2.5rem;padding:.45rem .7rem;font-size:.875rem;line-height:1.2}.app-shell .record-card-progress{border-top:1px solid var(--slate-100);padding-top:1rem;grid-template-columns:minmax(280px,380px) minmax(0,1fr)}}@media (min-width:1280px){.app-shell .record-card-main{grid-template-columns:minmax(0,1fr) minmax(13rem,15rem)}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(280px\2c 360px\)_1fr\]{grid-template-columns:minmax(280px,360px) 1fr}}@media (max-width:1023px){.auth-copy{min-height:auto;padding-top:1rem}.auth-title{font-size:2.25rem;line-height:1.12}.auth-feature-card{min-height:auto}.app-header{position:static;z-index:auto;backdrop-filter:none}.app-header-inner{gap:.875rem;padding-top:1rem;padding-bottom:1rem}.brand-lockup{padding-left:.875rem}.brand-lockup h1{font-size:1.35rem;line-height:1.25}.header-actions{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.branch-picker,.user-chip{min-width:0}.branch-picker,.header-actions>button,.user-chip{min-height:3.25rem}.branch-picker,.user-chip{grid-column:1/-1}.desktop-workspace-tabs{display:none}.mobile-workspace-nav{display:block;border-top:1px solid rgba(226,232,240,.8);border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(15,23,42,.08);backdrop-filter:blur(16px);padding:.625rem 0}.mobile-workspace-nav-grid{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;padding:0 .75rem}.mobile-workspace-nav-button{position:relative;display:inline-flex;width:100%;min-width:0;min-height:4.35rem;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;border:1px solid transparent;border-radius:.75rem;background:var(--slate-50);color:var(--slate-600);padding:.45rem .5rem;transition:background .15s ease,border-color .15s ease,color .15s ease}.mobile-workspace-nav-button.is-active{border-color:rgba(15,118,110,.18);background:var(--brand);color:#fff;box-shadow:0 8px 18px rgba(15,118,110,.22)}.mobile-workspace-nav-icon{display:inline-flex;align-items:center;justify-content:center}.mobile-workspace-nav-label{max-width:100%;font-size:.875rem;font-weight:900;line-height:1.15rem;overflow-wrap:anywhere;text-align:center;white-space:normal}.mobile-workspace-nav-count{position:absolute;top:.25rem;right:.35rem;min-width:1.25rem;border-radius:9999px;background:#fff;color:var(--brand);font-size:.7rem;font-weight:900;line-height:1.25rem;padding:0 .25rem;box-shadow:0 1px 4px rgba(15,23,42,.12)}.mobile-workspace-nav-button.is-active .mobile-workspace-nav-count{background:rgba(255,255,255,.18);color:#fff;box-shadow:none}.mobile-workspace-more{position:relative;min-width:0}.mobile-workspace-more-menu{position:absolute;top:calc(100% + .5rem);right:0;z-index:30;display:grid;width:min(18rem,calc(100vw - 1.5rem));gap:.375rem;border:1px solid var(--line);border-radius:.75rem;background:#fff;padding:.5rem;box-shadow:var(--shadow-lift)}.mobile-workspace-more-item{display:grid;min-height:3rem;grid-template-columns:1.5rem minmax(0,1fr) auto;align-items:center;gap:.625rem;border:1px solid transparent;border-radius:.625rem;background:var(--slate-50);color:var(--slate-700);padding:.625rem .75rem;text-align:left}.mobile-workspace-more-item.is-active{border-color:rgba(15,118,110,.22);background:var(--brand-soft);color:var(--brand-strong)}.mobile-workspace-more-icon{display:inline-flex;align-items:center;justify-content:center}.mobile-workspace-more-label{font-size:.9375rem;font-weight:900;line-height:1.25rem;overflow-wrap:anywhere;white-space:normal}.mobile-workspace-more-count{min-width:1.5rem;border-radius:9999px;background:#fff;color:var(--brand);font-size:.75rem;font-weight:900;line-height:1.5rem;text-align:center;padding:0 .35rem}.app-layout{gap:1rem;padding-top:1rem;padding-bottom:1rem}.content-column{gap:1rem}.content-column.space-y-6>:not([hidden])~:not([hidden]){margin-top:1rem}}@media (max-width:639px){.auth-title{font-size:2rem}.auth-lead{font-size:.9375rem}.app-header-inner,.app-layout{padding-left:.875rem;padding-right:.875rem}.header-actions{grid-template-columns:1fr 1fr}.header-actions>button{padding-left:.625rem;padding-right:.625rem}.workspace-collapsible-summary{min-height:3.5rem;gap:.75rem;padding:.875rem 1rem}.workspace-collapsible-icon{width:2rem;height:2rem}.workspace-collapsible-title{font-size:.9375rem}.workspace-collapsible-subtitle{font-size:.75rem}.completed-card-body.p-4,.workspace-collapsible-body.p-4,.workspace-collapsible-body.p-5{padding:.875rem}.notification-toggle-card{align-items:stretch;flex-direction:column;gap:.875rem;padding:1rem}.notification-toggle-title{font-size:1.0625rem}.notification-toggle-description{font-size:.9375rem}.notification-toggle-control{justify-content:space-between;width:100%}.notification-toggle-state{font-size:1.0625rem}.completed-summary{min-height:3.25rem;padding:.75rem .875rem}.mobile-workspace-nav-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-workspace-nav-button{min-height:3.6rem}}