:root{--background:#aebdff;--foreground:#17181c;--muted:#697180;--surface:#fff;--surface-strong:#eef2f7;--border:#d9dee8;--brand:#176b87;--brand-strong:#0d4f63;--accent:#c05746;--success:#2f7d59;--warning:#9b6a13;--shadow:0 10px 24px #11182714;--app-mobile-max-width:402px;--app-nav-max-width:1023px;--app-page-desktop-width:850px;--app-side-nav-width:264px;--app-page-width:calc(100% - 32px);--app-form-max-width:402px;--app-content-max-width:1120px;--app-header-height:64px;--app-bottom-nav-height:126px;--app-bottom-nav-visible-height:126px;--app-shift-bottom-clearance:56px;--app-shift-shell-gap:8px;--app-visual-viewport-height:100dvh;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--page-side-padding:16px;--auth-side-padding:clamp(24px, 8vw, 32px);--z-header:600;--z-bottom-nav:700;--z-fab:800;--z-drawer:900;--z-modal:1000}*{box-sizing:border-box}*,:before,:after{min-width:0}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}html{background:#fff;min-height:100%;overflow-x:hidden}body{min-height:100dvh;color:var(--foreground);background:radial-gradient(circle at 22% 18%,#e2e8ffb8,#0000 30%),linear-gradient(158deg,#cbd5ff 0%,#a9baff 45%,#8298f2 100%);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}body.modal-open{overflow:hidden}body:has(.shift-month-page){width:100%;height:var(--app-visual-viewport-height);min-height:var(--app-visual-viewport-height);position:fixed;inset:0;overflow:hidden}body:has(.shift-day-page){width:100%;height:100dvh;position:fixed;inset:0;overflow:hidden}body.auth-route{background:0 0}body.auth-route .topbar,body.auth-route .bottom-nav,body.auth-route .bottom-nav-shell,body.auth-route .side-nav-shell{display:none}body:has(.login-page) .topbar{display:none}body:has(.login-page) .bottom-nav{display:none}body:has(.login-page) .bottom-nav-shell{display:none}body:has(.login-page) .side-nav-shell{display:none}body:has(.substitution-page) .topbar{display:none}body:has(.substitution-page) .bottom-nav{display:none}body:has(.substitution-page) .bottom-nav-shell{display:none}body:has(.substitution-page) .side-nav-shell{display:none}body:has(.substitution-print-page) .topbar{display:none}body:has(.substitution-print-page) .bottom-nav{display:none}body:has(.substitution-print-page) .bottom-nav-shell{display:none}body:has(.substitution-print-page) .side-nav-shell{display:none}body:has(.announcement-attachment-page) .topbar{display:none}body:has(.announcement-attachment-page) .bottom-nav{display:none}body:has(.announcement-attachment-page) .bottom-nav-shell{display:none}body:has(.announcement-attachment-page) .side-nav-shell{display:none}body.auth-route .shell{padding-top:0;padding-bottom:0;padding-left:0}.shell:has(.login-page){padding-top:0;padding-bottom:0;padding-left:0}.shell:has(.substitution-page){padding-top:0;padding-bottom:0;padding-left:0}.shell:has(.substitution-print-page){padding-top:0;padding-bottom:0;padding-left:0}.shell:has(.announcement-attachment-page){padding-top:0;padding-bottom:0;padding-left:0}a{color:inherit;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;text-decoration:none}button,input,textarea,select{font:inherit;min-width:0;max-width:100%}input,textarea,select{width:100%}button{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}form,fieldset,label,section,article,dialog,details,summary{min-width:0}a img,button img,a svg,button svg,[role=button] img,[role=button] svg{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}textarea{resize:none}.shell{min-height:100dvh;padding-top:calc(var(--app-header-height) + var(--safe-top) + 8px);padding-bottom:calc(var(--app-bottom-nav-height) + var(--safe-bottom) + 16px)}.shell:has(.shift-month-page){height:var(--app-visual-viewport-height);min-height:var(--app-visual-viewport-height);justify-content:center;padding-top:0;padding-bottom:0;display:flex;overflow:hidden}.shell:has(.shift-day-page){height:100dvh;min-height:100dvh;padding-top:calc(var(--app-header-height) + var(--safe-top) + 10px);padding-bottom:calc(var(--app-bottom-nav-visible-height) + var(--app-shift-bottom-clearance));justify-content:center;display:flex;overflow:hidden}.topbar{z-index:var(--z-header);padding-top:var(--safe-top);will-change:transform;background:#fffffffa;border-bottom:0;border-radius:0 0 22px 22px;transition:transform .22s,box-shadow .22s,opacity .16s,visibility .16s;position:fixed;top:0;left:0;right:0;box-shadow:0 6px 14px #4b7dff38}.topbar__inner{width:var(--app-page-width);min-height:var(--app-header-height);justify-content:space-between;align-items:center;margin:0 auto;padding:12px clamp(24px,8vw,34px) 10px;display:flex}.brand{align-items:center;min-width:0;display:inline-flex}.app-header-brand{width:146px;height:30px}.app-header-brand__image{object-fit:contain;width:100%;height:100%;display:block}.desktop-nav{gap:6px;margin-left:auto;display:none}.topbar-actions{align-items:center;gap:8px;display:flex}.topbar-logout-form{display:none}.topbar-logout-button{color:#0a1f44;cursor:pointer;background:#ffffffbd;border:1px solid #0a1f441a;border-radius:999px;justify-content:center;align-items:center;min-height:34px;padding:0 13px;font-size:12px;font-weight:900;line-height:1;display:inline-flex;box-shadow:inset 1px 1px #ffffffdb}.topbar-logout-button:hover,.topbar-logout-button:focus-visible{background:#dbeafeb8;outline:none}.topbar-actions .ghost-button{display:none}.role-chip{color:#050b18;text-overflow:ellipsis;white-space:nowrap;background:0 0;max-width:136px;font-size:14px;font-weight:900;line-height:1;display:inline-block;overflow:hidden}.nav-link{color:var(--muted);border-radius:8px;padding:9px 12px;font-size:.9rem;font-weight:700}.nav-link:hover,.nav-link:focus-visible{color:var(--brand-strong);background:var(--surface-strong);outline:none}.page{width:var(--app-page-width);max-width:100%;margin:0 auto;padding:18px 0 40px}.page-heading{gap:8px;margin-bottom:20px;display:grid}.eyebrow{color:var(--accent);font-size:.78rem;font-weight:800}.page-title{letter-spacing:0;margin:0;font-size:clamp(1.7rem,1.3rem + 1vw,2.3rem)}.page-description{max-width:720px;color:var(--muted);margin:0;line-height:1.7}.status-strip{gap:10px;margin:22px 0;display:grid}.status-pill{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;display:flex}.status-pill span:first-child{color:var(--muted);font-size:.84rem;font-weight:700}.status-pill span:last-child{color:var(--brand-strong);font-weight:800}.card-grid{gap:12px;display:grid}.home-card{border:1px solid var(--border);background:var(--surface);min-height:150px;box-shadow:var(--shadow);border-radius:8px;gap:14px;padding:18px;display:grid}.home-card__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.home-card h2{letter-spacing:0;margin:0;font-size:1rem}.home-card p{color:var(--muted);margin:0;line-height:1.6}.count-badge{background:var(--surface-strong);min-width:34px;color:var(--brand-strong);text-align:center;border-radius:999px;padding:5px 9px;font-size:.85rem;font-weight:800}.text-link{color:var(--brand-strong);align-self:end;font-weight:800}.home-dashboard{align-content:start;gap:14px;display:grid}.home-hero-panel{background:linear-gradient(135deg,#ffffffc7,#e7eeff94),#ffffff7a;border:1px solid #ffffffb8;border-radius:26px;gap:10px;padding:10px;display:grid;box-shadow:inset 1px 1px #ffffffd1,0 16px 34px #4b7dff1f}.home-daily-panel{grid-template-columns:minmax(0,1fr)}.home-daily-panel .home-section{box-shadow:none}.home-date-card,.home-section,.home-metric-card{background:#ffffffdb;border:1px solid #ffffffa3;border-radius:22px;box-shadow:inset 1px 1px #ffffffb8,0 10px 22px #4b7dff1a}.home-date-card{background:radial-gradient(circle at 92% 20%,#60a5fa3d 0 18%,#0000 19%),linear-gradient(135deg,#fffffffa,#ecf4ffe0);justify-content:flex-start;align-items:center;min-height:88px;padding:18px;display:flex}.home-date-card time{color:#0a1f44;letter-spacing:0;font-size:23px;font-weight:900;line-height:1.15}.home-section{gap:12px;padding:14px;display:grid}.budget-page{align-content:start;gap:14px;display:grid}.budget-hero,.budget-card,.budget-empty{background:linear-gradient(135deg,#fffffff0,#eff4ffd1),#fff;border:1px solid #ffffffb8;border-radius:24px;box-shadow:inset 1px 1px #ffffffdb,0 14px 30px #4b7dff1f}.budget-hero{justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:16px;display:flex}.budget-hero span,.budget-card__header span,.budget-metrics span,.budget-staff-row span{color:#64748b;font-size:12px;font-weight:800;line-height:1.35}.budget-hero h1,.budget-card__header h2,.budget-empty h2{color:#0a1f44;letter-spacing:0;margin:0;font-size:22px;font-weight:900;line-height:1.2}.budget-hero__link{background:#ffffffdb;border-radius:999px;flex:none;min-height:40px;font-size:13px;font-weight:900}.budget-list{gap:14px;display:grid}.budget-card{gap:14px;min-width:0;padding:16px;display:grid}.budget-card__header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.budget-card__header>div{gap:4px;min-width:0;display:grid}.budget-card__header h2{overflow-wrap:anywhere;font-size:18px}.budget-card__header>strong{color:#0b5f73;white-space:nowrap;font-size:24px;font-weight:900;line-height:1.1}.budget-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.budget-metrics div{background:#e8f0ffc2;border-radius:16px;gap:4px;min-width:0;padding:10px;display:grid}.budget-metrics strong{color:#0a1f44;overflow-wrap:anywhere;font-size:15px;font-weight:900;line-height:1.2}.budget-details{min-width:0}.budget-details>summary{color:#0a1f44;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#ffffffd1;border-radius:999px;align-items:center;min-height:38px;padding:0 14px;font-size:13px;font-weight:900;list-style:none;display:inline-flex}.budget-details>summary::-webkit-details-marker{display:none}.budget-staff-list{gap:8px;margin-top:10px;display:grid}.budget-staff-row{background:#ffffffc7;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.budget-staff-row div{gap:3px;min-width:0;display:grid}.budget-staff-row strong{color:#0a1f44;overflow-wrap:anywhere;font-size:15px;font-weight:900}.budget-staff-row b{color:#0b5f73;white-space:nowrap;font-size:15px;font-weight:900}.budget-empty{justify-items:start;gap:10px;padding:18px;display:grid}.budget-empty p{color:#64748b;margin:0;font-size:14px;font-weight:700;line-height:1.6}.home-section--schedule,.home-section--shifts{background:linear-gradient(#ffffffe6,#f7faffc2)}.home-section--announcements{background:linear-gradient(#ffffffeb,#f6f9ffd1)}.home-section__header{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.home-section__header h1,.home-section__header h2{color:#0a1f44;margin:0;font-size:17px;font-weight:900;line-height:1.3}.home-section__header a,.home-section__header span{color:#176b87;flex:none;font-size:12px;font-weight:900}.home-list,.home-shift-list,.home-announcement-list{gap:9px;display:grid}.home-list-item,.home-shift-item,.home-announcement-item{color:#0a1f44;background:#ffffffd1;border:1px solid #a5b4fc29;border-radius:16px;min-width:0;padding:12px;transition:background .18s,transform .18s;display:grid}.home-list-item{background:linear-gradient(90deg,#eff6fff5,#ffffffd1);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}.home-list-item:hover,.home-list-item:focus-visible,.home-shift-item:hover,.home-shift-item:focus-visible,.home-announcement-item:hover,.home-announcement-item:focus-visible{background:#dbeafeeb;outline:none;transform:translateY(-1px)}.home-list-item__label,.home-announcement-item span{color:#176b87;background:#dbeafebd;border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:0 9px;font-size:11px;font-weight:900;display:inline-flex}.home-list-item strong,.home-shift-item strong,.home-announcement-item strong{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:900;line-height:1.45;overflow:hidden}.home-list-item time,.home-shift-item span,.home-announcement-item time{color:#5f6b82;white-space:nowrap;font-size:12px;font-weight:800}.home-list-item time{grid-column:2}.home-shift-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,142px),1fr))}.home-shift-item{background:linear-gradient(#ffffffe0,#eff6ffc7);gap:4px}.home-task-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.home-metric-card{color:#0a1f44;text-align:center;background:linear-gradient(#fffffff5,#f1f7ffdb);align-content:center;justify-items:center;gap:5px;min-height:92px;padding:12px 8px;transition:background .18s,transform .18s;display:grid}.home-metric-card:hover,.home-metric-card:focus-visible{background:#fffffff5;outline:none;transform:translateY(-1px)}.home-metric-card span{color:#5f6b82;font-size:11px;font-weight:900}.home-metric-card strong{color:#0a1f44;font-size:30px;font-weight:900;line-height:1}.home-metric-card small{color:#176b87;font-size:11px;font-weight:900}.home-metric-card.is-alert strong,.home-metric-card.is-alert small{color:#9f3e30}.home-announcement-item{background:#ffffffd6;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.home-empty{color:#697180;background:#eef2ff99;border-radius:14px;margin:0;padding:14px;font-size:13px;font-weight:800;line-height:1.6}.ghost-button,.primary-button,.danger-button{cursor:pointer;text-overflow:ellipsis;border:0;border-radius:8px;min-width:0;max-width:100%;min-height:42px;padding:0 14px;font-weight:800;overflow:hidden}.compact-button{min-height:36px;padding:0 10px}.button-row,.staff-action-row,.shift-builder-actions,.substitution-share-actions,.schedule-manage-fabs{min-width:0}.button-row>*,.staff-action-row>*,.shift-builder-actions>*,.substitution-share-actions>*,.schedule-manage-fabs>*{min-width:0;max-width:100%}.ghost-link{text-overflow:ellipsis;min-width:0;max-width:100%;overflow:hidden}.compact-select{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--foreground);border-radius:8px;padding:0 10px;font-size:16px;font-weight:700}.compact-input{border:1px solid var(--border);background:var(--surface);width:100%;min-width:0;min-height:36px;color:var(--foreground);border-radius:8px;padding:0 10px;font-size:16px;font-weight:700}.ghost-button{border:1px solid var(--border);background:var(--surface);color:var(--brand-strong)}.primary-button{background:var(--brand);color:#fff}.primary-button:disabled{cursor:not-allowed;opacity:.55}form[data-submit-pending=true]{cursor:progress}form[data-submit-pending=true] button[type=submit]{position:relative}form[data-submit-pending=true] button[type=submit]:after{content:"";border:2px solid;border-top-color:#0000;border-radius:999px;width:.85em;height:.85em;margin-left:.55em;animation:.7s linear infinite submit-spin}@keyframes submit-spin{to{transform:rotate(360deg)}}.danger-button{color:#9f3e30;background:#fff3f0;border:1px solid #c0574659;min-height:36px}.danger-button--strong{color:#fff;background:#9f3e30;border-color:#9f3e3070}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.login-page{min-height:100dvh;padding:calc(54px + var(--safe-top)) var(--auth-side-padding) calc(28px + var(--safe-bottom));background:#fff;display:grid}.login-panel{width:min(100%,338px);min-height:calc(100dvh - 82px - var(--safe-top) - var(--safe-bottom));align-content:start;margin:0 auto;display:grid}.login-logo{width:184px;height:auto;margin:18px auto 34px}.login-form{gap:16px;display:grid}.login-field{color:#081f49;gap:8px;min-width:0;font-size:16px;font-weight:400;display:grid}.login-field input,.login-field select,.login-field textarea{width:100%;inline-size:100%;max-width:100%;max-inline-size:100%;color:#071526;background:#eef2ff;border:1px solid #a8b0c5;border-radius:999px;outline:none;min-width:0;min-height:48px;padding:0 20px;font-size:16px;font-weight:400}.login-field textarea{resize:vertical;border-radius:18px;min-height:92px;padding-block:14px;line-height:1.55}.login-field input:focus,.login-field select:focus,.login-field textarea:focus{border-color:#3d73ff;box-shadow:0 0 0 4px #3d73ff29}.password-input-wrap{display:block;position:relative}.password-input-wrap input{padding-right:78px}.password-toggle-button{color:#1d4ed8;cursor:pointer;background:#fff;border:0;border-radius:999px;place-items:center;width:38px;min-height:34px;display:inline-grid;position:absolute;top:50%;right:9px;transform:translateY(-50%);box-shadow:inset 0 0 0 1px #a8b0c5c2}.password-toggle-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9px;width:20px;height:20px}.password-toggle-button:focus-visible{outline-offset:2px;outline:3px solid #3d73ff3d}.password-policy-box{color:#0a1f44;background:#eff6ffb8;border:1px solid #a5b4fc52;border-radius:14px;gap:4px;padding:12px 14px;font-size:13px;line-height:1.55;display:grid}.password-policy-box strong{font-size:13px;font-weight:900}.password-policy-box span{color:#4b5563;font-weight:700}.login-check{color:#111827;align-items:center;gap:10px;width:fit-content;margin:0 0 14px 16px;font-size:16px;font-weight:600;display:inline-flex}.login-check input{appearance:none;cursor:pointer;background:#eef2ff;border:1px solid #a8b0c5;border-radius:6px;flex:0 0 24px;place-items:center;width:24px;height:24px;margin:0;display:grid}.login-check input:before{content:"";opacity:0;border-bottom:3px solid #fff;border-left:3px solid #fff;width:12px;height:7px;transition:opacity .12s,transform .12s;transform:translateY(-1px)rotate(-45deg)scale(.8)}.login-check input:checked{background:linear-gradient(135deg,#5f91ff 0%,#1f5af2 100%);border-color:#3478ff;box-shadow:0 4px 12px #2f69ff3d}.login-check input:checked:before{opacity:1;transform:translateY(-1px)rotate(-45deg)scale(1)}.login-check input:focus-visible{outline-offset:2px;outline:3px solid #3d73ff3d}.terms-check{align-items:flex-start;margin-top:2px;margin-bottom:8px;line-height:1.5}.terms-check a{color:#1d4ed8;text-underline-offset:3px;font-weight:800;text-decoration:underline}.login-button{color:#fff;cursor:pointer;background:linear-gradient(100deg,#4d88ff 0%,#2f69ff 48%,#154bd6 100%);border:0;border-radius:22px;justify-content:center;justify-self:center;align-items:center;width:min(258px,100%);min-height:56px;font-size:16px;font-weight:800;display:inline-flex;box-shadow:0 10px 22px #3067ff2e}.login-button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.login-reset-link{color:#4b84ff;justify-self:center;margin-top:62px;font-size:16px;font-weight:800}.login-register-link{color:#1d4ed8;justify-self:center;margin-top:18px;font-size:16px;font-weight:800}.login-footer{color:#111;text-align:center;place-self:end center;gap:12px;margin:72px 0 0;font-size:.85rem;font-weight:600;display:grid}.login-footer p{margin:0}.maintenance-note{color:#536173;max-width:330px;font-size:13px;line-height:1.55}.login-message{margin:0 auto}.login-page:has(.login-maintenance-inline){padding-top:calc(38px + var(--safe-top))}.login-panel:has(.login-maintenance-inline){min-height:calc(100dvh - 66px - var(--safe-top) - var(--safe-bottom))}.login-panel:has(.login-maintenance-inline) .login-logo{width:168px;margin-top:8px;margin-bottom:24px}.login-panel:has(.login-maintenance-inline) .login-reset-link{margin-top:36px}.login-panel:has(.login-maintenance-inline) .login-footer{margin-top:40px}.login-maintenance-inline{color:#081f49;text-align:center;background:#eef2ff;border:1px solid #3d73ff2e;border-radius:14px;margin:0;padding:12px 14px;font-size:14px;font-weight:800;line-height:1.55}.auth-compact-page{padding-top:42px}.auth-compact-panel{min-height:calc(100dvh - 70px - var(--safe-top) - var(--safe-bottom))}.auth-logo-compact{width:156px;margin:4px auto 22px}.auth-heading{text-align:center;gap:8px;margin-bottom:24px;display:grid}.auth-heading h1{color:#071526;letter-spacing:0;margin:0;font-size:1.45rem}.auth-heading p{color:#5f6b82;margin:0;font-size:16px;line-height:1.55}.auth-link-tight{margin-top:34px}.auth-code-form{margin-top:24px}.auth-page{min-height:calc(100dvh - var(--app-header-height) - var(--safe-top));padding:28px var(--page-side-padding) calc(96px + var(--safe-bottom));place-items:start center;display:grid}.terms-page{place-items:start center;display:grid}body.auth-route .terms-page{min-height:100dvh;padding:calc(24px + var(--safe-top)) var(--page-side-padding) calc(36px + var(--safe-bottom));background:#fff}.terms-panel{width:min(100%,760px);box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #7a91d23d;border-radius:8px;gap:20px;padding:22px;display:grid}body.auth-route .terms-panel{box-shadow:none;border:0}.terms-heading{gap:8px;display:grid}.terms-heading h1{color:#0a1f44;letter-spacing:0;margin:0;font-size:1.6rem}.terms-heading p,.terms-content p,.terms-content li,.terms-footer p{color:#334155;margin:0;font-size:.94rem;line-height:1.8}.terms-content{gap:18px;display:grid}.terms-content section{gap:8px;display:grid}.terms-content h2{color:#0a1f44;letter-spacing:0;margin:0;font-size:1rem}.terms-content ol{gap:6px;margin:0;padding-left:1.3rem;display:grid}.terms-footer{border-top:1px solid #e3e8f5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;display:flex}.auth-panel,.form-card,.table-panel{background:linear-gradient(180deg, #fffffff5, #f8fbffe6), var(--surface);border:1px solid #ffffffb8;border-radius:16px;width:min(100%,480px);padding:20px;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff14}.wide-panel{width:min(100%,760px)}.form-stack{gap:14px;display:grid}.field{min-width:0;color:var(--muted);gap:7px;font-size:.86rem;font-weight:800;display:grid}.field input,.field textarea,.field select{width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--foreground);text-overflow:ellipsis;background:#fff;border:1px solid #a5b4fc52;border-radius:12px;padding:0 12px;font-size:16px;font-weight:600;overflow:hidden}.field input[type=date],.field input[type=datetime-local],.field input[type=month],.field input[type=time],.login-field input[type=date],.login-field input[type=datetime-local],.login-field input[type=month],.login-field input[type=time],.task-filter-bar input[type=date],.schedule-dayoff-form input[type=month]{box-sizing:border-box;width:100%;inline-size:100%;min-width:0;min-inline-size:0;max-width:100%;appearance:none;max-inline-size:100%;display:block}.field input[type=date],.field input[type=datetime-local],.field input[type=month],.field input[type=time],.field input[type=file],.login-field input[type=date],.login-field input[type=month],.task-filter-bar input[type=date]{inline-size:100%;min-inline-size:0;max-inline-size:100%;display:block}.field input[type=date],.field input[type=datetime-local],.field input[type=month],.field input[type=time]{padding-left:10px;padding-right:8px}.field input::-webkit-date-and-time-value{text-align:left;width:100%;min-width:0;min-height:1.2em;margin:0;padding:0;display:block}.login-field input::-webkit-date-and-time-value{text-align:left;width:100%;min-width:0;min-height:1.2em;margin:0;padding:0;display:block}.task-filter-bar input::-webkit-date-and-time-value{text-align:left;width:100%;min-width:0;min-height:1.2em;margin:0;padding:0;display:block}.schedule-dayoff-form input::-webkit-date-and-time-value{text-align:left;width:100%;min-width:0;min-height:1.2em;margin:0;padding:0;display:block}.field input::-webkit-calendar-picker-indicator{flex-shrink:0;margin-left:2px;padding:0}.login-field input::-webkit-calendar-picker-indicator{flex-shrink:0;margin-left:2px;padding:0}.task-filter-bar input::-webkit-calendar-picker-indicator{flex-shrink:0;margin-left:2px;padding:0}.schedule-dayoff-form input::-webkit-calendar-picker-indicator{flex-shrink:0;margin-left:2px;padding:0}.field textarea{min-height:152px;text-overflow:initial;white-space:pre-wrap;padding-top:12px;padding-bottom:12px;font-family:Noto Sans JP,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.6;overflow:hidden}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand);outline:3px solid #176b872e}.form-message{right:max(16px, calc((100vw - var(--app-page-desktop-width)) / 2 + 16px), var(--safe-right));bottom:calc(var(--app-bottom-nav-visible-height) + var(--safe-bottom) + 18px);left:max(16px, calc((100vw - var(--app-page-desktop-width)) / 2 + 16px), var(--safe-left));z-index:calc(var(--z-modal) + 20);color:#0a1f44;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-tap-highlight-color:transparent;background:#fffffff5;border:1px solid #60a5fa38;border-radius:999px;align-items:center;width:auto;max-width:520px;min-height:48px;margin:0 auto;padding:12px 18px;font-size:14px;font-weight:900;line-height:1.45;transition:opacity .22s,transform .22s,visibility .22s;animation:.26s cubic-bezier(.2,.8,.2,1) both snackbar-enter;display:flex;position:fixed;box-shadow:inset 1px 1px #ffffffdb,0 16px 34px #0a1f442e}.form-message.is-hiding{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px)scale(.98)}.pwa-install-overlay{z-index:calc(var(--z-modal) + 30);padding:calc(var(--safe-top) + 20px) 20px calc(var(--safe-bottom) + 20px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a1f4452;place-items:center;animation:.22s both pwa-install-overlay-in;display:grid;position:fixed;inset:0}.pwa-install-dialog{color:#0a1f44;text-align:center;background:#fffffff5;border:1px solid #ffffffc7;border-radius:22px;justify-items:center;gap:18px;width:min(100%,360px);padding:28px 22px 22px;animation:.36s cubic-bezier(.16,1,.3,1) both pwa-install-dialog-in;display:grid;box-shadow:inset 1px 1px #ffffffe6,0 22px 48px #0a1f4433}.pwa-install-dialog__logo{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;width:min(210px,68vw);height:auto}.pwa-install-dialog__body{gap:8px;display:grid}.pwa-install-dialog h2,.pwa-install-dialog p{margin:0}.pwa-install-dialog h2{font-size:1.18rem;font-weight:900;line-height:1.45}.pwa-install-dialog p{color:var(--muted);font-size:.92rem;font-weight:800;line-height:1.75}.pwa-install-dialog .primary-button{width:100%}body.auth-route .form-message{bottom:calc(var(--safe-bottom) + 86px)}body:has(.login-page) .form-message{bottom:calc(var(--safe-bottom) + 86px)}body:has(.substitution-page) .form-message{bottom:calc(var(--safe-bottom) + 86px)}@keyframes pwa-install-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes pwa-install-dialog-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}:is(body:has(.task-create-fab) .form-message,body:has(.task-update-fab) .form-message,body:has(.fab-button) .form-message,body:has(.schedule-fab-modal) .form-message){bottom:calc(var(--app-bottom-nav-visible-height) + var(--safe-bottom) + 96px)}@keyframes snackbar-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.reset-link-box{color:var(--success);background:#effaf4;border:1px solid #2f7d5942;border-radius:8px;padding:14px;font-weight:800;display:block}.management-layout{align-items:start;gap:16px;display:grid}.staff-management-page{gap:16px}.staff-management-page .page-heading{margin-bottom:0}.staff-management-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.staff-summary-card{background:linear-gradient(#fffffff0,#f5f8ffdb),#fff;border:1px solid #ffffffb8;border-radius:18px;gap:4px;min-width:0;padding:14px 12px;display:grid;box-shadow:inset 1px 1px #ffffffe0,0 10px 22px #4b7dff1a}.staff-summary-card span{color:#5e6a7f;font-size:11px;font-weight:900}.staff-summary-card strong{color:#0a1f44;font-size:26px;font-weight:950;line-height:1}.staff-management-layout{gap:14px;width:100%;display:grid}.staff-table-panel{background:linear-gradient(#fffffff5,#f8fbffe6),#fff;border:1px solid #ffffffb8;border-radius:22px;width:100%;padding:14px;overflow:hidden;box-shadow:inset 1px 1px #ffffffe6,0 12px 28px #4b7dff1f}.staff-table-panel .home-card__header{margin-bottom:12px}.staff-table-panel .table-scroll{margin:0 -4px;padding:0 4px 2px}.staff-data-table{border-collapse:separate;border-spacing:0 8px;width:100%;min-width:800px}.staff-data-table td:first-child{font-weight:900}.staff-data-table td:nth-child(2){overflow-wrap:anywhere;max-width:220px}.staff-action-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.staff-data-table th{color:#6b7280;white-space:nowrap;background:0 0;border:0;padding:0 12px 6px;font-size:12px;font-weight:900}.staff-data-table td{vertical-align:middle;background:#ffffffb8;border-top:1px solid #a5b4fc29;border-bottom:1px solid #a5b4fc29;padding:12px}.staff-data-table td:first-child{border-left:1px solid #a5b4fc29;border-radius:14px 0 0 14px}.staff-data-table td:last-child{border-right:1px solid #a5b4fc29;border-radius:0 14px 14px 0}.staff-ledger-person{align-items:center;gap:10px;min-width:180px;display:flex}.staff-ledger-avatar{object-fit:cover;border-radius:999px;flex:none;width:40px;height:40px;box-shadow:0 4px 12px #0a1f441a}.staff-ledger-person strong{color:#0a1f44;overflow-wrap:anywhere;min-width:0;font-weight:900}.staff-rate-chip{color:#0a1f44;white-space:nowrap;background:#dbeafec7;border-radius:999px;place-items:center;min-width:104px;padding:8px 10px;font-size:12px;font-weight:900;display:inline-grid}.staff-note-form{gap:8px;min-width:220px;display:grid}.staff-note-form textarea{color:#0a1f44;width:100%;min-width:0;font:inherit;resize:vertical;background:#ffffffe0;border:1px solid #a5b4fc4d;border-radius:14px;padding:9px 10px;font-size:13px;font-weight:700;line-height:1.5}.status-pill,.staff-role-chip{min-height:30px;color:var(--brand-strong);white-space:nowrap;background:#eff6ffdb;border-radius:999px;justify-content:center;align-items:center;padding:4px 10px;font-size:.78rem;font-weight:900;display:inline-flex}.staff-wage-form{min-width:148px}.status-pill--disabled,.status-pill--rejected{color:#9f3e30;background:#fff3f0}.status-pill--approved{color:var(--success);background:#effaf4}.empty-table-cell{color:var(--muted);text-align:center;font-weight:800}.single-management{grid-template-columns:minmax(0,480px)}.form-card h2,.table-panel h2{margin:0 0 14px;font-size:1rem}.table-panel{width:100%}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:680px;font-size:.9rem}.data-table th,.data-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #a5b4fc38;padding:12px 10px}.data-table th{color:var(--muted);background:#eff6ff9e;font-size:.78rem;font-weight:900}.data-table tbody tr:hover{background:#eff6ff75}.muted-text{color:var(--muted)}.location-box{color:var(--warning);background:#fff9eb;border:1px solid #9b6a133d;border-radius:8px;padding:10px 12px;font-size:.86rem;font-weight:800}.location-box p{margin:0}.section-gap{margin-top:16px}.settings-stack{gap:16px;display:grid}.roster-page{align-content:start;gap:14px;display:grid}.roster-hero,.roster-tools,.roster-browser,.roster-card{background:linear-gradient(#fffffff0,#f6f9ffd6),#fff;border:1px solid #ffffffb8;box-shadow:inset 1px 1px #ffffffdb,0 12px 26px #4b7dff1a}.roster-hero{border-radius:24px;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.roster-hero h1{color:#0a1f44;letter-spacing:0;margin:0;font-size:22px;font-weight:900;line-height:1.2}.roster-hero>span{color:#0a1f44;background:#dbeafedb;border-radius:999px;place-items:center;min-width:54px;height:34px;font-size:13px;font-weight:900;display:grid}.roster-tools{border-radius:24px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px;display:grid}.roster-modal-trigger{color:#0a1f44;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffffd1;border:1px solid #ffffffbd;border-radius:999px;place-items:center;width:100%;min-height:44px;font-size:14px;font-weight:900;display:grid;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff14}.roster-modal-trigger:hover,.roster-modal-trigger:focus-visible{background:#dbeafed1;outline:none}.roster-modal-form{width:100%;box-shadow:none;background:0 0;border:0;padding:0}.roster-entry-panel{gap:10px;min-width:0;display:grid}.roster-entry-panel>summary,.roster-edit-panel>summary{color:#0a1f44;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffffd1;border:1px solid #ffffffbd;border-radius:999px;place-items:center;min-height:44px;font-size:14px;font-weight:900;list-style:none;display:grid;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff14}.roster-entry-panel>summary::-webkit-details-marker{display:none}.roster-edit-panel>summary::-webkit-details-marker{display:none}.roster-entry-panel[open]>summary,.roster-edit-panel[open]>summary{background:#dbeafed1}.roster-entry-panel .form-card{width:100%;margin-top:10px}.roster-tools .roster-entry-panel[open]{grid-column:1/-1}.roster-browser{border-radius:24px;gap:12px;padding:12px;display:grid}.roster-tabs{background:#e0e7ffc2;border-radius:20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px;display:grid;position:relative}.roster-tab{color:#0a1f44;border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:46px;font-size:15px;font-weight:900;transition:background .18s,transform .18s,box-shadow .18s;display:inline-flex}.roster-tab[data-active=true]{background:#fffffff0;box-shadow:inset 1px 1px #ffffffdb,0 8px 18px #4b7dff1a}.roster-tab span{color:#176b87;background:#dbeafedb;border-radius:999px;place-items:center;min-width:28px;height:24px;font-size:12px;display:grid}.roster-search{grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:8px;display:grid}.roster-card-panel{gap:12px;display:grid}.roster-card-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:10px;display:grid}.roster-card{border-radius:20px;align-content:start;gap:12px;min-width:0;padding:14px;display:grid}.roster-card__main{min-width:0;display:block}.roster-card h3{overflow-wrap:anywhere;color:#0a1f44;min-width:0;margin:0;font-size:17px;font-weight:900;line-height:1.35}.roster-card p{color:#5f6b82;margin:2px 0 0;font-size:13px;font-weight:800}.roster-card__meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0;display:grid}.roster-card__meta div{background:#eef2ffb8;border-radius:14px;min-width:0;padding:8px}.roster-card dt,.roster-card dd{overflow-wrap:anywhere;min-width:0;margin:0;line-height:1.45}.roster-card dt{color:#64748b;font-size:11px;font-weight:900}.roster-card dd{color:#0a1f44;font-size:13px;font-weight:900}.roster-edit-panel{min-width:0;display:grid}.roster-edit-panel>summary{width:fit-content;min-height:36px;padding:0 16px;font-size:13px}.roster-edit-form{background:#eef2ff9e;border-radius:18px;gap:10px;margin-top:10px;padding:12px;display:grid}.roster-delete-form{justify-items:end;display:grid}.roster-delete-button{color:#b91c1c;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fef2f2e0;border:1px solid #f871713d;border-radius:999px;place-items:center;min-height:34px;padding:0 14px;font-size:13px;font-weight:900;line-height:1;display:inline-grid;box-shadow:inset 1px 1px #fffc}.roster-delete-button:active{transform:translateY(1px)}.substitution-login-page{padding-top:calc(54px + var(--safe-top))}.substitution-login-panel{align-content:start}.substitution-page{min-height:100dvh;padding:calc(72px + var(--safe-top)) max(12px, var(--safe-right)) calc(28px + var(--safe-bottom)) max(12px, var(--safe-left));background:#fff;display:grid;overflow-x:hidden}.substitution-panel{align-content:start;width:min(100%,386px);min-width:0;max-width:100%;margin:0 auto;display:grid}.substitution-title{color:#081f49;letter-spacing:0;text-align:center;margin:0 0 34px;font-size:1.5rem;font-weight:900}.substitution-warning{color:#081f49;text-align:center;gap:8px;margin-top:64px;font-size:12px;font-weight:800;line-height:1.35;display:grid}.substitution-warning p{white-space:nowrap;margin:0}.substitution-closed-notice{color:#081f49;text-align:center;background:#eef2ff;border:1px solid #3d73ff29;border-radius:14px;margin:-20px 0 18px;padding:11px 14px;font-size:13px;font-weight:800;line-height:1.55}.substitution-form{gap:20px;width:100%;min-width:0;max-width:100%;display:grid}.substitution-date-grid{gap:14px;width:100%;min-width:0;max-width:100%;display:grid}.substitution-date-grid .login-field{width:100%;max-width:100%}.substitution-date-field{align-content:start;position:relative}.substitution-date-grid select,.native-quarter-time-input{width:100%;appearance:none;min-inline-size:0;max-inline-size:100%}.substitution-display-input{color:#071526;text-align:center;background:#eef2ff;border:1px solid #a8b0c5;border-radius:999px;justify-content:center;align-items:center;width:100%;min-width:0;min-height:48px;padding:0 16px;font-size:16px;font-weight:400;line-height:1.2;display:flex}.substitution-display-input[data-empty=true]{color:#7d879b}.substitution-native-date{opacity:0;pointer-events:auto;border:0;width:100%;height:48px;position:absolute;bottom:0;left:0;right:0}.substitution-date-hint{color:#5f6b82;text-align:center;width:100%;min-height:20px;font-size:13px;font-weight:800;line-height:1.35;display:none}.substitution-subject-field{border:0;gap:9px;min-width:0;margin:0;padding:0;display:grid}.substitution-subject-field>span{color:#081f49;font-size:1rem;font-weight:900}.substitution-subject-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.substitution-subject-option{color:#081f49;cursor:pointer;-webkit-user-select:none;user-select:none;background:#eef2ff;border:1px solid #c8d4ff;border-radius:999px;justify-content:center;align-items:center;min-width:0;min-height:42px;font-size:14px;font-weight:900;display:inline-flex}.substitution-subject-option input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.substitution-subject-option:has(input:checked){color:#fff;background:linear-gradient(135deg,#4b7dff,#1356db);border-color:#4b7dff;box-shadow:0 8px 16px #4b7dff33}.lesson-stack{gap:14px;width:100%;min-width:0;max-width:100%;margin-top:10px;display:grid}@media (min-width:460px){.substitution-date-grid{grid-template-columns:minmax(0,1fr) 132px}}.substitution-lesson{width:100%;min-width:0;max-width:100%;background:#fff;border:1.5px dashed #c6ccd8;border-radius:20px;gap:16px;min-inline-size:0;margin:0;padding:18px 20px 20px;display:grid}.substitution-lesson__header{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.substitution-lesson>legend{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.substitution-lesson h2,.substitution-lesson__label{color:#081f49;margin:0;font-size:1rem;font-weight:900}.substitution-lesson__actions{flex:0 auto;gap:10px;min-width:0;display:flex}.substitution-pill-button,.substitution-add-button{color:#111827;cursor:pointer;background:#d9d9d9;border:1px solid #c4c8d1;border-radius:999px;min-height:38px;padding:0 22px;font-size:14px;font-weight:800}.substitution-pill-button:disabled,.substitution-add-button:disabled{cursor:not-allowed;opacity:.55}.substitution-add-button{justify-self:center;width:min(258px,100%);margin-top:12px}.substitution-submit-button{margin-top:22px}.substitution-summary{gap:10px;display:grid}.substitution-summary p{border-bottom:1px solid #e5e7eb;gap:4px;margin:0;padding-bottom:10px;display:grid}.substitution-summary span{color:#536173;font-size:.8rem;font-weight:800}.substitution-summary strong{color:#081f49;font-size:1rem}.qr-image{justify-self:center;width:220px;height:220px}.substitution-share-page{align-content:start;display:grid}.substitution-share-card{background:linear-gradient(#fffffff5,#f8fbffeb),#fff;border:1px solid #ffffffb8;border-radius:18px;gap:14px;padding:16px;display:grid;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff1a}.substitution-share-qr{aspect-ratio:1;background:linear-gradient(#eff6ffe0,#dbeafe8f),#fff;border:1px solid #a5b4fc42;border-radius:22px;justify-self:center;place-items:center;width:min(100%,256px);padding:18px;display:grid;box-shadow:inset 1px 1px #ffffffeb,0 8px 18px #4b7dff14}.substitution-share-qr .qr-image{border-radius:12px;width:min(100%,220px);height:auto;display:block}.substitution-share-fields{gap:10px;display:grid}.substitution-share-field{color:#0a1f44;gap:7px;min-width:0;font-size:13px;font-weight:900;display:grid}.substitution-share-field input{color:#0a1f44;background:#ffffffdb;border:1px solid #a5b4fc52;border-radius:14px;width:100%;min-width:0;min-height:48px;padding:0 14px;font-size:16px;font-weight:800;box-shadow:inset 1px 1px #ffffffdb}.substitution-share-actions{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.substitution-share-primary,.substitution-share-secondary{-webkit-tap-highlight-color:transparent;border-radius:999px;justify-content:center;align-items:center;min-height:48px;padding:0 18px;font-size:15px;font-weight:900;display:inline-flex}.substitution-share-primary{color:#fff;background:linear-gradient(135deg,#4b7dff 0%,#1d4ed8 100%);border:0;box-shadow:0 10px 22px #4b7dff3d}.substitution-share-secondary{color:#0a1f44;background:#ffffffe0;border:1px solid #a5b4fc57;box-shadow:inset 1px 1px #ffffffdb,0 8px 18px #4b7dff14}.substitution-print-page{background:#eef2ff;flex-direction:column;width:100%;min-height:100dvh;display:flex}.substitution-print-toolbar{z-index:5;width:100%;padding:calc(var(--safe-top) + 10px) 14px 10px;background:#fffffff5;border-bottom:1px solid #a5b4fc42;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid;position:sticky;top:0;box-shadow:0 8px 18px #4b7dff1f}.substitution-print-back{color:#0a1f44;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #a5b4fc5c;border-radius:999px;justify-content:center;align-items:center;min-width:72px;min-height:40px;font-size:13px;font-weight:900;display:inline-flex}.substitution-print-heading{color:#0a1f44;gap:2px;min-width:0;display:grid}.substitution-print-toolbar span{color:#64748b;font-size:11px;font-weight:800;line-height:1.2}.substitution-print-toolbar strong{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:900;line-height:1.25;overflow:hidden}.substitution-print-actions{flex:none;gap:8px;display:flex}.substitution-print-button,.substitution-print-link{cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:999px;justify-content:center;align-items:center;min-height:40px;padding:0 14px;font-size:13px;font-weight:900;line-height:1;text-decoration:none;display:inline-flex}.substitution-print-button{color:#fff;background:linear-gradient(135deg,#4b7dff 0%,#1d4ed8 100%);border:0;box-shadow:0 10px 20px #4b7dff38}.substitution-print-button:disabled{cursor:wait;opacity:.68}.substitution-print-link{color:#0a1f44;background:#fff;border:1px solid #a5b4fc66}.substitution-print-ios-note{color:#0a1f44;text-align:center;background:#ffffffe0;border:1px solid #a5b4fc4d;border-radius:14px;width:min(100% - 24px,595px);margin:12px auto 0;padding:10px 14px;font-size:13px;font-weight:800;line-height:1.6;box-shadow:0 8px 18px #4b7dff1a}.substitution-print-preview{flex:auto;justify-content:center;padding:18px;display:flex;overflow:auto}.substitution-print-preview-image{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#fff;border-radius:2px;align-self:flex-start;width:min(100%,595px);height:auto;display:block;box-shadow:0 18px 40px #0f172a2e}.substitution-print-denied{color:#0a1f44;background:#fff;border-radius:16px;place-self:center;padding:18px;font-size:14px;font-weight:800;box-shadow:0 12px 24px #4b7dff24}@media (max-width:560px){.substitution-print-toolbar{grid-template-columns:auto minmax(0,1fr)}.substitution-print-actions{grid-column:1/-1;justify-content:stretch}.substitution-print-button,.substitution-print-link{flex:1 1 0;padding:0 10px}.substitution-print-preview{padding:12px}}.print-sheet{display:none}.text-button-link{justify-content:center;align-items:center;display:inline-flex}.menu-page{gap:18px;display:grid}.menu-panel{gap:16px;display:grid}.menu-status-panel{background:radial-gradient(circle at 12% 0,#dbeafeeb,#0000 38%),linear-gradient(135deg,#fffffff5,#eef5ffe0);border:1px solid #ffffffb8;border-radius:22px;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:12px;padding:12px;display:grid;box-shadow:inset 1px 1px #ffffffeb,0 10px 22px #4b7dff1a}.menu-status-panel__item{background:#ffffffa3;border-radius:18px;align-content:center;gap:3px;min-width:0;padding:12px 14px;display:grid}.menu-status-panel__item span,.menu-status-panel__item small{color:var(--muted);font-size:.72rem;font-weight:900}.menu-status-panel__item strong{color:#0a1f44;font-size:1.2rem;font-weight:900}.menu-status-panel__button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4b7dff,#1d4ed8);border:0;border-radius:18px;min-width:108px;font-size:.86rem;font-weight:900;transition:transform .18s,opacity .18s,box-shadow .18s;box-shadow:0 10px 22px #4b7dff38}.menu-status-panel__button:hover,.menu-status-panel__button:focus-visible{outline:none;transform:translateY(-1px);box-shadow:0 14px 28px #4b7dff47}.menu-status-panel__button:disabled{cursor:not-allowed;opacity:.56}.menu-group{gap:8px;display:grid}.menu-group h2{color:#0a1f44;background:#ffffffc2;border-radius:999px;width:fit-content;margin:0;padding:5px 11px;font-size:.78rem;font-weight:900;box-shadow:inset 1px 1px #ffffffdb}.menu-group__links{gap:10px;display:grid}.menu-page-link{color:#0a1f44;-webkit-tap-highlight-color:transparent;background:linear-gradient(#fffffffa,#f8fbffeb),#fff;border:1px solid #ffffffb3;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:0 18px;font-size:16px;font-weight:800;transition:box-shadow .22s,transform .26s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:inset 1px 1px #ffffffeb,0 8px 18px #4b7dff1a}.menu-page-link:focus-visible,.menu-page-link:hover{outline:none;transform:translateY(-1px);box-shadow:0 12px 24px #4b7dff2e}.menu-page-link span:last-child{color:#4b7dff;font-size:24px;line-height:1}.menu-logout-form{margin-top:4px;display:grid}.account-page,.admin-status-page,.admin-restrictions-page,.document-page{gap:16px;display:grid}.account-hero-card,.account-settings-card{background:linear-gradient(#fffffff5,#f6f9ffdb),#fff;border:1px solid #ffffffb8;justify-self:center;width:min(100%,720px);box-shadow:inset 1px 1px #ffffffdb,0 14px 30px #4b7dff1f}.account-hero-card{border-radius:26px;justify-content:space-between;align-items:center;gap:14px;padding:18px;display:flex}.account-settings-card{border-radius:24px;gap:14px;padding:16px;display:grid}.account-avatar-editor{align-items:center;gap:14px;min-width:0;display:flex}.account-avatar-button{color:#9aa3b2;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:linear-gradient(145deg,#f6f8fb 0%,#d9dee8 100%);border:5px solid #fff;border-radius:256px;flex:0 0 104px;place-items:center;width:104px;height:104px;display:grid;position:relative;overflow:hidden;box-shadow:inset 1px 1px #ffffffe6,0 12px 24px #4b7dff2e}.account-avatar-button img{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.account-avatar-button:active{transform:scale(.98)}.account-avatar-camera{background:#4b7dff;border:3px solid #fff;border-radius:999px;place-items:center;width:32px;height:32px;display:grid;position:absolute;bottom:3px;right:0;box-shadow:0 8px 16px #4b7dff42}.account-avatar-camera span{border:2px solid #fff;border-radius:4px;width:15px;height:11px;display:block;position:relative}.account-avatar-camera span:before{content:"";background:#fff;border-radius:3px 3px 0 0;width:7px;height:3px;position:absolute;top:-5px;left:2px}.account-avatar-camera span:after{content:"";border:2px solid #fff;border-radius:999px;width:3px;height:3px;position:absolute;top:2px;left:4px}.account-avatar-file{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.account-avatar-copy{gap:5px;min-width:0;display:grid}.account-avatar-copy strong{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:22px;font-weight:900;line-height:1.18;overflow:hidden}.account-avatar-copy span{color:#64748b;font-size:13px;font-weight:800}.account-profile-form{background:#eff6ff7a;border-radius:20px;padding:14px}.account-role-badge{background:#dbeafec2;border:1px solid #60a5fa2e;border-radius:18px;place-items:center;gap:4px;min-width:86px;padding:9px 12px;display:grid}.account-role-badge span{color:#64748b;font-size:11px;font-weight:800}.account-role-badge strong{color:#0a1f44;font-size:14px;font-weight:900}.account-avatar-modal{z-index:var(--z-modal);padding:var(--safe-top) 16px calc(16px + var(--safe-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a1f444d;place-items:end center;animation:.18s both modal-backdrop-in;display:grid;position:fixed;inset:0}.account-avatar-modal__panel{background:#fff;border:1px solid #ffffffc7;border-radius:28px;gap:18px;width:min(100%,430px);padding:16px;animation:.22s cubic-bezier(.2,.8,.2,1) both modal-layer-in;display:grid;box-shadow:0 24px 60px #0a1f4438}.account-avatar-modal__header{grid-template-columns:84px minmax(0,1fr) 84px;align-items:center;gap:8px;display:grid}.account-avatar-modal__header h2{color:#0a1f44;text-align:center;margin:0;font-size:16px;font-weight:900}.account-avatar-modal__header button{color:#0a1f44;cursor:pointer;background:#eff6ffd6;border:0;border-radius:999px;min-height:40px;font-size:13px;font-weight:900}.account-avatar-modal__header button:last-child{color:#fff;background:#4b7dff}.account-avatar-modal__header button:disabled{opacity:.48}.account-avatar-preview-shell{place-items:center;padding:12px 0;display:grid}.account-avatar-preview{background:#eef2ff;border:1px solid #a5b4fc5c;border-radius:256px;place-items:center;width:min(64vw,256px);height:min(64vw,256px);display:grid;overflow:hidden;box-shadow:inset 0 0 0 999px #ffffff0a,0 18px 34px #4b7dff24}.account-avatar-preview img{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;transition:transform .14s;display:block}.account-avatar-zoom{color:#0a1f44;gap:8px;font-size:13px;font-weight:900;display:grid}.account-avatar-zoom input{accent-color:#4b7dff;width:100%}.account-avatar-modal__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.account-avatar-modal__actions form,.account-avatar-modal__actions button{width:100%;min-width:0}.account-avatar-error{color:#b91c1c;background:#fef2f2;border-radius:14px;margin:0;padding:10px 12px;font-size:13px;font-weight:800}.summary-list{gap:10px;margin:0;display:grid}.summary-list div{background:#eff6ff9e;border-radius:12px;gap:4px;padding:12px;display:grid}.summary-list dt{color:var(--muted);font-size:.78rem;font-weight:900}.summary-list dd{color:#0a1f44;overflow-wrap:anywhere;margin:0;font-size:16px;font-weight:900}.status-card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.status-info-card{background:linear-gradient(#fffffffa,#f8fbffeb),#fff;border:1px solid #ffffffb8;border-radius:16px;gap:8px;padding:16px;display:grid;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff1a}.status-info-card span{color:var(--muted);font-size:.78rem;font-weight:900}.status-info-card strong{color:#0a1f44;font-size:1.35rem;font-weight:900}.status-info-card p{color:var(--muted);margin:0;font-size:.88rem;font-weight:700;line-height:1.7}.status-info-card[data-tone=ok]{border-color:#93c5fd66}.status-info-card[data-tone=warn]{border-color:#fbbf2470}.status-info-card[data-tone=danger]{border-color:#f871717a}.admin-tool-hero,.performance-hero,.performance-card,.admin-filter-bar,.notification-admin-card,.audit-card{background:linear-gradient(#fffffff0,#f8fbffe0),#fff;border:1px solid #ffffffb8;border-radius:22px;box-shadow:inset 1px 1px #ffffffe0,0 12px 28px #4b7dff1a}.admin-tool-hero,.performance-hero{justify-content:space-between;align-items:center;gap:12px;padding:18px;display:flex}.admin-tool-hero span,.performance-hero span,.performance-metric-card span{color:#4f83ff;font-size:12px;font-weight:900}.admin-tool-hero h1,.performance-hero h1{color:#0a1f44;margin:2px 0 0;font-size:24px;font-weight:950}.performance-page,.admin-audit-page,.admin-notification-page{gap:16px}.performance-metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.performance-metric-card{background:#ffffffd1;border:1px solid #ffffffb8;border-radius:20px;gap:6px;padding:16px;display:grid;box-shadow:0 10px 22px #4b7dff17}.performance-metric-card strong{color:#0a1f44;font-size:24px;font-weight:950}.performance-metric-card p,.performance-note{color:#5f6b82;margin:0;font-size:12px;font-weight:800;line-height:1.6}.performance-card{gap:12px;padding:16px;display:grid}.performance-card h2,.notification-admin-card h2{color:#0a1f44;margin:0;font-size:16px;font-weight:950}.performance-list,.notification-user-list,.notification-queue-list,.audit-list{gap:10px;display:grid}.performance-row,.notification-user-row,.notification-queue-row{background:#eff6ffbd;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.performance-row div,.notification-user-row div,.notification-queue-row div{gap:2px;min-width:0;display:grid}.performance-row strong,.notification-user-row strong,.notification-queue-row strong{color:#0a1f44;font-weight:900}.performance-row span,.notification-user-row span,.notification-queue-row span,.notification-queue-row p{color:#5f6b82;margin:0;font-size:12px;font-weight:800}.notification-queue-row .notification-daily-report-body{color:#334155;white-space:pre-wrap;font-size:13px;font-weight:600;line-height:1.7}.performance-row b,.notification-user-row b{color:#0a1f44;flex:none;font-weight:950}.admin-filter-bar{grid-template-columns:minmax(0,1.5fr) minmax(140px,.7fr) auto;align-items:end;gap:10px;padding:14px;display:grid}.audit-card{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;display:grid}.audit-card[data-severity=SECURITY]{border-color:#f871716b}.audit-card[data-severity=WARNING]{border-color:#fbbf246b}.audit-card__main{gap:4px;min-width:0;display:grid}.audit-card__main span{color:#0a1f44;background:#dbeafeb8;border-radius:999px;width:fit-content;padding:4px 8px;font-size:10px;font-weight:900}.audit-card__main strong{color:#0a1f44;font-size:15px;font-weight:950}.audit-card__main p,.audit-card time{color:#5f6b82;margin:0;font-size:12px;font-weight:800}.audit-card__details{grid-column:1/-1}.audit-card__details pre{color:#eef5ff;background:#0a1f44;border-radius:14px;max-height:220px;padding:12px;font-size:12px;overflow:auto}.notification-admin-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:14px;display:grid}.notification-admin-card{align-content:start;gap:12px;padding:16px;display:grid}.notification-admin-card--wide{grid-column:1/-1}.notification-queue-row{flex-direction:column;align-items:start}.notification-queue-row[data-status=FAILED]{background:#fef2f2d1;border:1px solid #f8717157}.document-card{color:#0a1f44;background:#fffffff0;border:1px solid #ffffffb8;border-radius:18px;gap:18px;padding:22px;display:grid;box-shadow:inset 1px 1px #ffffffe0,0 12px 28px #4b7dff1f}.public-document-page{background:#fff;min-height:100svh;padding:32px 18px}.public-document-page .document-card{border-color:#a5b4fc38;max-width:760px;margin:0 auto}.document-card h1,.document-card h2,.document-card p{margin:0}.document-card h1{font-size:clamp(1.45rem,4vw,2rem);font-weight:900}.document-card h2{font-size:1rem;font-weight:900}.document-card p{color:#263b62;font-size:.94rem;font-weight:700;line-height:1.9}.announcements-page,.announcements-manage-page{gap:16px;display:grid}.announcement-summary-card{background:#ffffffeb;border:1px solid #ffffffb8;border-radius:22px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;display:grid;box-shadow:inset 1px 1px #ffffffeb,0 10px 22px #4b7dff1a}.announcement-summary-card div{background:#eff6ffb3;border-radius:14px;place-items:center;gap:4px;min-width:0;padding:10px 6px;display:grid}.announcement-summary-card span,.announcement-card__meta,.announcement-admin-hero span,.announcement-admin-card__scope,.announcement-admin-card dt{color:var(--muted);font-size:.74rem;font-weight:900}.announcement-summary-card strong{color:#0a1f44;font-size:1.15rem;font-weight:900}.announcement-list,.announcement-admin-list{gap:12px;display:grid}.announcement-card{color:#0a1f44;-webkit-tap-highlight-color:transparent;background:linear-gradient(#fffffffa,#f8fbfff0),#fff;border:1px solid #ffffffb8;border-radius:22px;grid-template-columns:1fr;align-items:start;gap:10px;padding:16px;transition:box-shadow .22s,transform .26s cubic-bezier(.16,1,.3,1);display:grid;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff1a}.announcement-card:hover,.announcement-card:focus-visible{outline:none;transform:translateY(-1px);box-shadow:0 14px 28px #4b7dff29}.announcement-card__dot{background:#7a91d24d;border-radius:50%;width:9px;height:9px;margin-top:9px;display:none}.announcement-card__dot[data-unread=true]{background:#4b7dff;box-shadow:0 0 0 4px #4b7dff1f}.announcement-card__body{gap:9px;min-width:0;display:grid}.announcement-card__meta{flex-wrap:wrap;gap:7px;min-width:0;display:flex}.announcement-card__meta span,.announcement-card__meta time,.announcement-card__status,.announcement-admin-card__scope{white-space:nowrap;background:#eef5ff;border-radius:999px;align-items:center;max-width:100%;min-height:24px;padding:4px 8px;display:inline-flex}.announcement-card h2,.announcement-card p,.announcement-admin-card h2,.announcement-admin-card p{margin:0}.announcement-card h2{color:#0a1f44;overflow-wrap:anywhere;font-size:1.02rem;font-weight:900;line-height:1.45}.announcement-card p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.88rem;font-weight:700;line-height:1.65;display:-webkit-box;overflow:hidden}.announcement-card__status{color:#0a1f44;justify-self:start;width:fit-content;font-size:.72rem;font-weight:900}.announcement-admin-toolbar{background:#ffffffe0;border:1px solid #ffffffb8;border-radius:999px;justify-content:space-between;align-items:center;gap:12px;padding:8px;display:flex;box-shadow:inset 1px 1px #ffffffe6,0 10px 22px #4b7dff1a}.announcement-manage-current{gap:2px;min-width:0;padding:4px 12px;display:grid}.announcement-manage-current span{color:#4b7dff;font-size:.76rem;font-weight:900}.announcement-manage-current strong{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:900;line-height:1.25;overflow:hidden}.announcement-view-link{color:#0a1f44;-webkit-tap-highlight-color:transparent;border-radius:999px;justify-content:center;align-items:center;min-height:44px;font-size:.9rem;font-weight:900;text-decoration:none;transition:background .22s,box-shadow .22s,transform .22s;display:inline-flex}.announcement-view-link:hover,.announcement-view-link:focus-visible{outline:none;transform:translateY(-1px)}.announcement-view-link{background:#eef5ff;flex:none;padding:0 16px}.announcement-admin-form,.announcement-admin-card{min-width:0}.announcement-form-heading{gap:4px;display:grid}.announcement-form-heading span{color:#4b7dff;font-size:.78rem;font-weight:900}.announcement-form-heading strong{color:#0a1f44;font-size:1.15rem;font-weight:900}.announcement-admin-form{top:calc(var(--app-topbar-height) + 16px);background:#fffffff0;border-radius:24px;position:sticky}.announcement-admin-form input[type=file]{color:#0a1f44;background:#ffffffd1;border:1px solid #a5b4fc70;border-radius:16px;min-height:48px;padding:12px;font-size:.88rem;font-weight:800}.announcement-admin-grid{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);align-items:start;gap:14px;display:grid}.announcement-admin-card{background:#fffffff0;border:1px solid #ffffffb8;border-radius:18px;gap:12px;padding:16px;display:grid;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff1a}.announcement-admin-card h2{color:#0a1f44;margin-top:8px;font-size:1rem;font-weight:900}.announcement-admin-card p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.88rem;font-weight:700;line-height:1.65;display:-webkit-box;overflow:hidden}.announcement-admin-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.announcement-admin-card dl div{background:#eff6ff9e;border-radius:12px;padding:9px}.announcement-admin-card dd{color:#0a1f44;margin:3px 0 0;font-size:.84rem;font-weight:900}@media (max-width:760px){.announcement-admin-grid{grid-template-columns:1fr}.announcement-admin-toolbar{border-radius:22px;flex-direction:column;align-items:stretch}.announcement-admin-form{position:static}.announcement-card{padding:14px}.announcement-card__status{grid-column:auto}}@media (max-width:430px){.announcement-summary-card{gap:8px;padding:10px}.announcement-summary-card div{padding:8px 4px}.announcement-summary-card span{font-size:.68rem}.announcement-summary-card strong{font-size:.95rem}}.announcement-detail-page{gap:12px;display:grid}.announcement-back-button{color:#0a1f44;background:#ffffffeb;border-radius:999px;justify-content:center;align-items:center;width:fit-content;min-width:96px;min-height:40px;font-size:.9rem;font-weight:900;text-decoration:none;display:inline-flex;box-shadow:inset 1px 1px #ffffffeb,0 8px 18px #4b7dff1f}.announcement-detail-card{background:#fffffff0;border:1px solid #ffffffb8;border-radius:26px;gap:18px;padding:clamp(18px,4vw,28px);display:grid;box-shadow:inset 1px 1px #ffffffeb,0 12px 26px #4b7dff1f}.announcement-detail-meta{flex-wrap:wrap;gap:8px;display:flex}.announcement-detail-meta span,.announcement-detail-meta time{color:#50617f;background:#eef5ff;border-radius:999px;align-items:center;min-height:26px;padding:4px 10px;font-size:.76rem;font-weight:900;display:inline-flex}.announcement-detail-card h1{color:#0a1f44;overflow-wrap:anywhere;margin:0;font-size:clamp(1.35rem,3vw,1.9rem);font-weight:900;line-height:1.45}.announcement-detail-body{color:#263b62;white-space:pre-wrap;margin:0;font-size:.98rem;font-weight:700;line-height:1.9}.announcement-detail-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.announcement-detail-info div{background:#eff6ffb8;border-radius:16px;padding:12px}.announcement-detail-info dt{color:var(--muted);font-size:.74rem;font-weight:900}.announcement-detail-info dd{color:#0a1f44;margin:5px 0 0;font-size:.9rem;font-weight:900}.announcement-attachments{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:linear-gradient(#eff6ffc2,#ffffffd6);border-radius:22px;gap:12px;min-width:0;padding:14px;display:grid}.announcement-attachments__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.announcement-attachments__header span{color:#0a1f44;font-size:.98rem;font-weight:900}.announcement-attachments__header small{color:#31527f;background:#dbeafee6;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:900}.announcement-attachment-grid{gap:12px;min-width:0;display:grid}.announcement-attachment-card{background:#fffffff0;border:1px solid #a5b4fc47;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:12px;display:grid;overflow:hidden;box-shadow:inset 1px 1px #ffffffe6,0 10px 20px #4b7dff14}.announcement-attachment-card__meta{gap:3px;min-width:0;display:grid}.announcement-attachment-card__meta strong{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:900;overflow:hidden}.announcement-attachment-card__meta span{color:var(--muted);font-size:.72rem;font-weight:800}.announcement-attachment-open-button{color:#0a1f44;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;background:linear-gradient(#fff,#eef5ff);border-radius:999px;justify-content:center;align-items:center;min-width:86px;min-height:40px;font-size:.82rem;font-weight:900;text-decoration:none;transition:transform .18s,box-shadow .18s,filter .18s;display:inline-flex;box-shadow:inset 1px 1px #ffffffeb,0 8px 16px #4b7dff1f}.announcement-attachment-open-button:hover,.announcement-attachment-open-button:focus-visible{outline:none;transform:translateY(-1px);box-shadow:inset 1px 1px #ffffffeb,0 12px 22px #4b7dff29}.announcement-attachment-open-button:active{filter:brightness(.98);transform:scale(.97)}.announcement-attachment-page{background:#fff;width:100vw;min-height:100dvh;display:block;position:fixed;inset:0;overflow:hidden}.announcement-attachment-viewer-nav{top:calc(var(--safe-top) + 10px);left:max(10px, var(--safe-left));z-index:3;justify-content:flex-start;align-items:center;width:auto;padding:0;display:flex;position:fixed}.announcement-attachment-viewer-card{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#fff;width:100vw;height:100dvh;min-height:0;display:block}.announcement-attachment-viewer-card__header{min-width:0;padding:10px max(14px, env(safe-area-inset-left));background:#ffffffeb;border-bottom:1px solid #a5b4fc2e;gap:5px;display:grid}.announcement-attachment-viewer-card__header span{color:#31527f;background:#dbeafee6;border-radius:999px;width:fit-content;padding:5px 10px;font-size:.72rem;font-weight:900}.announcement-attachment-viewer-card__header h1{color:#0a1f44;overflow-wrap:anywhere;margin:0;font-size:clamp(1.2rem,3vw,1.6rem);font-weight:900;line-height:1.45}.announcement-attachment-viewer-card__header p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.82rem;font-weight:800;overflow:hidden}.announcement-attachment-page-preview{background-color:#fff;background-position:50%;background-repeat:no-repeat;background-size:contain;border:0;border-radius:0;width:100vw;min-height:0;display:block;overflow:hidden}.announcement-attachment-page-preview--image{pointer-events:none;height:100%}.announcement-attachment-page-preview--pdf{width:100vw;height:100dvh;display:block}@media (max-width:430px){.announcement-detail-info{grid-template-columns:1fr}.announcement-attachments{margin-left:-4px;margin-right:-4px;padding:12px}.announcement-attachment-card{grid-template-columns:minmax(0,1fr)}.announcement-attachment-open-button{width:100%}}@media (max-width:520px){.menu-status-panel{grid-template-columns:minmax(0,1fr)}.menu-status-panel__button{width:100%;min-height:44px}}@media print{@page{size:A4;margin:0}html,body{background:#fff;width:210mm;min-width:210mm;max-width:210mm;height:297mm;min-height:297mm;max-height:297mm;margin:0;overflow:hidden}.topbar,.side-nav-shell,.bottom-nav,.bottom-nav-shell,.no-print{display:none!important}.shell,.page{width:210mm;height:297mm;min-height:297mm;padding:0;display:block;overflow:hidden}.substitution-print-page,.substitution-print-preview{background:#fff;width:210mm;height:297mm;min-height:297mm;padding:0;display:block;overflow:hidden}.substitution-print-preview-image{width:210mm;height:297mm;box-shadow:none;border-radius:0;display:block}.page-heading{display:none}.print-sheet{box-sizing:border-box;color:#222;page-break-after:avoid;page-break-before:avoid;page-break-inside:avoid;text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact;align-content:start;justify-items:center;gap:8.47mm;width:210mm;height:297mm;min-height:297mm;max-height:297mm;padding:8.47mm 11.29mm;font-family:Noto Sans JP,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:grid;overflow:hidden}.print-sheet *{box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-sheet__header{border-bottom:0;justify-content:flex-start;align-items:center;gap:0;width:100%;padding-bottom:0;display:flex}.print-sheet__logo{object-fit:contain;object-position:left center;width:auto;max-width:55.37mm;height:11.29mm;display:block}.print-sheet__title{color:#222;letter-spacing:1.92px;text-align:center;width:100%;margin:0;font-size:24px;font-weight:900;line-height:1.25}.print-sheet__main{box-sizing:border-box;page-break-inside:avoid;background:#b3c0fd29;border:.5px solid #69a9f952;border-radius:5.64mm;flex-direction:column;align-items:center;gap:2.82mm;width:100%;padding:11.29mm 5.64mm;display:flex;box-shadow:0 0 16px #22222229}.print-sheet__qr-block{flex-direction:column;align-items:center;gap:1.41mm;display:flex}.print-sheet__qr-wrap{background:#fff;border-radius:5.64mm;place-items:center;width:62.12mm;height:62.12mm;padding:2.82mm;display:grid;box-shadow:0 0 16px #00000040}.print-qr-image{background:#fff;border:0;width:56.47mm;height:56.47mm;padding:0}.print-sheet__scan-label{color:#222;justify-content:center;align-items:center;gap:.71mm;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.print-sheet__scan-label img{width:8.47mm;height:8.47mm}.print-sheet__password{background:#fff;border:.5px solid #54545452;border-radius:2.82mm;flex-direction:column;align-items:stretch;gap:1.41mm;width:90.32mm;margin:0;padding:1.41mm;display:flex}.print-sheet__password div{border-bottom:.5px solid #54545452;align-items:center;gap:2.82mm;padding:.71mm 0;display:flex}.print-sheet__password dt{color:#222;white-space:nowrap;font-size:11px;font-weight:700}.print-sheet__password dd{color:#222;text-align:center;word-break:break-all;flex:auto;min-width:0;margin:0;font-size:14px;font-weight:900;line-height:1.2}.print-sheet__password small{color:#222;text-align:center;font-size:8px;font-weight:500;line-height:1.2}.print-sheet__rules{text-align:left;flex-direction:column;align-items:center;gap:5.64mm;width:100%;display:flex}.print-sheet__rules h2{color:#222;align-items:center;gap:2.82mm;width:100%;margin:0;font-size:14px;font-weight:700;line-height:1.2;display:flex}.print-sheet__rules h2 span{background:#69a9f9;border-radius:999px;width:2.12mm;height:16.9px}.print-rule-card{page-break-inside:avoid;background:#fff;border:.5px solid #545454;border-radius:5.64mm;align-items:start;width:100%;padding:1.41mm 11.29mm;display:block;box-shadow:0 0 8px #00000029}.print-rule-card__icon{border-radius:2.47mm;flex:none;place-items:center;width:8.47mm;height:8.47mm;display:grid;overflow:hidden}.print-rule-card--danger .print-rule-card__icon{background:#ff454533}.print-rule-card--location .print-rule-card__icon{background:#69a9f933}.print-rule-card--security .print-rule-card__icon{background:#222}.print-rule-card__icon img{max-width:6.77mm;max-height:6.77mm}.print-rule-card__body{flex-direction:column;gap:1.41mm;min-width:0;display:flex}.print-rule-card__heading{align-items:center;gap:2.82mm;min-width:0;display:flex}.print-rule-card strong{color:#222;min-width:0;font-size:11px;font-weight:700;line-height:1.25}.print-rule-card b{color:#222;font-size:11px;font-weight:700;line-height:1.25}.print-rule-card--danger b{color:#ff4545}.print-rule-card--location b{color:#69a9f9}.print-rule-card span{color:#545454;font-size:8px;font-weight:500;line-height:1.35}.print-sheet__footer-note{color:#666;text-align:center;justify-content:center;align-items:center;gap:2.82mm;width:100%;margin-top:auto;font-size:8px;font-weight:700;line-height:1.4;display:flex}.print-sheet__footer-note img{width:5.64mm;height:5.64mm}.print-sheet__copyright{color:#666;margin:0;font-size:8px;font-weight:500;line-height:1.2}.print-sheet__hidden-data{display:none}}.split-tables{gap:16px;margin-top:16px;display:grid}.task-list{gap:16px;margin-top:18px;display:grid}.task-index-actions{grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;gap:10px;width:100%;margin-top:12px;display:grid}.task-filter-panel{grid-area:1/1/span 2;grid-template-columns:minmax(0,1fr);gap:10px;width:100%;min-width:0;display:grid}.task-filter-panel[open]{grid-column:1/-1}.task-filter-panel[open]+.ghost-link{grid-area:1/1/auto/-1;justify-self:end}.task-filter-panel>summary{color:#0a1f44;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffffdb;border:1px solid #ffffffb8;border-radius:999px;grid-area:1/1;align-items:center;gap:8px;width:fit-content;max-width:100%;height:42px;min-height:42px;padding:0 12px;list-style:none;display:flex;box-shadow:inset 1px 1px #ffffffdb,0 8px 18px #4b7dff14}.task-index-actions>.ghost-link{z-index:1;color:#0a1f44;background:#ffffffdb;border-color:#ffffffb8;border-radius:999px;grid-area:1/2;justify-self:end;height:42px;min-height:42px;font-size:13px;font-weight:900;box-shadow:inset 1px 1px #ffffffdb,0 8px 18px #4b7dff14}.task-filter-panel>summary::-webkit-details-marker{display:none}.task-filter-button{align-items:center;gap:7px;font-size:13px;font-weight:900;display:inline-flex}.task-filter-button img{object-fit:contain;width:22px;height:22px;display:block}.task-filter-count{color:#1d4ed8;background:#dbeafef0;border-radius:999px;place-items:center;min-width:22px;height:22px;font-size:11px;font-weight:900;display:grid}.task-filter-bar{background:#ffffffbd;border:1px solid #ffffffb8;border-radius:16px;grid-area:2/1;grid-template-columns:minmax(0,1fr);gap:10px;width:100%;min-width:0;margin-top:10px;padding:12px;display:grid;box-shadow:inset 1px 1px #ffffffdb,0 8px 18px #4b7dff14}.task-filter-panel[open] .task-filter-bar{grid-column:1/-1}.task-filter-bar label{color:#0a1f44;gap:6px;min-width:0;font-size:12px;font-weight:900;display:grid}.task-filter-bar input{color:#0a1f44;background:#fff;border:1px solid #a5b4fc57;border-radius:12px;min-width:0;min-height:42px;padding:0 12px;font-size:16px;font-weight:700}.task-filter-bar .ghost-button,.task-filter-bar .ghost-link{justify-content:center;min-height:42px}.task-index-page,.task-detail-page{position:relative}.task-tab-swipe-frame{min-height:calc(var(--app-visual-viewport-height) - var(--app-header-height) - var(--app-bottom-nav-visible-height) - var(--safe-top) - var(--safe-bottom) - 64px);min-width:0;transform:translate3d(var(--swipe-offset,0px), 0, 0);touch-action:pan-y;will-change:transform;align-content:start;gap:18px;transition:transform .18s cubic-bezier(.22,1,.36,1);display:grid}.task-tab-swipe-frame.is-swiping{transition:none}.task-detail-page{align-content:start;gap:12px;padding-top:14px;display:grid}.task-tabs{-webkit-tap-highlight-color:transparent;background:#ffffff94;border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:6px;display:grid;position:relative;overflow:hidden;box-shadow:inset 2px 3px 7px #a5b4fc2e,0 8px 18px #4b7dff1a}.task-tabs:before{z-index:0;content:"";will-change:transform;background:linear-gradient(#fffffff0,#dbeafec2),#60a5fa2e;border-radius:14px;width:calc(25% - 6px);transition:transform .3s cubic-bezier(.22,1,.36,1);position:absolute;top:6px;bottom:6px;left:6px;transform:translate(0,0);box-shadow:inset 0 1px #ffffffd1,inset 0 0 0 1px #60a5fa14}.task-tabs:has(a:nth-child(2).is-active):before{transform:translate(calc(100% + 4px))}.task-tabs:has(a:nth-child(3).is-active):before{transform:translate(calc(200% + 8px))}.task-tabs:has(a:nth-child(4).is-active):before{transform:translate(calc(300% + 12px))}.task-tabs a{z-index:1;color:#0a1f44;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border-radius:14px;grid-template-columns:auto auto;justify-content:center;place-items:center;gap:5px;min-height:40px;font-size:13px;font-weight:900;transition:color .22s;display:grid;position:relative;overflow:hidden}.task-tabs a b{color:#0a1f44;background:#0a1f4414;border-radius:999px;place-items:center;min-width:20px;height:20px;font-size:11px;font-weight:900;line-height:1;display:inline-grid}.task-tabs a:before{display:none}.task-tabs a.is-active{box-shadow:none;background:0 0}.task-tabs a.is-active:before{opacity:0}.task-tabs a:active{color:#061833}.task-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;gap:16px;padding:18px;display:grid}.task-card-link{color:inherit;transition:transform .18s,box-shadow .18s}.task-card-link:hover,.task-card-link:focus-visible{outline:none;transform:translateY(-1px);box-shadow:0 14px 30px #1118271f}.task-list-card{background:#fff;border-color:#ffffffb8;border-radius:16px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 12px;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff14}.task-list-card[data-overdue=true]{background:linear-gradient(90deg,#fee2e2db 0 4px,#0000 4px),#fff;border-color:#f871716b;box-shadow:inset 1px 1px #ffffffeb,0 12px 24px #ef44441f}.task-list-card[data-overdue=true] .task-list-card__due{color:#b91c1c;font-weight:900}.task-list-card__icon{background:#dbeafe94;border-radius:14px;place-items:center;width:42px;height:42px;display:grid}.task-list-card__icon img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:30px;height:30px;display:block}.task-list-card__main{gap:4px;min-width:0;display:grid}.task-list-card__kind{color:#1d4ed8;font-size:11px;font-weight:900;line-height:1.2}.task-list-card h2{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:900;line-height:1.35;overflow:hidden}.task-list-card__meta{color:var(--muted);flex-wrap:wrap;gap:5px 10px;font-size:11px;font-weight:800;line-height:1.35;display:flex}.task-list-card__categories{flex-wrap:wrap;gap:5px;min-width:0;display:flex}.task-list-card__categories span{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;background:#eff6ffd1;border:1px solid #a5b4fc38;border-radius:999px;place-items:center;max-width:118px;min-height:22px;padding:0 8px;font-size:10px;font-weight:900;line-height:1;display:inline-grid;overflow:hidden}.task-list-card__categories span[data-status=COMPLETED]{color:#64748b;background:#f1f5f9d1}.task-list-card__status{justify-items:end;gap:5px;min-width:76px;display:grid}.task-list-card__status span,.task-list-card__status strong{white-space:nowrap;border-radius:999px;place-items:center;min-width:70px;min-height:26px;padding:0 9px;font-size:12px;font-weight:900;display:grid}.task-list-card__status span{color:#0a1f44;background:#dbeafeb8}.task-list-card__status span[data-status=NOT_STARTED]{background:#e5e9fad1}.task-list-card__status strong{color:#9b6a13;background:#fef3c7e0}.task-card h2,.task-card p{margin:0}.task-body-preview{color:var(--muted);white-space:pre-line;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.6;display:-webkit-box;overflow:hidden}.task-detail-body{color:#182033;white-space:pre-line;font-size:14px;line-height:1.9}.task-detail-facts,.orientation-info-grid{gap:8px;display:grid}.task-detail-facts p,.orientation-info-grid p{grid-template-columns:minmax(84px,.36fr) minmax(0,1fr);align-items:stretch;gap:8px;margin:0;display:grid}.task-detail-facts span,.orientation-info-grid span{color:#0a1f44;text-align:center;background:#dbeafeb8;border-radius:999px;justify-content:center;align-items:center;min-height:34px;padding:6px 10px;font-size:12px;font-weight:900;line-height:1.35;display:inline-flex}.task-detail-facts strong,.orientation-info-grid strong{color:#0a1f44;overflow-wrap:anywhere;white-space:pre-line;background:#f8fbffb8;border:1px solid #a5b4fc2e;border-radius:12px;align-items:center;min-width:0;min-height:34px;padding:7px 11px;font-size:13px;font-weight:600;line-height:1.55;display:flex}.task-detail-facts__free-text,.task-detail-empty{color:#18304f;white-space:pre-line;background:#f8fbffb8;border:1px solid #a5b4fc33;border-radius:14px;margin:0;padding:12px;font-size:13px;font-weight:500;line-height:1.75}.task-detail-facts__free-text{grid-column:1/-1}.task-detail-facts--substitution{gap:10px}.substitution-task-lessons{grid-column:1/-1;gap:10px;display:grid}.substitution-task-lesson{background:linear-gradient(#ffffffeb,#f8fbffd6),#fff;border:1px solid #a5b4fc3d;border-radius:18px;gap:9px;padding:12px;display:grid;box-shadow:inset 1px 1px #ffffffdb}.substitution-task-lesson h3{color:#0a1f44;background:#dbeafec2;border-radius:999px;place-items:center;width:fit-content;min-height:26px;margin:0;padding:0 12px;font-size:13px;font-weight:900;line-height:1.35;display:inline-grid}.substitution-task-lesson>div{gap:7px;display:grid}.substitution-task-lesson p{grid-template-columns:minmax(72px,.3fr) minmax(0,1fr);align-items:stretch;gap:7px;margin:0;display:grid}.substitution-task-lesson span{min-height:30px;padding:5px 9px;font-size:11px}.substitution-task-lesson strong{min-height:30px;padding:6px 10px;font-size:12px}.task-detail-hero{gap:10px;display:grid}.task-detail-actions{justify-content:space-between;align-items:center;display:flex}.task-detail-back{color:#1d4ed8;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #ffffffd1;border-radius:999px;place-items:center;width:96px;height:32px;padding:0;line-height:0;transition:box-shadow .18s,transform .22s cubic-bezier(.16,1,.3,1);display:grid;overflow:hidden;box-shadow:inset 1px 1px #ffffffe6,0 6px 14px #4b7dff17}.task-detail-action-spacer,.task-detail-delete-button{place-items:center;width:96px;height:32px;display:grid}.task-detail-delete-form{margin:0}.task-detail-delete-button{color:#b42318;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fffffff0;border:1px solid #f8717142;border-radius:999px;font-size:13px;font-weight:900;box-shadow:inset 1px 1px #ffffffe6,0 6px 14px #4b7dff14}.task-detail-delete-button:active{transform:scale(.97)}.task-detail-back img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:32px;height:32px;display:block}.task-detail-back:hover,.task-detail-back:focus-visible{outline:none;transform:translateY(-1px)}.task-detail-back:active{transform:scale(.97)}.task-detail-title-card{background:#fff;border:1px solid #ffffffbd;border-radius:16px;align-content:center;justify-items:center;gap:7px;min-height:104px;padding:16px 18px 18px;display:grid;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff14}.task-detail-title-card__icon{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:30px;height:30px;display:block}.task-detail-title-card>span{color:#1d4ed8;font-size:12px;font-weight:900;line-height:1.4}.task-detail-title-card h1{color:#0a1f44;letter-spacing:0;text-align:center;overflow-wrap:anywhere;margin:0;font-size:clamp(21px,5.6vw,25px);font-weight:900;line-height:1.35}.task-detail-hero__badges{flex-wrap:wrap;justify-content:center;gap:7px;margin-top:2px;display:flex}.task-detail-hero__badges span{color:#0a1f44;background:#dbeafea3;border-radius:999px;place-items:center;min-height:24px;padding:0 10px;font-size:11px;font-weight:900;display:inline-grid}.task-detail-note{background:#fff;border-color:#ffffffb8;border-radius:16px;gap:14px;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff14}.task-detail-note__header{place-items:center;display:grid}.task-detail-note__header h2{color:#0a1f44;letter-spacing:0;background:#dbeafed1;border-radius:999px;place-items:center;min-width:min(150px,54%);min-height:24px;margin:0;font-size:14px;font-weight:900;display:grid}.task-card-meta{color:var(--muted);flex-wrap:wrap;gap:8px 14px;font-size:.82rem;font-weight:800;display:flex}.task-latest-update{color:#0d4f63;font-size:.86rem;font-weight:800}.orientation-preview{color:var(--muted);gap:4px;font-weight:800;display:grid}.orientation-preview p{margin:0}.empty-state{color:var(--muted);background:#ffffffd1;border:1px solid #ffffffb3;border-radius:12px;margin:0;padding:18px;font-weight:800}.fab-button{right:calc(var(--safe-right) + 16px);bottom:calc(var(--app-bottom-nav-visible-height) + 16px);z-index:var(--z-fab);color:#0a1f44;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#fff;border-radius:999px;width:64px;height:64px;font-size:0;font-weight:500;line-height:1;transition:transform .18s,box-shadow .18s,filter .18s;display:block;position:fixed;overflow:hidden;box-shadow:inset 2px 3px 7px #a5b4fc33,2px -1px 5px #4b7dff3d,0 12px 26px #1118271f}.fab-button:before{content:"";background:url(/plus.svg) 50%/36px 36px no-repeat,linear-gradient(#dbeafedb,#bfdbfeb8);border-radius:999px;width:48px;height:48px;display:block;position:absolute;top:8px;left:8px}.fab-button:active{filter:brightness(.98);transform:scale(.94)}.fab-button:focus-visible{outline-offset:3px;outline:3px solid #4b7dff52}.task-create-fab,.task-update-fab{right:calc(var(--safe-right) + 16px);bottom:calc(var(--app-bottom-nav-visible-height) + 16px);z-index:var(--z-fab);color:#0a1f44;cursor:pointer;appearance:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;isolation:isolate;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#fffffff5;border:1px solid #a5b4fc66;border-radius:999px;place-items:center;width:64px;height:64px;padding:0;line-height:0;transition:box-shadow .22s,filter .18s,transform .24s cubic-bezier(.16,1,.3,1);display:grid;position:fixed;overflow:hidden;box-shadow:inset 1px 1px #ffffffe0,0 10px 22px #4b7dff29}.task-create-fab__halo{display:none}.task-create-fab:before,.task-update-fab:before{border-radius:inherit;content:"";opacity:0;background:#dbeafe94;transition:opacity .26s,transform .36s cubic-bezier(.16,1,.3,1);position:absolute;inset:6px;transform:scale(.86)}.task-create-fab__icon,.task-fab__icon{z-index:1;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:48px;height:48px;margin:0;transition:transform .26s cubic-bezier(.16,1,.3,1);display:block;position:relative;transform:rotate(0)scale(1)}.task-create-fab:hover,.task-create-fab:focus-visible,.task-update-fab:hover,.task-update-fab:focus-visible{outline:none;transform:translateY(-1px);box-shadow:inset 1px 1px #ffffffe6,0 12px 24px #4b7dff33}.task-create-fab:hover:before,.task-create-fab:focus-visible:before,.task-update-fab:hover:before,.task-update-fab:focus-visible:before{opacity:1;transform:scale(1)}.task-create-fab:active,.task-update-fab:active{filter:brightness(.99);transform:translateY(1px)scale(.95)}.task-create-fab:active .task-create-fab__icon{transform:rotate(90deg)scale(.9)}.task-update-fab:active .task-fab__icon{transform:rotate(16deg)scale(.92)}.bottom-sheet-layer{z-index:var(--z-modal);padding-inline:max(0px, var(--safe-left));place-items:end center;animation:.26s both modal-layer-in;display:grid;position:fixed;inset:0}.bottom-sheet-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(circle at 50% 100%,#60a5fa38,#0000 44%),#0a1f4447;border:0;animation:.28s both modal-backdrop-in;position:absolute;inset:0}.bottom-sheet{width:min(100vw - 24px,430px);max-height:min(82vh,620px);padding:12px 14px calc(18px + env(safe-area-inset-bottom,0px));transform-origin:bottom;background:radial-gradient(circle at 18% 0,#dbeafec2,#0000 30%),linear-gradient(#fffffffa,#f8fbfff5),#fff;border:1px solid #ffffffbd;border-radius:28px 28px 0 0;gap:12px;margin:0 auto;animation:.42s cubic-bezier(.16,1,.3,1) both bottom-sheet-in;display:grid;position:relative;overflow-y:auto;box-shadow:inset 2px 3px 7px #a5b4fc29,0 -22px 46px #0a1f4438}.bottom-sheet__handle{background:#a5b4fc85;border-radius:999px;justify-self:center;width:42px;height:4px}.bottom-sheet__header{justify-content:space-between;align-items:center;gap:10px;padding:2px 2px 4px;display:flex}.bottom-sheet__header h2{color:#0a1f44;letter-spacing:0;margin:0;font-size:1rem;font-weight:900}.bottom-sheet__header .ghost-button{color:#0a1f44;background:#ffffffbd;border-color:#a5b4fc47;border-radius:999px;min-height:34px;font-size:12px;transition:background .18s,border-color .18s,transform .22s cubic-bezier(.16,1,.3,1);box-shadow:inset 1px 1px #fffc}.bottom-sheet__header .ghost-button:hover,.bottom-sheet__header .ghost-button:focus-visible{background:#eff6fff5;border-color:#60a5fa6b;outline:none;transform:translateY(-1px)}.task-detail-sheet{gap:14px}.task-detail-sheet__body{gap:12px;display:grid}.task-detail-sheet .task-update-panel{border-radius:18px;box-shadow:inset 2px 3px 7px #a5b4fc1a}.task-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.task-category-option{color:#0a1f44;-webkit-tap-highlight-color:transparent;will-change:opacity, transform;background:#fff;border:1px solid #a5b4fc38;border-radius:18px;place-items:center;gap:8px;min-height:94px;padding:14px 10px 12px;transition:background .18s,border-color .18s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1);animation:.44s cubic-bezier(.16,1,.3,1) both task-category-option-in;display:grid;position:relative;overflow:hidden;box-shadow:inset 1px 1px #ffffffe0,0 8px 18px #4b7dff14}.task-category-option:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#60a5fa1a,#0000);transition:opacity .24s,transform .52s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;transform:translate(-58%)}.task-category-option:first-child{animation-delay:70ms}.task-category-option:nth-child(2){animation-delay:.105s}.task-category-option:nth-child(3){animation-delay:.14s}.task-category-option:nth-child(4){animation-delay:.175s}.task-category-option:hover,.task-category-option:focus-visible{background:linear-gradient(#fff,#eff6fff5),#fff;border-color:#60a5fa61;outline:none;transform:translateY(-1px);box-shadow:inset 1px 1px #ffffffeb,0 10px 22px #4b7dff24}.task-category-option:hover:after,.task-category-option:focus-visible:after,.task-category-option:active:after{opacity:1;transform:translate(58%)}.task-category-option__icon{background:#dbeafe8a;border-radius:14px;place-items:center;width:44px;height:44px;display:grid}.task-category-option__icon img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:32px;height:32px;display:block}.task-category-option strong{letter-spacing:0;text-align:center;font-size:14px;display:block}@keyframes modal-layer-in{0%{visibility:hidden}to{visibility:visible}}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes bottom-sheet-in{0%{opacity:0;transform:translateY(22px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes task-category-option-in{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.task-form-kind{color:#0a1f44;background:#ffffffdb;border:1px solid #a5b4fc3d;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:10px 12px;display:flex;box-shadow:0 8px 18px #4b7dff14}.task-new-form{background:linear-gradient(#fffffff5,#f8fbffeb),#fff;border-color:#ffffffb8;border-radius:18px;gap:12px;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff14}.task-form-section{background:#ffffffb3;border:1px solid #a5b4fc2e;border-radius:16px;gap:12px;padding:14px;display:grid}.task-form-section__header{gap:3px;display:grid}.task-form-section__header h2,.task-form-section__header p{margin:0}.task-form-section__header h2{color:#0a1f44;font-size:15px;font-weight:900;line-height:1.4}.task-form-section__header p{color:var(--muted);font-size:12px;font-weight:800;line-height:1.5}.task-form-kind span{color:var(--muted);font-size:.82rem;font-weight:800}.task-form-kind strong{background:#60a5fa38;border-radius:999px;padding:6px 12px;font-size:.86rem;font-weight:900}.task-due-time-input{grid-template-columns:minmax(0,1fr) minmax(118px,.44fr);gap:10px;min-width:0;display:grid}.task-due-time-input input,.task-due-time-input select{width:100%;min-width:0}.task-meeting-time{min-width:0}.task-meeting-time__trigger{color:#0a1f44;cursor:pointer;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:linear-gradient(#fffffff0,#eff6ffb8),#fff;border:1px solid #a5b4fc57;border-radius:16px;justify-content:space-between;align-items:center;width:100%;min-height:48px;padding:0 14px;font-size:16px;font-weight:900;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.task-meeting-time__trigger:after{content:"";border-bottom:2px solid #4b7dff;border-right:2px solid #4b7dff;width:8px;height:8px;transform:rotate(45deg)translateY(-2px)}.task-meeting-time__trigger[data-empty=true]{color:#0a1f4485;font-weight:800}.task-meeting-time__trigger:active{transform:scale(.99)}.task-time-modal{z-index:var(--z-modal);padding:calc(12px + var(--safe-top)) max(12px, var(--safe-right)) calc(12px + var(--safe-bottom)) max(12px, var(--safe-left));pointer-events:none;place-items:end center;display:grid;position:fixed;inset:0}.task-time-modal__backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#0a1f4442;position:absolute;inset:0}.task-time-modal__panel{z-index:1;width:min(100%,430px);max-height:min(620px, calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px));pointer-events:auto;background:linear-gradient(#fffffffa,#f7fafff5),#fff;border:1px solid #ffffffc7;border-radius:28px;gap:14px;padding:14px;animation:.22s cubic-bezier(.2,.8,.2,1) both modal-layer-in;display:grid;position:relative;overflow:hidden;box-shadow:inset 1px 1px #ffffffeb,0 26px 64px #0a1f443d}.task-time-modal__header{grid-template-columns:86px minmax(0,1fr) 86px;align-items:center;gap:8px;display:grid}.task-time-modal__header strong{color:#0a1f44;text-align:center;font-size:18px;font-weight:900}.task-time-modal__header button{color:#0a1f44;cursor:pointer;background:#eff6ffdb;border:0;border-radius:999px;min-height:40px;font-size:13px;font-weight:900}.task-time-modal__header button:last-child{color:#fff;background:linear-gradient(135deg,#4f83ff,#1854d8)}.task-time-modal__grid{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:min(480px,58dvh);padding:2px 2px 4px;display:grid;overflow-y:auto}.task-time-modal__grid button{color:#0a1f44;cursor:pointer;background:#ffffffd6;border:1px solid #a5b4fc38;border-radius:16px;min-height:44px;font-size:15px;font-weight:900;box-shadow:inset 0 1px #fffc,0 8px 16px #4b7dff0f}.task-time-modal__grid button.is-selected{color:#fff;background:linear-gradient(#ffffff2e,#0000),linear-gradient(135deg,#4f83ff,#1854d8);border-color:#2563eb33;box-shadow:inset 0 1px #ffffff3d,0 12px 22px #2563eb33}.time-pair-select{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;width:100%;min-width:0;display:grid}.inline-time-select{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;width:100%;min-width:0;display:grid}.inline-time-select span{color:#0a1f44;font-weight:900}.inline-time-select select{color:#0a1f44;text-align:center;text-align-last:center;background:linear-gradient(#fffffff5,#eff6ffdb),#fff;border:1px solid #a5b4fc52;border-radius:999px;width:100%;min-width:0;min-height:48px;padding:0 10px;font-size:16px;font-weight:900;box-shadow:inset 1px 1px #ffffffe6,0 6px 14px #4b7dff14}.time-pair-select select,.time-wheel-trigger{color:#0a1f44;text-align:center;text-align-last:center;background:linear-gradient(#fffffff5,#eff6ffdb),#fff;border-radius:999px;width:100%;min-width:0;min-height:48px;padding:0 32px 0 14px;font-size:16px;font-weight:900;box-shadow:inset 1px 1px #ffffffe6,0 6px 14px #4b7dff14}.time-wheel-trigger{cursor:pointer;border:1px solid #a5b4fc52;grid-column:1/-1}.time-wheel-trigger[data-empty=true]{color:#0a1f448a}.time-wheel-backdrop{z-index:1200;overscroll-behavior:contain;padding:16px max(12px, var(--safe-right)) max(16px, var(--safe-bottom)) max(12px, var(--safe-left));touch-action:none;background:#0a1f443d;align-items:end;display:grid;position:fixed;inset:0;overflow:hidden}.time-wheel-sheet{width:min(100%,430px);max-width:calc(100vw - max(24px, var(--safe-left) + var(--safe-right)));touch-action:auto;background:#fffffff5;border:1px solid #ffffffb3;border-radius:28px;margin:0 auto;padding:14px;box-shadow:0 18px 48px #0a1f443d}.time-wheel-sheet__header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;display:grid}.time-wheel-sheet__header .ghost-button,.time-wheel-sheet__header .primary-button{min-width:0;padding-inline:10px}.time-wheel-sheet__header strong{color:#0a1f44;font-size:1.1rem;font-weight:900}.time-wheel-columns{background:linear-gradient(#eff6ff8c,#ffffffeb);border-radius:22px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-top:14px;padding:12px;display:grid;position:relative}.time-wheel-column{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scroll-snap-type:y mandatory;scrollbar-width:none;touch-action:pan-y;gap:6px;max-height:190px;display:grid;overflow-y:auto}.time-wheel-column::-webkit-scrollbar{display:none}.time-wheel-column button{color:#0a1f447a;scroll-snap-align:center;background:0 0;border:0;border-radius:999px;min-height:42px;font-size:1.1rem;font-weight:900}.time-wheel-column button.is-selected{color:#0a1f44;background:#60a5fa3d;box-shadow:inset 0 0 0 1px #60a5fa33}.time-wheel-separator{color:#0a1f44;font-size:1.35rem;font-weight:900}.time-wheel-clear{color:#0a1f44;background:#e2e8f0c7;border:0;border-radius:999px;width:100%;min-height:44px;margin-top:12px;font-weight:900}.task-category-fieldset{background:#ffffffad}.task-category-checks{flex-wrap:wrap;gap:8px;display:flex}.task-category-check{cursor:pointer;-webkit-tap-highlight-color:transparent;place-items:center;min-height:38px;display:inline-grid;position:relative}.student-suggestion-list{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.student-suggestion-list button{color:#0a1f44;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#eff6ffdb;border:1px solid #a5b4fc42;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:34px;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.student-suggestion-list button strong,.student-suggestion-list button small{line-height:1.2;display:block}.student-suggestion-list button small{color:#0a1f4494;font-size:10px;font-weight:800}.student-suggestion-list button:active{transform:scale(.97)}.task-roster-match,.task-roster-extra-fields{gap:10px;min-width:0;display:grid}.task-roster-match{color:#0a1f44;background:linear-gradient(#eff6ffeb,#ffffffd6);border:1px solid #60a5fa3d;border-radius:16px;padding:12px 14px}.task-roster-match span{background:#60a5fa33;border-radius:999px;width:fit-content;padding:4px 10px;font-size:12px;font-weight:900}.task-roster-match strong{font-size:16px;font-weight:900;line-height:1.25}.task-roster-match small{color:#0a1f449e;font-size:12px;font-weight:800}.task-category-check input{opacity:0;pointer-events:none;position:absolute}.task-category-check span{color:#0a1f44;background:#ffffffd1;border:1px solid #a5b4fc4d;border-radius:999px;place-items:center;min-height:38px;padding:0 14px;font-size:13px;font-weight:900;transition:background .18s,border-color .18s,box-shadow .22s,transform .22s cubic-bezier(.16,1,.3,1);display:grid;box-shadow:inset 1px 1px #ffffffd6}.task-category-check input:checked+span{background:linear-gradient(#dbeafeeb,#bfdbfec2),#dbeafe;border-color:#60a5fa47;box-shadow:inset 0 1px #ffffffb8,0 8px 18px #4b7dff1f}.task-category-check:active span{transform:scale(.97)}.task-category-check input:focus-visible+span{outline-offset:2px;outline:3px solid #4b7dff47}.task-category-progress{background:#fff;border-color:#ffffffb8;border-radius:14px;gap:12px;padding:16px;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff14}.task-category-progress__header{margin-bottom:2px;display:block}.task-category-progress__header h2,.task-category-progress__header p{margin:0}.task-category-progress__header h2{color:#0a1f44;letter-spacing:0;font-size:16px;font-weight:900}.task-category-progress__header p{color:var(--muted);margin-top:3px;font-size:12px;font-weight:800;display:none}.task-update-panel{background:linear-gradient(#fffffff5,#f8fbffeb),#fff;border-color:#ffffffbd;border-radius:18px;gap:14px;box-shadow:inset 2px 3px 7px #a5b4fc1f,0 10px 22px #4b7dff1a}.task-update-panel__header{justify-content:space-between;align-items:end;gap:12px;display:flex}.task-update-panel__header h2,.task-update-panel__header p{margin:0}.task-update-panel__header h2{color:#0a1f44;letter-spacing:0;font-size:18px;font-weight:900}.task-update-panel__header p{color:var(--muted);text-align:right;font-size:12px;font-weight:800;line-height:1.5}.task-update-categories{background:#ffffff94;border-color:#a5b4fc3d}.task-add-category-panel .ghost-button{justify-content:center;justify-self:stretch}.task-category-progress-grid{gap:6px;display:grid}.task-category-progress-item{color:#0a1f44;background:#e5e9fab8;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:36px;padding:6px 8px 6px 16px;display:flex}.task-category-progress-item span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:900;line-height:1.45;overflow:hidden}.task-category-progress-item strong{color:#0a1f44;white-space:nowrap;background:#bfdbfeb8;border-radius:999px;place-items:center;min-width:100px;min-height:26px;padding:0 10px;font-size:13px;font-weight:900;line-height:1.2;display:grid}.task-category-progress-item[data-status=COMPLETED]{background:#f0fdf4c7}.task-category-progress-item[data-status=COMPLETED] strong{color:#166534;background:#dcfce7eb}.duplicate-warning{color:var(--warning);background:#fff9eb;border:1px solid #9b6a133d;border-radius:12px;gap:8px;padding:12px;font-weight:800;display:grid}.duplicate-warning p{margin:0}.duplicate-warning a{color:#0d4f63}.orientation-detail-card{background:#fff;border-color:#ffffffb8;border-radius:16px;gap:12px;padding:16px;box-shadow:inset 1px 1px #ffffffe6,0 8px 18px #4b7dff14}.copy-preview{background:#f8fbff;border:1px solid #e3e8f5;border-radius:12px;gap:12px;padding:14px;display:grid}.copy-preview p{color:#0a1f44;white-space:pre-line;margin:0;line-height:1.7}.copy-tool{gap:8px;display:grid}.copy-tool p{color:#0d4f63;font-size:.86rem;font-weight:800}.form-two-columns{gap:14px;display:grid}.route-loading-page{min-height:calc(100dvh - var(--app-header-height) - var(--app-bottom-nav-height) - var(--safe-top) - var(--safe-bottom));place-items:center;display:grid}.route-loading-card{color:#0a1f44;background:radial-gradient(circle at 30% 0,#dbeafeb8,#0000 34%),linear-gradient(#fffffff0,#f8fbffe0);border:1px solid #ffffffb8;border-radius:20px;justify-items:center;gap:14px;padding:24px 28px;display:grid;box-shadow:inset 2px 3px 7px #a5b4fc1f,0 12px 26px #4b7dff1f}.route-loading-card p{margin:0;font-size:14px;font-weight:900}.route-loading-spinner{border:4px solid #dbeafeeb;border-top-color:#1d4ed8;border-radius:999px;width:38px;height:38px;animation:.78s linear infinite route-loading-spin}@keyframes route-loading-spin{to{transform:rotate(360deg)}}.quarter-datetime{grid-template-columns:minmax(0,1fr);gap:8px;width:100%;min-width:0;max-width:100%;display:grid;overflow:hidden}.inline-form{border-top:1px solid var(--border);padding-top:14px}.history-list{gap:12px;display:grid}.task-history{background:radial-gradient(circle at 10% 0,#dbeafeb8,#0000 34%),linear-gradient(#fffffffc,#f8fbfff0),#fff;border:1px solid #ffffffbd;border-radius:22px;gap:10px;padding:16px 14px 18px;position:relative;box-shadow:inset 1px 1px #ffffffe6,0 12px 26px #4b7dff1a}.task-history__heading{border-bottom:1px solid #a5b4fc42;justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.task-history__heading h2{color:#0a1f44;background:linear-gradient(#dbeafef0,#bfdbfe9e);border-radius:999px;place-items:center;min-width:136px;min-height:26px;margin:0;font-size:14px;font-weight:900;line-height:1.35;display:inline-grid}.task-history__heading span{color:#64748b;white-space:nowrap;background:#f8fafceb;border-radius:999px;place-items:center;min-height:24px;padding:0 10px;font-size:12px;font-weight:900;display:inline-grid}.history-timeline-item{grid-template-columns:minmax(0,1fr);display:grid;position:relative}.history-timeline-marker{z-index:1;background:#4b7dff;border:0;border-radius:999px;width:10px;height:10px;display:block;position:absolute;top:19px;left:14px;box-shadow:0 0 0 5px #dbeafed6,0 0 0 6px #60a5fa24}.history-timeline-content{background:linear-gradient(#fffffff5,#fbfdffeb),#fff;border:1px solid #a5b4fc3d;border-radius:18px;gap:11px;min-width:0;padding:13px 13px 13px 36px;display:grid;position:relative;overflow:hidden;box-shadow:inset 1px 1px #ffffffeb,0 8px 18px #4b7dff14}.history-timeline-content:before{content:"";background:linear-gradient(#4b7dff,#9fc8ff);width:4px;position:absolute;top:0;bottom:0;left:0}.history-timeline-content>p{color:#18304f;overflow-wrap:anywhere;background:#eff6ffa8;border:0;border-radius:14px;min-width:0;margin:0;padding:12px 13px;font-size:13px;font-weight:600;line-height:1.75}.history-author-line{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px 9px;font-size:12px;font-weight:800;line-height:1.35;display:flex}.history-author-line__profile{align-items:center;gap:9px;min-width:0;display:inline-flex}.history-author-line__avatar{object-fit:cover;background:#eef2f7;border:2px solid #fff;border-radius:999px;flex:none;width:30px;height:30px;box-shadow:0 4px 10px #4b7dff1f}.history-author-line__name{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:900;overflow:hidden}.history-author-line time{color:#64748b;text-align:right;white-space:nowrap;margin-left:auto;font-size:11px;font-weight:800}.history-type-badge{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(#ffffffb8,#dbeafed1);border:1px solid #60a5fa2e;border-radius:999px;align-items:center;width:fit-content;max-width:100%;min-height:24px;padding:0 10px;font-size:11px;font-weight:900;line-height:1.25;display:inline-grid;overflow:hidden}@media (max-width:430px){.task-history{border-radius:20px;padding:14px}.task-history__heading h2{min-width:128px}.history-timeline-item{grid-template-columns:minmax(0,1fr)}.history-timeline-marker{left:13px}.history-author-line{gap:7px}.history-author-line time{text-align:left;width:100%;margin-left:39px}.history-timeline-content>p{border-radius:12px;padding:11px 12px}}@media (max-width:380px){.task-detail-facts p,.orientation-info-grid p,.substitution-task-lesson p{grid-template-columns:minmax(0,1fr)}.task-detail-facts span,.orientation-info-grid span,.substitution-task-lesson span{justify-content:flex-start;width:fit-content;padding-left:12px;padding-right:12px}}.attachment-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.attachment-list li{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.schedule-calendar-panel,.schedule-day-panel,.shift-submit-shell{width:100%;min-width:0;box-shadow:var(--shadow);background:#ffffffd6;border:1px solid #7a91d247;border-radius:8px;padding:12px}.shift-month-page{top:calc(var(--app-header-height) + var(--safe-top) + var(--app-shift-shell-gap));z-index:1;width:var(--app-page-width);height:calc(var(--app-visual-viewport-height) - var(--app-header-height) - var(--safe-top) - var(--app-bottom-nav-visible-height) - var(--safe-bottom) - (var(--app-shift-shell-gap) * 2));touch-action:pan-y;min-height:0;max-height:none;margin:0;padding:0;display:flex;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}.shift-month-frame{width:100%;height:100%;min-height:0;transform:translate3d(var(--swipe-offset,0px), 0, 0);will-change:transform;grid-template-rows:46px minmax(0,1fr);gap:8px;transition:transform .18s cubic-bezier(.22,1,.36,1);display:grid;overflow:hidden}.shift-month-frame.is-swiping{transition:none}.shift-month-switcher{-webkit-tap-highlight-color:transparent;background:#fff;border-radius:15px;grid-template-columns:minmax(0,1fr) minmax(124px,154px);align-items:center;gap:8px;width:100%;min-width:0;padding:4px;display:grid;position:relative;overflow:hidden;box-shadow:inset 2px 3px 7px #a5b4fc24,0 4px 10px #4b7dff1a}.shift-month-switcher h1{color:#0a1f44;text-align:center;justify-content:center;align-items:center;gap:10px;min-width:0;margin:0;font-size:16px;font-weight:700;line-height:1;display:inline-flex}.shift-month-title-button{min-width:0;min-height:38px;color:inherit;cursor:pointer;font:inherit;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:13px;justify-content:center;align-items:center;padding:0 10px;line-height:1;transition:background .24s,transform .28s cubic-bezier(.16,1,.3,1);display:inline-flex}.shift-month-title-button:hover,.shift-month-title-button:focus-visible{background:#dbeafe94;outline:none}.shift-month-title-button:active{transform:scale(.97)}.month-picker-backdrop{z-index:var(--z-drawer);padding:calc(18px + var(--safe-top)) 16px calc(18px + var(--safe-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:radial-gradient(circle at 50% 100%,#bfdbfe52,#0000 38%),#0a1f443d;place-items:end center;display:grid;position:fixed;inset:0}.month-picker-sheet{background:linear-gradient(#fffffffa,#f7fafff5),#fff;border:1px solid #ffffffd1;border-radius:30px;gap:14px;width:min(100%,420px);padding:14px;animation:.26s cubic-bezier(.16,1,.3,1) month-picker-enter;display:grid;box-shadow:inset 1px 1px #ffffffe6,0 28px 64px #1d2f5b3d}.month-picker-sheet__header{grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;gap:8px;display:grid}.month-picker-sheet__header strong{color:#0a1f44;text-align:center;min-width:0;font-size:16px;font-weight:900}.month-picker-sheet__header .ghost-button,.month-picker-sheet__header .primary-button{border-radius:999px;min-height:38px;padding-inline:12px;font-size:13px}.month-picker-current{background:linear-gradient(#eff6ffd1,#dbeafe94),#fff;border:1px solid #a5b4fc3d;border-radius:22px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:12px 14px;display:grid;box-shadow:inset 1px 1px #ffffffc7,0 10px 22px #4b7dff14}.month-picker-current span{color:#64748b;font-size:12px;font-weight:900}.month-picker-current strong{color:#0a1f44;text-align:right;min-width:0;font-size:20px;font-weight:900;line-height:1}.month-picker-year{color:#0a1f44;gap:7px;font-size:12px;font-weight:900;display:grid}.month-picker-year select{color:#0a1f44;background:#ffffffe0;border:1px solid #a5b4fc4d;border-radius:16px;width:100%;min-width:0;min-height:46px;padding:0 14px;font-size:16px;font-weight:900;box-shadow:inset 0 1px #fffc}.month-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.month-picker-grid button{color:#0a1f44;cursor:pointer;background:#ffffffd1;border:1px solid #a5b4fc3d;border-radius:18px;min-width:0;min-height:46px;font-size:15px;font-weight:900;transition:background .24s,border-color .24s,color .24s,transform .28s cubic-bezier(.16,1,.3,1);box-shadow:inset 0 1px #fffc,0 8px 16px #4b7dff12}.month-picker-grid button.is-selected{color:#fff;background:linear-gradient(#ffffff2e,#0000),linear-gradient(135deg,#4f83ff,#1854d8);border-color:#2563eb38;box-shadow:inset 0 1px #ffffff3d,0 12px 22px #2563eb33}.month-picker-grid button:active{transform:scale(.96)}@keyframes month-picker-enter{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translate(0,0)scale(1)}}.shift-month-swipe-hint{color:#1d4ed8;opacity:.45;font-size:22px;font-weight:800;line-height:1}.shift-month-arrow{z-index:1;color:#1d4ed8;touch-action:manipulation;background:0 0;border-radius:12px;place-items:center;height:40px;transition:background .32s,transform .42s cubic-bezier(.16,1,.3,1),box-shadow .42s;display:grid;position:relative;overflow:hidden}.shift-month-arrow--desktop{display:none}.shift-month-arrow:before{z-index:-1;border-radius:inherit;content:"";opacity:.86;background:linear-gradient(#dbeafedb,#bfdbfeb8),#60a5fa38;transition:opacity .42s,transform .46s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;transform:scale(1);box-shadow:inset 0 1px #ffffffb8,inset 0 0 0 1px #60a5fa1a}.shift-month-arrow img{z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:40px;height:40px;transition:opacity .32s,transform .42s cubic-bezier(.16,1,.3,1);position:relative}.shift-month-arrow:hover,.shift-month-arrow:focus-visible{outline:none;transform:translateY(-1px)scale(1.01)}.shift-month-arrow:hover:before,.shift-month-arrow:focus-visible:before{opacity:1;transform:scale(1.03)}.shift-month-arrow:active{transform:translateY(0)scale(.96)}.shift-month-arrow:active img{transform:scale(.92)}.shift-month-board{background:#fff;border:0;border-radius:16px;grid-template-rows:24px repeat(6,minmax(0,1fr));grid-template-columns:repeat(7,minmax(0,1fr));width:100%;height:100%;min-height:0;display:grid;overflow:hidden}.shift-month-board .shift-month-weekday{color:#0a1f44;border-bottom:1px solid #a5b4fc;border-right:1px solid #a5b4fc;place-items:center;min-width:0;font-size:12px;font-weight:500;display:grid}.shift-month-board .shift-month-weekday:nth-child(7){border-right:0}.shift-month-cell{color:#0a1f44;background:#fff;border-bottom:1px solid #a5b4fc;border-right:1px solid #a5b4fc;grid-auto-rows:min-content;align-content:start;gap:1px;min-width:0;min-height:0;padding:5px 2px 3px 5px;display:grid;overflow:hidden}.shift-month-cell:nth-child(7n){border-right:0}.shift-month-cell:nth-last-child(-n+7){border-bottom:0}.shift-month-cell.is-muted,.shift-month-cell.is-sunday,.shift-month-cell.is-holiday{background:#a5b4fc4d}.shift-month-cell.is-muted{color:#73809a}.shift-month-cell__day{font-size:12px;font-weight:500;line-height:1}.shift-month-cell strong,.shift-month-cell small,.shift-month-cell b{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:8px;font-weight:700;line-height:1.08;overflow:hidden}.shift-month-cell.is-holiday strong{color:#0a1f44}.shift-month-cell b{background:0 0;border-left:2px solid #60a5fa8a;border-radius:0;width:100%;padding:0 0 0 3px}.shift-month-staff{grid-template-columns:9px minmax(0,1fr);align-items:center;gap:1px;min-width:0;max-width:100%;display:grid}.shift-month-staff img{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;background:#e5e7eb;border:1px solid #ffffffd1;border-radius:999px;width:10px;height:10px;display:block;transform:translate(-1px)}.shift-month-staff b{border-left:0;padding-left:0;font-size:8px;line-height:1.05}.shift-month-more{display:block}.shift-month-note{background:#dbeafeb8;border-radius:999px;padding:1px 3px}.shift-scope-tabs{z-index:2;-webkit-tap-highlight-color:transparent;background:#eef2ffe0;border-radius:13px;grid-template-columns:repeat(2,minmax(0,1fr));align-self:center;gap:3px;width:100%;min-width:0;height:38px;padding:3px;display:grid;position:relative;overflow:hidden;box-shadow:inset 1px 1px 4px #a5b4fc1f}.shift-scope-tabs:before{z-index:0;content:"";will-change:transform;background:linear-gradient(#dbeafedb,#bfdbfeb8),#60a5fa38;border-radius:10px;width:calc(50% - 4.5px);transition:transform .3s cubic-bezier(.22,1,.36,1);position:absolute;top:3px;bottom:3px;left:3px;transform:translate(0,0);box-shadow:inset 0 1px #ffffffb8,inset 0 0 0 1px #60a5fa1a}.shift-scope-tabs:has(a:nth-child(2).is-active):before{transform:translate(calc(100% + 3px))}.shift-scope-tabs a{z-index:1;color:#0a1f44;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:4px;min-width:0;height:32px;font-size:10px;font-weight:700;transition:color .22s;display:flex;position:relative;overflow:hidden}.shift-scope-tabs img{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:18px;height:18px;display:block}.shift-scope-tabs span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shift-scope-tabs a:before{display:none}.shift-scope-tabs a.is-active{background:0 0}.shift-scope-tabs a.is-active:before{opacity:0}.shift-scope-tabs a:active{color:#061833}.shift-day-page{top:calc(var(--app-header-height) + var(--safe-top) + 10px);width:var(--app-page-width);height:calc(var(--app-visual-viewport-height) - var(--app-header-height) - var(--safe-top) - var(--app-bottom-nav-visible-height) - 20px);min-height:0;max-height:100%;margin:0;padding:4px 0 6px;display:flex;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}.shift-day-frame{width:100%;height:100%;min-height:0;transform:translate3d(var(--swipe-offset,0px), 0, 0);will-change:transform;grid-template-rows:46px minmax(0,1fr);gap:6px;transition:transform .18s cubic-bezier(.22,1,.36,1);display:grid;overflow:hidden}.shift-day-frame.is-swiping{transition:none}.shift-day-switcher{-webkit-tap-highlight-color:transparent;background:#fff;border-radius:16px;grid-template-columns:minmax(116px,128px) minmax(0,1fr) minmax(64px,80px);align-items:center;gap:4px;width:100%;min-width:0;padding:4px;display:grid;position:relative;overflow:hidden;box-shadow:inset 2px 3px 7px #a5b4fc24,0 4px 10px #4b7dff1a}.shift-day-switcher h1{color:#0a1f44;text-align:center;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:16px;font-weight:700;line-height:1;overflow:hidden}.shift-day-swipe-hint{color:#64748b;opacity:.68;justify-self:center;font-size:9px;font-weight:800;line-height:1}.shift-day-card{background:#fff;border-radius:16px;grid-template-rows:auto minmax(0,1fr);width:100%;min-height:0;padding:8px;display:grid;overflow:hidden}.shift-day-events{scrollbar-width:none;grid-auto-columns:minmax(126px,1fr);grid-auto-flow:column;gap:8px;min-width:0;padding:4px 4px 8px;display:grid;overflow:auto hidden}.shift-day-events::-webkit-scrollbar{display:none}.shift-day-event-card,.shift-day-event-empty{color:#0a1f44;background:#dbeafec7;border-radius:12px;min-width:0;padding:8px 10px}.shift-day-event-card{gap:3px;display:grid}.shift-day-event-card span{color:#1d4ed8;font-size:9px;font-weight:900;line-height:1}.shift-day-event-card strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:900;line-height:1.25;overflow:hidden}.shift-day-event-card small,.shift-day-event-empty{color:#64748b;font-size:10px;font-weight:800;line-height:1.25}.shift-day-event-empty{align-items:center;min-height:44px;margin:0;display:grid}.shift-day-back-button{color:#0a1f44;touch-action:manipulation;background:linear-gradient(#dbeafedb,#bfdbfeb8),#60a5fa38;border-radius:14px;justify-content:center;align-items:center;gap:2px;width:116px;height:40px;font-size:12px;font-weight:800;line-height:1;transition:transform .42s cubic-bezier(.16,1,.3,1),filter .32s;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px #ffffffb8,inset 0 0 0 1px #60a5fa1a}.shift-day-back-button:hover,.shift-day-back-button:focus-visible{filter:brightness(1.03);outline:none;transform:translateY(-1px)}.shift-day-back-button:active{transform:translateY(0)scale(.97)}.shift-day-back-button img{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:28px;height:28px}.shift-day-back-button__long{display:none}.shift-day-chip{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;background:#60a5fa40;border-radius:12px;place-items:center;min-width:0;height:32px;padding:4px 8px;font-size:10px;font-weight:700;display:inline-grid;overflow:hidden}.shift-day-chip.is-muted{color:#64748b}.shift-day-timeline{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-width:0;min-height:0;overflow:hidden auto}.shift-day-timeline-canvas{min-width:0;position:relative}.shift-day-hour{z-index:0;grid-template-columns:42px minmax(0,1fr);align-items:center;height:16px;display:grid;position:absolute;left:0;right:0;transform:translateY(-8px)}.shift-day-hour span{color:#0a1f44;align-items:center;height:16px;font-size:10px;font-weight:500;line-height:1;display:grid}.shift-day-hour i{border-top:2px dashed #a5b4fc47;align-self:center;min-width:0;height:1px;display:block}.shift-day-block{z-index:2;box-sizing:border-box;color:#0a1f44;pointer-events:none;background:#e4e8ff;border-left:2px solid #a5b4fc;border-radius:8px;align-content:start;min-height:0;display:grid;position:absolute;overflow:hidden;box-shadow:inset 0 1px #ffffffa6}.shift-day-block b{z-index:1;text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:6px 6px 2px;font-size:10px;font-weight:700;line-height:1.2;overflow:hidden}.shift-day-staff{z-index:1;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:4px;min-width:0;padding:6px 6px 2px;display:grid}.shift-day-staff img{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;background:#e5e7eb;border:1px solid #fffc;border-radius:999px;width:18px;height:18px;display:block}.shift-day-staff b{padding:0}.shift-day-block small{z-index:1;color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:0 6px 2px;font-size:10px;font-weight:700;line-height:1.2;overflow:hidden}.shift-day-lesson{color:#0a1f44;background:#c9cee5;align-content:center;place-items:center;font-size:10px;font-weight:700;display:grid;position:absolute;left:0;right:0}.shift-day-lesson b,.shift-day-lesson small{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;font-weight:700;line-height:1.2;overflow:hidden}.schedule-calendar-toolbar,.shift-submit-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.schedule-calendar-toolbar h2,.shift-submit-toolbar h2{color:#0a1f44;text-align:center;margin:0;font-size:1rem}.shift-submit-toolbar p{color:var(--muted);margin:4px 0 0;font-size:.82rem;font-weight:700}.shift-month-calendar,.shift-submit-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%;min-width:0;display:grid}.shift-month-weekday,.shift-submit-weekday{color:#5f6b82;text-align:center;font-size:.72rem;font-weight:900}.shift-month-day,.shift-submit-day{color:#0a1f44;background:#fff;border:1px solid #7a91d238;border-radius:8px;align-content:start;gap:3px;min-width:0;min-height:92px;padding:6px;display:grid;overflow:hidden}.shift-submit-day{text-align:left;min-height:54px}.shift-month-day.is-muted,.shift-submit-day.is-muted{opacity:.36}.shift-month-day.is-selected,.shift-submit-day.is-selected{background:#eef5ff;border-color:#4b7dff;box-shadow:inset 0 0 0 1px #4b7dff4d}.shift-submit-day.is-draft{background:#fff9eb}.shift-submit-day.is-submitted{background:#edf8f2}.shift-month-day__number,.shift-submit-day span{font-size:.78rem;font-weight:900}.holiday-label,.shift-submit-day small{color:#d45545;font-size:.62rem;font-weight:900;line-height:1.15}.shift-submit-day b{background:#0a1f4414;border-radius:999px;width:fit-content;padding:2px 6px;font-size:.62rem}.calendar-chip,.calendar-more{text-overflow:ellipsis;white-space:nowrap;border-radius:5px;min-width:0;padding:3px 4px;font-size:.62rem;font-weight:800;line-height:1.2;display:block;overflow:hidden}.calendar-chip.is-shift{color:#0a3e86;background:#e9f1ff}.calendar-chip.is-event{color:#2f6c3d;background:#f1f8ef}.calendar-chip.is-off{color:#9f3e30;background:#fff0ec}.calendar-more{color:var(--muted)}.schedule-day-panel{margin-top:14px}.day-timeline{margin-top:14px;display:grid}.day-timeline-row{border-top:1px solid #7a91d233;grid-template-columns:54px minmax(0,1fr);min-height:42px;display:grid}.day-timeline-row>span{color:var(--muted);padding-top:8px;font-size:.72rem;font-weight:900}.timeline-item{background:#f7faff;border-left:4px solid #4b7dff;border-radius:8px;gap:2px;margin:6px 0;padding:8px 10px;display:grid}.timeline-item b,.timeline-item span,.timeline-item small{overflow-wrap:anywhere;min-width:0}.timeline-item span,.timeline-item small{color:var(--muted);font-size:.78rem;font-weight:800}.shift-submit-shell{gap:14px;display:grid}.shift-submit-toolbar--sticky{top:calc(var(--app-header-height) + var(--safe-top) + 8px);z-index:5;background:#fffffff0;border:1px solid #ffffffc2;border-radius:12px;padding:10px;position:sticky;box-shadow:0 8px 18px #4b7dff1f}.shift-submit-month-picker{background:#ffffffd1;border:1px solid #7a91d238;border-radius:12px;gap:8px;padding:12px;display:grid}.shift-submit-month-picker>span,.shift-submit-lessons__header>span{color:#0a1f44;font-size:.82rem;font-weight:900}.shift-submit-month-picker>div{flex-wrap:wrap;gap:8px;display:flex}.shift-submit-month-picker a,.management-tabs a{color:#0a1f44;background:#ffffffdb;border-radius:999px;justify-content:center;align-items:center;min-height:38px;padding:0 14px;font-size:.86rem;font-weight:900;display:inline-flex}.shift-submit-month-picker a.is-active,.management-tabs a.is-active{background:#60a5fa40;box-shadow:inset 0 0 0 1px #4b7dff2e}.shift-submit-stats,.schedule-status-grid{flex-wrap:wrap;gap:6px;display:flex}.shift-submit-stats span,.schedule-status-grid span{color:#0a1f44;background:#eef5ff;border-radius:999px;padding:5px 9px;font-size:.74rem;font-weight:900}.shift-no-work-button{background:#ffffffc7;border-radius:18px;justify-self:stretch;min-height:48px;font-weight:900}.shift-submit-detail{width:100%}.shift-submit-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.shift-final-submit{display:grid}.shift-submit-selected-list{gap:12px;display:grid}.shift-confirm-backdrop{z-index:var(--z-modal);overscroll-behavior:contain;touch-action:none;padding:calc(16px + var(--safe-top)) max(16px, var(--safe-right)) calc(var(--app-bottom-nav-visible-height) + var(--safe-bottom) + 16px) max(16px, var(--safe-left));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a1f4438;place-items:end center;display:grid;position:fixed;inset:0;overflow:hidden}.shift-confirm-modal{width:min(100%,520px);max-height:calc(100dvh - var(--app-bottom-nav-visible-height) - var(--safe-top) - var(--safe-bottom) - 32px);touch-action:pan-y;background:#fffffff5;border:1px solid #ffffffc7;border-radius:22px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px;min-height:0;padding:16px;display:grid;overflow:hidden;box-shadow:inset 1px 1px #ffffffe6,0 24px 46px #0a1f442e}.shift-confirm-modal--compact{max-height:min(420px, calc(100dvh - var(--safe-top) - var(--safe-bottom) - 40px));grid-template-rows:auto auto auto}.shift-confirm-modal__header{justify-content:space-between;align-items:start;gap:12px;display:flex}.shift-confirm-modal__header h2{color:#0a1f44;margin:2px 0 0;font-size:18px;font-weight:900}.shift-confirm-close{color:#0a1f44;background:#dbeafed1;border:0;border-radius:999px;flex:none;place-items:center;width:36px;height:36px;font-size:20px;font-weight:900;line-height:1;display:grid}.shift-confirm-summary{background:#eff6ffdb;border-radius:14px;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;padding:12px;display:grid}.shift-confirm-summary span{color:var(--muted);font-size:12px;font-weight:900}.shift-confirm-summary b{overflow-wrap:anywhere;color:#0a1f44;min-width:0;font-size:13px;font-weight:900}.shift-confirm-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;gap:8px;min-height:0;padding-right:2px;display:grid;overflow:auto}.shift-confirm-list article{background:#fff;border:1px solid #7a91d233;border-radius:14px;gap:4px;padding:12px;display:grid}.shift-confirm-list h3,.shift-confirm-list p,.shift-confirm-list ul{margin:0}.shift-confirm-list h3{color:#0a1f44;font-size:14px;font-weight:900}.shift-confirm-list p,.shift-confirm-list li{color:#5f6b82;font-size:12px;font-weight:800;line-height:1.5}.shift-confirm-list ul{padding-left:18px}.shift-confirm-actions{background:#fffffff5;border-top:1px solid #a5b4fc2e;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px;padding-top:10px;display:grid;position:sticky;bottom:0}.shift-confirm-actions form{display:grid}.shift-submit-entry{background:#ffffffe0;border:1px solid #7a91d23d;border-radius:12px;gap:14px;padding:14px;display:grid;box-shadow:0 8px 18px #4b7dff1a}.shift-submit-entry__header,.shift-submit-lessons__header{justify-content:space-between;align-items:center;gap:10px;display:flex}.shift-submit-entry__header h3{color:#0a1f44;margin:0;font-size:1rem}.shift-submit-lessons{gap:10px;display:grid}.shift-submit-lesson-row{background:#eef5ffb3;border-radius:10px;grid-template-columns:minmax(0,1fr);gap:10px;padding:10px;display:grid}.schedule-admin-grid{gap:14px;margin-bottom:18px;display:grid}.management-tabs{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff7a;border:1px solid #ffffffb3;border-radius:22px;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;margin-bottom:12px;padding:7px;display:grid;position:relative;box-shadow:inset 1px 1px #ffffffbd,0 10px 22px #4b7dff1a}.management-tabs a{color:#0a1f44;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:17px;min-width:0;min-height:44px;padding-inline:8px;font-size:13px;font-weight:900;transition:background .24s,box-shadow .24s,transform .24s}.management-tabs a:hover,.management-tabs a:focus-visible{outline:none;transform:translateY(-1px)}.management-tabs a.is-active{background:linear-gradient(#ffffffe6,#dbeafec2);border-color:#60a5fa2e;box-shadow:inset 0 1px #ffffffc2,0 8px 16px #4b7dff1a}.schedule-management-panel{gap:16px;display:grid;position:relative}.shift-manage-index-page,.shift-campaign-detail-page,.shift-campaign-edit-page,.shift-staff-select-page,.shift-staff-shift-page{align-content:start;gap:14px;display:grid}.shift-campaign-card-link{color:inherit;text-decoration:none;transition:box-shadow .18s,transform .18s}.shift-campaign-card-link:hover,.shift-campaign-card-link:focus-visible{outline:none;transform:translateY(-1px);box-shadow:inset 1px 1px #ffffffe6,0 16px 34px #4b7dff29}.shift-back-link{justify-self:start}.shift-campaign-detail-card,.shift-submission-status-panel,.shift-staff-select-panel,.shift-staff-input-panel,.shift-staff-shift-header{background:#ffffffe0;border:1px solid #ffffffbd;border-radius:22px;gap:14px;min-width:0;padding:16px;display:grid;box-shadow:inset 1px 1px #ffffffdb,0 12px 26px #4b7dff1c}.shift-campaign-detail-card__header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.shift-campaign-detail-card__header h1,.shift-staff-select-panel h1,.shift-staff-shift-header h1{color:#0a1f44;margin:8px 0 0;font-size:clamp(22px,6vw,30px);font-weight:900;line-height:1.25}.shift-campaign-detail-card__header p,.shift-staff-shift-header span{color:var(--muted);margin:6px 0 0;font-size:13px;font-weight:800}.shift-campaign-detail-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.shift-campaign-detail-info div{background:#eff6ffc7;border-radius:16px;gap:6px;padding:12px;display:grid}.shift-campaign-detail-info dt,.shift-campaign-detail-info dd{min-width:0;margin:0}.shift-campaign-detail-info dt{color:var(--muted);font-size:11px;font-weight:900}.shift-campaign-detail-info dd{color:#0a1f44;font-size:16px;font-weight:900}.shift-campaign-detail-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.shift-submission-status-panel h2,.shift-staff-select-list h2,.shift-staff-input-panel__header h2{color:#0a1f44;margin:0;font-size:16px;font-weight:900}.shift-submission-status-list,.shift-staff-select-panel,.shift-staff-select-list{gap:10px;display:grid}.shift-submission-status-card,.shift-staff-select-card{color:#0a1f44;background:#fff;border:1px solid #a5b4fc38;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:12px;text-decoration:none;display:grid}.shift-submission-status-card.is-muted{opacity:.68}.shift-submission-status-card div,.shift-staff-select-card{min-width:0}.shift-submission-status-card strong,.shift-staff-select-card span{color:#0a1f44;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:900;display:block;overflow:hidden}.shift-submission-status-card span,.shift-staff-select-card small{color:var(--muted);margin-top:4px;font-size:12px;font-weight:800;display:block}.shift-staff-input-panel__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.shift-staff-input-panel__header span{color:#0a1f44;background:#dbeafebd;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900}.shift-lesson-fields{background:#eff6ffa3;border-radius:18px;gap:10px;min-width:0;padding:12px;display:grid}.shift-lesson-fields__header{justify-content:space-between;align-items:center;gap:10px;display:flex}.shift-lesson-fields__header span{color:#0a1f44;font-size:14px;font-weight:900}.shift-lesson-fields p{color:var(--muted);margin:0;font-size:12px;font-weight:800}.shift-lesson-fieldset{border:1px dashed #60a5fa5c;border-radius:16px;gap:10px;min-width:0;margin:0;padding:12px;display:grid}.shift-lesson-fieldset legend{color:#0a1f44;padding:0 6px;font-size:12px;font-weight:900}.shift-selected-date-list,.shift-report-panel,.shift-report-shift-list,.shift-report-form,.shift-report-admin-list,.shift-report-admin-card{gap:12px;min-width:0;display:grid}.shift-selected-date-card{background:#ffffffdb;border:1px solid #a5b4fc3d;border-radius:18px;padding:12px}.shift-report-panel{background:#ffffffe0;border:1px solid #ffffffbd;border-radius:22px;padding:16px;box-shadow:inset 1px 1px #ffffffdb,0 12px 26px #4b7dff1c}.shift-report-panel h1{color:#0a1f44;margin:0;font-size:20px;font-weight:900;line-height:1.35}.shift-report-shift-list{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.shift-report-shift-list a{color:#0a1f44;background:#fff;border:1px solid #a5b4fc38;border-radius:16px;gap:4px;min-width:0;padding:12px;text-decoration:none;display:grid}.shift-report-shift-list a.is-active{background:#dbeafeb8;border-color:#60a5fa70}.shift-report-shift-list strong,.shift-report-shift-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shift-report-shift-list strong{font-size:14px;font-weight:900}.shift-report-shift-list span{color:var(--muted);font-size:12px;font-weight:800}.shift-report-current{background:#eff6ffc2;border-radius:16px;gap:4px;min-width:0;padding:12px;display:grid}.shift-report-current span,.shift-report-current small{color:var(--muted);font-size:12px;font-weight:800}.shift-report-current strong{color:#0a1f44;font-size:18px;font-weight:900;line-height:1.25}.shift-report-admin-card{background:#fff;border:1px solid #a5b4fc38;border-radius:18px;padding:12px}.shift-report-admin-card dl{gap:8px;margin:0;display:grid}.shift-report-admin-card dl div{grid-template-columns:76px minmax(0,1fr);align-items:start;gap:8px;display:grid}.shift-report-admin-card dt,.shift-report-admin-card dd{min-width:0;margin:0}.shift-report-admin-card dt{color:var(--muted);font-size:12px;font-weight:900}.shift-report-admin-card dd{color:#0a1f44;overflow-wrap:anywhere;font-size:13px;font-weight:800}.shift-report-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.shift-submission-admin{gap:16px;display:grid}.shift-campaign-create-card{background:radial-gradient(circle at 96% 0,#60a5fa38 0 22%,#0000 23%),linear-gradient(#fffffff5,#f4f8ffe0);border-radius:26px;position:relative;overflow:hidden}.shift-campaign-create-card__header{background:#eff6ffb8;border-radius:18px;gap:4px;padding:12px;display:grid}.shift-campaign-create-card__header span,.shift-campaign-deadline span,.shift-campaign-stats span{color:#4b7dff;font-size:12px;font-weight:900}.shift-campaign-create-card__header strong{color:#0a1f44;font-size:17px;font-weight:900;line-height:1.45}.shift-campaign-list{gap:14px;padding-bottom:96px;display:grid}.shift-campaign-card{background:linear-gradient(#fffffff5,#f8fbffe0);border:1px solid #ffffffbd;border-radius:24px;gap:13px;padding:15px;display:grid;box-shadow:inset 1px 1px #ffffffdb,0 12px 26px #4b7dff1a}.shift-campaign-card__header{justify-content:space-between;align-items:start;gap:12px;min-width:0;display:flex}.shift-campaign-card__header div{gap:4px;min-width:0;display:grid}.shift-campaign-card h2,.shift-campaign-card p{margin:0}.shift-campaign-card h2{color:#0a1f44;overflow-wrap:anywhere;font-size:17px;font-weight:900;line-height:1.45}.shift-campaign-card__header p,.shift-campaign-missing{color:#5f6b82;overflow-wrap:anywhere;font-size:12px;font-weight:800;line-height:1.6}.shift-campaign-status{color:#0a1f44;background:#dbeafed1;border-radius:999px;flex:none;justify-content:center;align-items:center;min-height:30px;padding:4px 10px;font-size:12px;font-weight:900;display:inline-flex}.shift-campaign-status[data-status=OPEN]{color:#166534;background:#dcfce7e0}.shift-campaign-status[data-status=PUBLISHED]{color:#1d4ed8;background:#dbeafeeb}.shift-campaign-status[data-status=CLOSED]{color:#9a3412;background:#ffedd5e6}.shift-campaign-deadline{background:#eff6ffc7;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:10px 12px;display:flex}.shift-campaign-budget{background:radial-gradient(circle at 100% 0,#60a5fa2e,#0000 34%),#ffffffd1;border:1px solid #60a5fa2e;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:4px 12px;padding:12px;display:grid}.shift-campaign-budget span{color:#4b7dff;font-size:12px;font-weight:900}.shift-campaign-budget strong{color:#0a1f44;text-align:right;font-size:22px;font-weight:900;line-height:1}.shift-campaign-budget small{color:#5f6b82;text-align:right;grid-column:1/-1;font-size:12px;font-weight:800}.shift-campaign-deadline strong{color:#0a1f44;overflow-wrap:anywhere;min-width:0;font-size:14px;font-weight:900}.shift-campaign-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.shift-campaign-stats div{background:#ffffffc7;border-radius:16px;justify-items:center;gap:2px;min-width:0;padding:10px 6px;display:grid}.shift-campaign-stats strong{color:#0a1f44;font-size:20px;font-weight:900;line-height:1}.schedule-manage-page{gap:14px;display:grid}.shift-page .form-card,.schedule-manage-page .form-card{width:100%;max-width:none}.schedule-manage-toolbar{background:linear-gradient(#fffffff5,#eff6ffd6);border:1px solid #ffffffbd;border-radius:22px;grid-template-columns:minmax(64px,80px) minmax(0,1fr) minmax(64px,80px);align-items:center;gap:10px;padding:8px;display:grid;box-shadow:inset 1px 1px #ffffffdb,0 8px 18px #4b7dff14}.schedule-manage-toolbar .shift-month-arrow{width:100%;height:46px}.schedule-manage-toolbar h1{color:#0a1f44;text-align:center;margin:0;font-size:20px;font-weight:900}.schedule-manage-list{gap:12px;padding-bottom:92px;display:grid}.schedule-manage-card{background:radial-gradient(circle at 94% 18%,#60a5fa29 0 16%,#0000 17%),linear-gradient(#fffffff7,#f8fbffe6);border:1px solid #ffffffbd;border-radius:22px;gap:11px;padding:16px;display:grid;box-shadow:inset 1px 1px #ffffffdb,0 12px 24px #4b7dff1a}.schedule-manage-card div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-manage-card span,.schedule-manage-card b{color:#0a1f44;background:#dbeafec7;border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.schedule-manage-card b{background:#60a5fa38}.schedule-manage-card h2,.schedule-manage-card p{margin:0}.schedule-manage-card h2{color:#0a1f44;font-size:16px;font-weight:900;line-height:1.45}.schedule-manage-card p{color:#5f6b82;overflow-wrap:anywhere;font-size:13px;font-weight:800;line-height:1.65}.schedule-manage-fabs{right:max(16px, calc((100vw - var(--app-nav-max-width)) / 2 + 16px), calc(var(--safe-right) + 16px));bottom:calc(var(--app-bottom-nav-height) + var(--safe-bottom) + 18px);z-index:var(--z-fab);justify-items:end;gap:10px;display:grid;position:fixed}.schedule-manage-fab{color:#0a1f44;background:linear-gradient(135deg,#fff,#eaf3ff);border:1px solid #ffffffb3;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:52px;padding:0 18px;font-size:14px;font-weight:900;display:inline-flex;box-shadow:inset 1px 1px #ffffffd6,0 14px 28px #11182729}.schedule-manage-fab.is-secondary{background:linear-gradient(135deg,#fff,#eef2ff)}.schedule-manage-fab span{color:#0a1f44;background:#60a5fa38;border-radius:999px;place-items:center;width:28px;height:28px;font-size:22px;font-weight:400;line-height:1;display:grid}.schedule-entry-form{gap:14px}.schedule-dayoff-form{gap:14px;display:grid}.schedule-dayoff-calendar{background:#fff;border:1px solid #a5b4fc47;border-radius:18px;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.schedule-dayoff-weekday{color:#8b8f98;border-bottom:1px solid #edf0f4;border-right:1px solid #edf0f4;place-items:center;min-height:34px;font-size:12px;font-weight:900;display:grid}.schedule-dayoff-day{color:#0a1f44;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #edf0f4;border-top:0;border-left:0;place-items:center;min-height:clamp(46px,12vw,64px);font-size:16px;font-weight:900;display:grid}.schedule-dayoff-weekday:nth-child(7n),.schedule-dayoff-day:nth-child(7n){border-right:0}.schedule-dayoff-day.is-muted{color:#a8b0bf;background:#f8fafc}.schedule-dayoff-day.is-selected{background:#60a5fa3d;box-shadow:inset 0 0 0 2px #4b7dff5c}.schedule-dayoff-selected{background:#ffffffe0;border:1px solid #ffffffbd;border-radius:16px;gap:10px;padding:12px;display:grid}.schedule-dayoff-selected h2{color:#0a1f44;margin:0;font-size:15px;font-weight:900}.schedule-dayoff-selected div{flex-wrap:wrap;gap:8px;display:flex}.schedule-dayoff-selected span{color:#0a1f44;background:#dbeafed6;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.shift-register-overview{gap:10px;padding-bottom:72px;display:grid;position:relative;overflow:visible}.shift-register-toolbar{background:#ffffffdb;border:1px solid #ffffffb8;border-radius:20px;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:8px;padding:7px;display:grid;box-shadow:inset 1px 1px #ffffffdb,0 8px 18px #4b7dff17}.shift-register-toolbar h1{color:#0a1f44;text-align:center;white-space:nowrap;margin:0;font-size:20px;font-weight:900;line-height:1.1}.shift-register-month-button{-webkit-tap-highlight-color:transparent;background:#eef2ffd6;border-radius:16px;place-items:center;width:48px;height:48px;transition:background .18s,transform .18s;display:grid;box-shadow:inset 1px 1px #ffffffd1}.shift-register-month-button:hover,.shift-register-month-button:focus-visible{background:#dbeafeeb;outline:none;transform:translateY(-1px)}.shift-register-month-button img{filter:grayscale()brightness(.55);pointer-events:none;width:24px;height:24px}.shift-register-campaign-selector{background:#ffffffe0;border:1px solid #ffffffc7;border-radius:18px;grid-template-columns:minmax(0,1fr) 56px;justify-self:stretch;gap:8px;min-width:0;padding:6px;display:grid;box-shadow:inset 1px 1px #ffffffdb,0 8px 18px #4b7dff17}.shift-register-campaign-selector select{color:#0a1f44;text-align-last:center;background:#eef2ffb8;border:0;border-radius:14px;width:100%;min-width:0;min-height:38px;padding:0 12px;font-size:14px;font-weight:900}.shift-register-campaign-selector button{color:#fff;background:linear-gradient(135deg,#4f83ff,#1854d8);border:0;border-radius:14px;min-height:38px;padding:0 10px;font-size:12px;font-weight:900}.shift-register-calendar{background:#fff;border:1px solid #ffffffc7;border-radius:16px;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden;box-shadow:inset 1px 1px #ffffffdb,0 10px 22px #4b7dff1a}.shift-register-weekday,.shift-register-day{border-right:1px solid #a5b4fc2e;min-width:0}.shift-register-weekday:nth-child(7n),.shift-register-day:nth-child(7n){border-right:0}.shift-register-weekday{color:#0a1f44;place-items:center;min-height:32px;font-size:12px;font-weight:900;display:grid}.shift-register-day{color:#0a1f44;-webkit-tap-highlight-color:transparent;align-content:center;place-items:center;gap:2px;min-height:clamp(44px,11.2vw,70px);font-size:clamp(13px,4vw,18px);font-weight:900;transition:background .18s,box-shadow .18s;display:grid}.shift-register-day.is-muted{color:#b6bdc8;background:#eef2ff94}.shift-register-day.is-selected{background:linear-gradient(#eff6fffa,#dbeafed1);box-shadow:inset 0 0 0 2px #60a5fa52}.shift-register-day b{border:2px solid #2496d3;border-radius:50%;width:7px;height:7px}.shift-register-list{scrollbar-width:thin;background:#ffffffe6;border:1px solid #ffffffc7;border-radius:18px;min-height:220px;max-height:min(42vh,520px);padding-bottom:10px;display:grid;overflow:auto;box-shadow:inset 1px 1px #fffc,0 10px 22px #4b7dff1a}.shift-register-date-group h2{z-index:1;color:#0a1f44;background:linear-gradient(90deg,#f6f9fff0,#ffffffe6);border-top:1px solid #a5b4fc2e;border-bottom:1px solid #a5b4fc2e;margin:0;padding:12px 10px;font-size:clamp(16px,4.4vw,22px);font-weight:900;position:sticky;top:0}.shift-register-rows{display:grid}.shift-register-row{color:#0a1f44;text-align:left;cursor:pointer;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#fffffff0;border:0;border-bottom:1px solid #a5b4fc29;grid-template-columns:minmax(72px,.95fr) minmax(112px,1.3fr) auto 18px;align-items:center;gap:10px;width:100%;min-height:58px;padding:8px 10px;transition:background .18s,transform .18s;display:grid}.shift-register-row:hover,.shift-register-row:focus-visible{background:#eff6fff5;outline:none;transform:translateY(-1px)}.shift-register-row__name,.shift-register-row__details,.shift-register-row__status{text-overflow:ellipsis;min-width:0;font-size:clamp(12px,3.3vw,16px);line-height:1.35;overflow:hidden}.shift-register-row__name{white-space:nowrap;font-weight:800}.shift-register-row__details{gap:2px;font-size:clamp(11px,3vw,14px);font-weight:700;display:grid}.shift-register-row__details span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shift-register-row__status{color:#0a1f44;white-space:nowrap;background:#dbeafeb3;border-radius:999px;justify-self:end;min-height:24px;padding:3px 8px;font-size:11px;font-weight:900}.shift-register-row__arrow{color:#2496d3;justify-self:end;font-size:30px;font-weight:600;line-height:1}.shift-detail-summary{gap:14px;display:grid}.shift-detail-summary dl{background:#eff6ffb8;border-radius:16px;gap:10px;margin:0;padding:12px;display:grid}.shift-detail-summary dl div{grid-template-columns:86px minmax(0,1fr);gap:10px;display:grid}.shift-detail-summary dt,.shift-detail-summary dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:13px;line-height:1.55}.shift-detail-summary dt{color:var(--muted);font-weight:900}.shift-detail-summary dd{color:#0a1f44;font-weight:900}.shift-register-add-button{right:max(16px, calc((100vw - var(--app-nav-max-width)) / 2 + 16px), calc(var(--safe-right) + 16px));bottom:calc(var(--app-bottom-nav-height) + var(--safe-bottom) + 18px);z-index:var(--z-fab);color:#0a1f44;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#fff,#e7f2ff);border:1px solid #ffffffb3;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:56px;padding:0 20px;font-size:16px;font-weight:900;display:inline-flex;position:fixed;box-shadow:inset 1px 1px #ffffffe6,0 14px 28px #1118272e}.shift-register-add-button span{background:#60a5fa38;border-radius:999px;place-items:center;width:30px;height:30px;font-size:26px;font-weight:400;line-height:1;display:grid}.shift-builder{gap:14px;display:grid}.shift-builder-selector,.shift-builder-panel{background:linear-gradient(#fffffff5,#f8fbffe0);border:1px solid #ffffffb8;border-radius:24px;gap:14px;min-width:0;padding:16px;display:grid;box-shadow:inset 1px 1px #ffffffdb,0 14px 28px #4b7dff1c}.shift-builder-selector{grid-template-columns:minmax(0,1fr)}.shift-builder-cards{gap:10px;min-width:0;display:grid}.shift-builder-card{background:linear-gradient(#fffffff2,#f4f8ffd1);border:1px solid #a5b4fc3d;border-radius:20px;gap:12px;min-width:0;padding:14px;display:grid;box-shadow:0 8px 18px #4b7dff14}.shift-builder-card h3,.shift-builder-card p{margin:0}.shift-builder-card h3{color:#0a1f44;overflow-wrap:anywhere;font-size:1rem;font-weight:900}.shift-builder-card p{color:var(--muted);overflow-wrap:anywhere;font-size:.84rem;font-weight:800;line-height:1.55}.shift-builder-badge{color:#0a1f44;background:#dbeafedb;border-radius:999px;width:fit-content;margin-top:8px;padding:4px 8px;font-size:.74rem;font-weight:900;display:inline-flex}.shift-builder-actions,.shift-builder-form{gap:10px;min-width:0;display:grid}.shift-builder-actions form{min-width:0;display:grid}.shift-date-staff-list{gap:10px;min-width:0;display:grid}.shift-date-staff-card{color:#0a1f44;background:linear-gradient(#fffffff5,#f4f8ffd1);border:1px solid #a5b4fc3d;border-radius:18px;gap:5px;min-width:0;padding:13px;display:grid;box-shadow:inset 1px 1px #ffffffd1,0 8px 18px #4b7dff14}.shift-date-staff-card:hover,.shift-date-staff-card:focus-visible{background:#eff6fff0;outline:none}.shift-date-staff-card strong,.shift-date-staff-card span,.shift-date-staff-card small{overflow-wrap:anywhere;min-width:0}.shift-date-staff-card strong{font-size:15px;font-weight:900}.shift-date-staff-card span{color:#0b5f73;font-size:13px;font-weight:900}.shift-date-staff-card small{color:#64748b;font-size:12px;font-weight:800;line-height:1.5}.shift-manual-staff-details{gap:10px;min-width:0;display:grid}.shift-manual-staff-details>summary{color:#0a1f44;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fffc;border-radius:999px;align-items:center;width:fit-content;min-height:38px;padding:0 14px;font-size:13px;font-weight:900;list-style:none;display:inline-flex}.shift-manual-staff-details>summary::-webkit-details-marker{display:none}.shift-manual-staff-details[open]>summary{background:#dbeafed1}.shift-date-registered-list{background:#eff6ffa3;border-radius:18px;gap:8px;min-width:0;padding:12px;display:grid}.shift-date-registered-list h2,.shift-date-registered-list p{margin:0}.shift-date-registered-list h2{color:#0a1f44;font-size:14px;font-weight:900}.shift-date-registered-list p{color:#334155;flex-wrap:wrap;justify-content:space-between;gap:8px;min-width:0;font-size:13px;font-weight:800;display:flex}.app-modal{color:#0a1f44;background:0 0;border:0;width:min(100% - 24px,560px);max-height:min(86dvh,720px);margin:auto;padding:0}.app-modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a1f4452}.app-modal__panel{background:linear-gradient(#fffffffa,#f8fbfff5);border:1px solid #ffffffc7;border-radius:22px;grid-template-rows:auto minmax(0,1fr);min-height:0;max-height:min(86dvh,720px);display:grid;overflow:hidden;box-shadow:0 22px 48px #0a1f443d}.app-modal__header{z-index:2;border-bottom:1px solid #a5b4fc38;justify-content:space-between;align-items:center;gap:12px;padding:14px 14px 10px;display:flex;position:relative}.app-modal__header h2{color:#0a1f44;overflow-wrap:anywhere;min-width:0;margin:0;font-size:1rem;font-weight:900}.app-modal__body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;min-height:0;padding:14px 14px calc(18px + env(safe-area-inset-bottom,0px));gap:12px;display:grid;overflow-y:auto}.app-modal__body .shift-detail-summary{min-height:0}.app-modal__body .shift-builder-form{align-content:start;padding-bottom:8px}.app-modal__body .shift-builder-form>.primary-button:last-child{z-index:3;position:sticky;bottom:0;box-shadow:0 -10px 24px #f8fbfff0,0 10px 22px #4b7dff29}.shift-builder-edit{background:#eef5ffb3;border-radius:12px;min-width:0;padding:8px;display:grid}.shift-builder-edit>summary{color:#0a1f44;cursor:pointer;background:#ffffffd1;border-radius:10px;place-items:center;min-height:40px;font-size:.82rem;font-weight:900;list-style:none;display:grid}.shift-builder-edit>summary::-webkit-details-marker{display:none}.shift-builder-edit[open]>summary{background:#dbeafedb}.shift-builder-edit .shift-builder-form{margin-top:10px}.schedule-month-selector{background:#ffffffd6;border:1px solid #7a91d23d;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:12px;display:grid}.submission-reopen-panel{background:#eef5ffb3;border-radius:10px;padding:10px}.submission-reopen-panel summary{color:#0a1f44;cursor:pointer;font-size:.86rem;font-weight:900}.submission-reopen-panel .button-row{margin-top:10px}.shift-campaign-card{gap:12px}.shift-campaign-edit-form{margin-top:10px}.schedule-entry-panel{gap:10px;display:grid}.schedule-entry-panel>summary{color:#0a1f44;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffffe0;border:1px solid #ffffffbd;border-radius:16px;place-items:center;min-height:50px;font-size:14px;font-weight:900;list-style:none;display:grid;box-shadow:inset 1px 1px #ffffffdb,0 8px 18px #4b7dff14}.schedule-entry-panel>summary::-webkit-details-marker{display:none}.schedule-entry-panel[open]>summary{background:#dbeafed1}.schedule-entry-panel .form-card{margin-top:10px}.schedule-fab-modal{right:max(18px, calc((100vw - var(--app-nav-max-width)) / 2 + 18px), calc(var(--safe-right) + 18px));bottom:calc(var(--app-bottom-nav-height) + var(--safe-bottom) + 20px);z-index:var(--z-fab);position:fixed}.schedule-fab-modal>summary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4b7dff,#1155df);border-radius:999px;place-items:center;width:58px;height:58px;font-size:34px;font-weight:500;line-height:1;list-style:none;display:grid;box-shadow:0 12px 24px #11182738}.schedule-fab-modal>summary::-webkit-details-marker{display:none}.schedule-fab-modal__panel{right:max(12px, var(--safe-right));bottom:calc(var(--app-bottom-nav-height) + var(--safe-bottom) + 88px);left:max(12px, var(--safe-left));background:#fff;border-radius:16px;gap:12px;max-height:min(72dvh,640px);padding:12px;display:grid;position:fixed;overflow-y:auto;box-shadow:0 18px 36px #11182738}@media (min-width:760px){.shift-page{padding-inline:18px}.schedule-calendar-panel,.schedule-day-panel,.shift-submit-shell{padding:16px}.shift-month-calendar,.shift-submit-calendar{gap:8px}.shift-month-day{min-height:128px}.shift-submit-day{min-height:72px}.calendar-chip,.calendar-more{font-size:.72rem}.schedule-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shift-builder-selector{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr) auto;align-items:end}.shift-builder-card{grid-template-columns:minmax(0,1fr) minmax(240px,.78fr);align-items:start}.shift-submit-lesson-row{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end}.schedule-fab-modal__panel{width:min(720px,100vw - 32px);left:50%;transform:translate(-50%)}}.inline-control-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (max-width:719px){.staff-management-page{padding-top:18px}.staff-management-page .page-title{font-size:1.35rem}.staff-management-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.staff-summary-card{border-radius:16px;padding:12px 10px}.staff-summary-card span{white-space:nowrap;font-size:10px}.staff-summary-card strong{font-size:22px}.staff-table-panel{border-radius:20px;padding:12px}.staff-table-panel .home-card__header{align-items:center;margin-bottom:10px}.staff-table-panel .table-scroll{margin:0;padding:0;overflow-x:visible}.staff-data-table{border-collapse:separate;border-spacing:0;min-width:0;display:block}.staff-data-table thead{display:none}.staff-data-table tbody,.staff-data-table tr,.staff-data-table td{width:100%;display:block}.staff-data-table tr{background:linear-gradient(#fffffff0,#f8fbffdb),#fff;border:1px solid #a5b4fc38;border-radius:18px;padding:10px 12px;box-shadow:inset 1px 1px #fffc,0 8px 16px #4b7dff14}.staff-data-table tr+tr{margin-top:10px}.staff-data-table td{overflow-wrap:anywhere;background:0 0;border:0;border-bottom:1px solid #a5b4fc24;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:10px 0;display:grid}.staff-data-table td:before{content:attr(data-label);color:var(--muted);font-size:.76rem;font-weight:900}.staff-data-table td:last-child{border-bottom:0;padding-bottom:0}.staff-data-table td:first-child,.staff-data-table td:last-child{border-left:0;border-right:0;border-radius:0}.staff-data-table .empty-table-cell{padding:18px 0;display:block}.staff-data-table .empty-table-cell:before{content:none}.staff-data-table .inline-control-form,.staff-action-row{width:100%}.staff-data-table .inline-control-form{grid-template-columns:minmax(0,1fr) auto;display:grid}.staff-action-row{grid-template-columns:minmax(0,1fr);display:grid}.staff-action-row .inline-control-form{grid-template-columns:minmax(0,1fr) auto}.staff-action-row form:not(.inline-control-form),.staff-action-row form:not(.inline-control-form) button{width:100%}.staff-data-table .compact-select{width:100%;min-width:0}.staff-data-table .compact-input,.staff-ledger-person,.staff-note-form{min-width:0}.staff-note-form{grid-template-columns:minmax(0,1fr)}}.ghost-link{border:1px solid var(--border);min-height:42px;color:var(--brand-strong);border-radius:8px;align-items:center;padding:0 14px;font-weight:800;display:inline-flex}.check-field{color:var(--muted);align-items:center;gap:8px;font-weight:800;display:flex}.fieldset{border:1px solid var(--border);border-radius:8px;gap:12px;margin:0;padding:14px;display:grid}.fieldset legend{color:var(--muted);padding:0 6px;font-size:.82rem;font-weight:900}.side-nav-shell{display:none}.side-nav{gap:14px;display:grid}.side-nav__group{gap:8px;display:grid}.side-nav__group h2{color:#0a1f44;background:#ffffffc2;border-radius:999px;width:fit-content;margin:0;padding:5px 11px;font-size:.78rem;font-weight:900;line-height:1.2;box-shadow:inset 1px 1px #ffffffdb}.side-nav__links{gap:8px;display:grid}.side-nav__item{color:#0a1f44;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;background:linear-gradient(#fffffffa,#f8fbffeb),#fff;border:1px solid #ffffffb3;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:0 14px;font-size:14px;font-weight:800;line-height:1.2;transition:box-shadow .22s,background .22s,transform .26s cubic-bezier(.16,1,.3,1);display:flex;box-shadow:inset 1px 1px #ffffffeb,0 8px 18px #4b7dff14}.side-nav__item:hover,.side-nav__item:focus-visible{outline:none;transform:translateY(-1px);box-shadow:0 12px 24px #4b7dff29}.side-nav__item[data-active=true]{background:linear-gradient(#dbeafef5,#cde1fcdb),#fff;box-shadow:inset 1px 1px #ffffffe6,0 10px 22px #4b7dff24}.side-nav__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.side-nav__arrow{color:#4b7dff;flex:none;font-size:22px;line-height:1}.bottom-nav-shell{z-index:var(--z-bottom-nav);width:min(100%, var(--app-nav-max-width));height:var(--app-bottom-nav-visible-height);padding:16px max(25px, var(--safe-right)) max(14px, var(--safe-bottom)) max(25px, var(--safe-left));backface-visibility:hidden;contain:layout paint;box-shadow:none;pointer-events:none;background:0 0;border-radius:0;flex-direction:column;align-items:center;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:visible;transform:translateZ(0)}.bottom-nav{-webkit-backdrop-filter:blur(24px)saturate(1.7)brightness(1.06);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:auto;background:radial-gradient(circle at 28% 16%,#ffffffdb 0 18%,#0000 42%),linear-gradient(#ffffff94,#ffffff42),#ffffff52;border:1px solid #ffffff80;border-radius:999px;flex:auto;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;height:62px;padding:4px;transition:transform .26s cubic-bezier(.16,1,.3,1),box-shadow .26s,background .26s;display:grid;position:relative;box-shadow:inset 0 1px 1px #ffffffeb,inset 0 -1px #ffffff52,inset 0 0 0 1px #fff3,0 10px 28px #4b7dff29,0 2px 10px #ffffff38}.bottom-nav-liquid-row{pointer-events:auto;align-items:center;gap:16px;width:min(100%,352px);display:flex}.bottom-nav__active-indicator{z-index:0;opacity:1;pointer-events:none;will-change:transform, filter;background:linear-gradient(#ffffffb8,#edf4ff9e),#edededd6;border-radius:999px;width:calc(33.3333% - 2.66667px);transition:transform .42s cubic-bezier(.16,1,.3,1),opacity .24s,scale .24s,filter .24s,box-shadow .24s;position:absolute;top:4px;bottom:4px;left:4px;scale:1;box-shadow:inset 0 1px #ffffffdb,inset 0 -1px #ffffff47,0 4px 14px #4b7dff1f}.bottom-nav[data-menu-active=true] .bottom-nav__active-indicator{opacity:0;filter:blur(4px)}.bottom-nav:has(.bottom-nav__item:active){transform:scale(.985);box-shadow:inset 0 1px 1px #ffffffd1,inset 0 -1px #ffffff38,inset 0 0 0 1px #ffffff2e,0 8px 22px #4b7dff21}.bottom-nav:has(.bottom-nav__item:active) .bottom-nav__active-indicator{filter:brightness(1.05)saturate(1.2);scale:.94}.bottom-nav__item{z-index:1;color:#0a1f44c7;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:0 0;border:0;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;height:54px;font-size:8px;font-weight:700;line-height:1;transition:color .24s,transform .24s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.bottom-nav-menu-button{color:#0a1f44d1;-webkit-backdrop-filter:blur(24px)saturate(1.7)brightness(1.06);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 32% 18%,#ffffffdb 0 20%,#0000 44%),linear-gradient(#ffffff94,#ffffff42),#ffffff52;border:1px solid #ffffff80;border-radius:999px;flex:0 0 62px;place-items:center;width:62px;height:62px;transition:color .24s,transform .26s cubic-bezier(.16,1,.3,1),box-shadow .26s,background .26s;display:grid;position:relative;box-shadow:inset 0 1px 1px #ffffffeb,inset 0 -1px #ffffff52,inset 0 0 0 1px #fff3,0 10px 28px #4b7dff29,0 2px 10px #ffffff38}.bottom-nav-menu-button:before{border-radius:inherit;content:"";opacity:0;background:linear-gradient(#ffffffb3,#edf4ff9e),#edededd6;transition:opacity .26s,transform .42s cubic-bezier(.16,1,.3,1);position:absolute;inset:4px;transform:scale(.88);box-shadow:inset 0 1px #ffffffdb,inset 0 -1px #ffffff47,0 4px 14px #4b7dff1f}.bottom-nav-menu-button:hover,.bottom-nav-menu-button:focus-visible{color:#08f;outline:none}.bottom-nav-menu-button:active{background:radial-gradient(circle,#ffffffbd 0 22%,#0000 52%),linear-gradient(#ffffff7a,#ffffff38),#ffffff42;transform:scale(.9);box-shadow:inset 0 1px 1px #ffffffc2,inset 0 -1px #ffffff38,inset 0 0 0 1px #ffffff29,0 8px 22px #4b7dff21}.bottom-nav-menu-button[data-active=true]{color:#08f}.bottom-nav-menu-button[data-active=true]:before{opacity:1;transform:scale(1)}.bottom-nav-menu-button .bottom-nav__icon{z-index:1;width:25px;height:25px;position:relative}.bottom-nav__item:before{display:none}.bottom-nav__item[data-active=true]{box-shadow:none;color:#08f;background:0 0}.bottom-nav__item[data-active=true]:before{opacity:0}.bottom-nav__item:active{color:#006fd1;transform:scale(.9)}.bottom-nav__item:hover,.bottom-nav__item:focus-visible{color:#08f;background:0 0;outline:none}.bottom-nav__icon{fill:currentColor;opacity:.86;filter:drop-shadow(0 1px #ffffff75);pointer-events:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;will-change:opacity, transform;width:22px;height:22px;transition:opacity .22s,transform .36s cubic-bezier(.16,1,.3,1),filter .22s;display:block;transform:translateY(0)scale(1)}.bottom-nav__item[data-active=true] .bottom-nav__icon{opacity:1;filter:drop-shadow(0 1px #fff9)drop-shadow(0 5px 10px #08f3);transform:translateY(-1px)scale(1.07)}.bottom-nav__item[data-active=false] .bottom-nav__icon{opacity:.78}.bottom-nav-menu-button .bottom-nav__icon{width:25px;height:25px}.bottom-nav-menu-button[data-active=true] .bottom-nav__icon{opacity:1;filter:drop-shadow(0 1px #fff9)drop-shadow(0 5px 10px #08f3);transform:translateY(-1px)scale(1.07)}.bottom-nav__label{z-index:1;clip:auto;clip-path:none;color:#1a1a1a;opacity:.82;pointer-events:none;white-space:nowrap;width:auto;height:auto;font-size:10px;font-weight:700;line-height:12px;transition:color .22s,opacity .22s,transform .26s cubic-bezier(.16,1,.3,1);position:relative;overflow:visible}.bottom-nav__item[data-active=true] .bottom-nav__label{color:#08f;opacity:1;transform:translateY(-1px)}.bottom-nav-menu-button .bottom-nav__label{clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.bottom-nav-copyright{color:#0a1f44b3;text-align:center;pointer-events:none;background:0 0;place-items:center;height:24px;margin:0;font-size:8px;font-weight:400;line-height:1;display:grid}@media (prefers-reduced-motion:reduce){.topbar,.bottom-nav__item,.bottom-nav-menu-button,.side-nav__item,.bottom-nav__active-indicator,.bottom-nav__icon,.bottom-nav__label,.bottom-nav__item:before,.task-tabs:before,.task-tabs a,.task-tabs a:before,.shift-month-arrow,.shift-month-arrow:before,.shift-month-arrow img,.shift-scope-tabs a,.shift-scope-tabs:before,.shift-scope-tabs a:before,.route-loading-spinner,.fab-button,.task-create-fab,.task-create-fab:before,.task-create-fab__halo,.task-create-fab__icon,.task-fab__icon,.task-update-fab,.task-update-fab:before,.month-picker-sheet,.month-picker-grid button,.shift-month-title-button,.bottom-sheet-layer,.bottom-sheet-backdrop,.bottom-sheet,.task-category-option,.task-category-option:after{transition:none;animation:none}}.drawer-layer{z-index:var(--z-drawer);position:fixed;inset:0}.drawer-backdrop{background:#1118276b;border:0;position:absolute;inset:0}.side-drawer{border-left:1px solid var(--border);background:var(--surface);grid-template-rows:auto 1fr auto;width:min(340px,88vw);display:grid;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 28px #1118272e}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:18px;display:flex}.drawer-header div{gap:2px;display:grid}.drawer-header .brand__name{color:#061833;font-size:1rem;font-weight:900}.drawer-header .brand__label{color:var(--muted);font-size:.78rem;font-weight:700}.drawer-nav{align-content:start;padding:10px;display:grid}.drawer-nav a{color:var(--foreground);border-radius:8px;padding:14px 12px;font-weight:800}.drawer-nav a:hover,.drawer-nav a:focus-visible{background:var(--surface-strong);color:var(--brand-strong);outline:none}.drawer-footer{border-top:1px solid var(--border);padding:14px}.drawer-footer button{width:100%}@media (min-width:720px){.shell{padding-top:calc(var(--app-header-height) + var(--safe-top) + 8px);padding-bottom:calc(var(--app-bottom-nav-height) + var(--safe-bottom) + 16px)}.desktop-nav{display:none}.bottom-nav-shell{display:flex}.page{padding:34px 24px 64px}:is(.page:has(.management-layout),.page:has(.settings-stack),.page:has(.table-panel),.page:has(.schedule-calendar-panel),.page:has(.schedule-day-panel),.page:has(.shift-submit-shell)){width:var(--app-page-width)}.status-strip{grid-template-columns:repeat(3,1fr)}.card-grid,.form-two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-page{padding-top:54px}.management-layout{grid-template-columns:340px minmax(0,1fr)}.split-tables{grid-template-columns:repeat(2,minmax(0,1fr))}.task-filter-bar{grid-template-columns:minmax(0,1.2fr) minmax(180px,.8fr) auto auto;align-items:end}.substitution-share-card{grid-template-columns:280px minmax(0,1fr);align-items:center}.substitution-share-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.roster-sections{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}@media (min-width:1024px){:root{--app-page-width:min(var(--app-page-desktop-width), calc(100vw - var(--app-side-nav-width) - 64px));--app-bottom-nav-height:0px;--app-bottom-nav-visible-height:0px}:is(body:has(.shift-month-page),body:has(.shift-day-page)){width:auto;height:auto;min-height:100dvh;position:static;inset:auto;overflow:hidden auto}.shell{padding-left:calc(var(--app-side-nav-width) + var(--safe-left) + 28px);padding-bottom:32px}.shell:has(.shift-month-page){justify-content:initial;height:auto;min-height:100dvh;padding-left:calc(var(--app-side-nav-width) + var(--safe-left) + 28px);padding-top:calc(var(--app-header-height) + var(--safe-top) + 16px);padding-bottom:32px;display:block;overflow:visible}.shell:has(.shift-day-page){justify-content:initial;height:auto;min-height:100dvh;padding-left:calc(var(--app-side-nav-width) + var(--safe-left) + 28px);padding-top:calc(var(--app-header-height) + var(--safe-top) + 16px);padding-bottom:32px;display:block;overflow:visible}.topbar__inner{width:calc(100vw - var(--app-side-nav-width) - var(--safe-left) - var(--safe-right) - 56px);margin-right:calc(var(--safe-right) + 28px);margin-left:calc(var(--app-side-nav-width) + var(--safe-left) + 28px);padding-left:32px;padding-right:32px}.topbar-actions,.role-chip{background:0 0}.topbar-logout-form{display:block}.page{width:var(--app-page-width)}.home-dashboard{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;gap:16px}.home-hero-panel,.home-section--announcements{grid-column:1/-1}.home-hero-panel{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.home-daily-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.home-date-card{grid-column:1/-1;min-height:86px}.home-date-card time{font-size:26px}.home-section--schedule,.home-section--shifts{grid-column:span 3;min-height:188px}.home-daily-panel .home-section--schedule,.home-daily-panel .home-section--shifts{grid-column:auto}.home-list-item,.home-announcement-item{grid-template-columns:auto minmax(0,1fr)}.home-list-item time,.home-announcement-item time{grid-column:2}.home-task-metrics{grid-column:1/-1;align-self:stretch}.budget-page{gap:16px}.budget-card{padding:20px}.budget-card__header h2{font-size:20px}.budget-card__header>strong{font-size:28px}.budget-metrics{gap:10px}.page.shift-page{width:var(--app-page-width)}.page:has(.management-layout){width:var(--app-page-width)}.page:has(.settings-stack){width:var(--app-page-width)}.page:has(.table-panel){width:var(--app-page-width)}.page:has(.schedule-calendar-panel){width:var(--app-page-width)}.page:has(.schedule-day-panel){width:var(--app-page-width)}.page:has(.shift-submit-shell){width:var(--app-page-width)}.bottom-nav-shell{display:none}.side-nav-shell{top:calc(var(--app-header-height) + var(--safe-top) + 16px);bottom:24px;left:calc(var(--safe-left) + 16px);z-index:calc(var(--z-header) - 1);width:var(--app-side-nav-width);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe0;border-radius:24px;display:block;position:fixed;overflow:hidden;box-shadow:inset 2px 3px 7px #a5b4fc2e,0 18px 36px #1d2f5b24}.side-nav{scrollbar-width:thin;max-height:100%;padding:12px;overflow-y:auto}.shift-month-page{width:var(--app-page-width);height:auto;min-height:calc(100dvh - var(--app-header-height) - var(--safe-top) - 56px);touch-action:auto;margin:0 auto;padding:18px 0 40px;position:static;top:auto;left:auto;overflow:visible;transform:none}.shift-month-frame{height:auto;min-height:calc(100dvh - var(--app-header-height) - var(--safe-top) - 114px);grid-template-rows:56px minmax(520px,1fr);gap:14px;overflow:visible}.shift-month-switcher{border-radius:20px;grid-template-columns:112px minmax(0,1fr) minmax(180px,220px) 112px;min-height:56px}.shift-day-switcher{border-radius:20px;grid-template-columns:148px minmax(0,1fr) 80px;min-height:56px}.shift-month-arrow--desktop{display:grid}.shift-month-swipe-hint{display:none}.shift-month-switcher h1,.shift-day-switcher h1{font-size:18px}.month-picker-backdrop{place-items:center}.month-picker-sheet{border-radius:22px}.shift-month-arrow{border-radius:16px;height:48px}.shift-month-board{border-radius:22px;min-height:520px}.shift-scope-tabs{border-radius:16px;justify-self:end;width:100%;height:48px}.shift-scope-tabs a{height:42px;font-size:12px}.shift-scope-tabs img{width:22px;height:22px}.shift-month-cell__day,.shift-month-board .shift-month-weekday{font-size:13px}.shift-month-cell strong,.shift-month-cell small,.shift-month-cell b{font-size:9px}.shift-day-page{width:var(--app-page-width);height:auto;max-height:none;min-height:calc(100dvh - var(--app-header-height) - var(--safe-top) - 56px);margin:0 auto;padding:18px 0 40px;overflow:visible}.shift-day-frame{height:auto;min-height:calc(100dvh - var(--app-header-height) - var(--safe-top) - 114px);grid-template-rows:56px minmax(620px,1fr);gap:14px;overflow:visible}.shift-day-card{border-radius:22px;min-height:620px;padding:14px}.shift-day-chip{border-radius:14px;height:34px;font-size:11px}.shift-day-back-button{border-radius:14px;width:148px;height:42px;font-size:13px}.shift-day-back-button__short{display:none}.shift-day-back-button__long{display:inline}.shift-day-events{grid-auto-columns:minmax(180px,1fr);gap:10px;padding:4px 6px 10px}.shift-day-event-card,.shift-day-event-empty{border-radius:14px;padding:10px 12px}.shift-day-event-card strong{font-size:13px}.shift-day-timeline{max-height:min(720px, calc(100dvh - var(--app-header-height) - var(--safe-top) - 190px))}.shift-register-overview{grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);align-items:start;overflow:visible}.shift-register-toolbar{border-radius:22px;grid-column:1/-1;grid-template-columns:52px minmax(0,1fr) 52px}.shift-register-campaign-selector{grid-column:1/-1;justify-self:center;max-width:520px}.shift-register-month-button{width:52px;height:52px}.shift-register-calendar{border-right:1px solid #a5b4fc2e}.shift-register-day{min-height:90px}.shift-register-list{max-height:min(720px, calc(100dvh - var(--app-header-height) - var(--safe-top) - 160px));padding-bottom:92px;overflow-y:auto}.shift-builder{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.shift-builder>.ghost-button,.shift-builder-selector,.shift-builder-panel:first-of-type{grid-column:1/-1}.shift-builder-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.shift-date-staff-list{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-manage-page,.schedule-management-panel{gap:18px}.schedule-manage-list{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-entry-form,.schedule-dayoff-form>.form-card{width:min(100%,720px)}.schedule-fab-modal,.schedule-manage-fabs,.shift-register-add-button{right:calc(var(--safe-right) + 24px)}.fab-button,.task-create-fab,.task-update-fab{right:calc(var(--safe-right) + 24px);bottom:calc(var(--safe-bottom) + 24px)}.bottom-sheet,.task-create-sheet,.task-detail-sheet,.task-time-modal__panel,.time-wheel-sheet,.month-picker-sheet,.account-avatar-modal__panel,.shift-confirm-modal,.app-modal,.pwa-install-dialog{width:min(1023px,100vw - 32px)}.bottom-sheet,.task-create-sheet,.task-detail-sheet{border-radius:28px;max-height:min(82vh,720px)}.task-time-modal__grid{grid-template-columns:repeat(5,minmax(0,1fr))}.time-wheel-backdrop,.month-picker-backdrop,.account-avatar-modal,.shift-confirm-backdrop{place-items:center}.time-wheel-backdrop{align-items:center}.schedule-fab-modal__panel{width:min(1023px,100vw - 32px);left:auto;right:50%;transform:translate(50%)}.task-create-sheet .task-category-grid,.task-detail-sheet .task-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:1023px){.bottom-sheet-layer{padding-inline:0}.bottom-sheet,.task-create-sheet,.task-detail-sheet{border-left:0;border-right:0;width:100vw;max-width:none;margin-inline:0}.task-time-modal{padding-left:0;padding-right:0}.task-time-modal__panel{border-left:0;border-right:0;border-radius:28px 28px 0 0;width:100vw;max-width:none}.time-wheel-backdrop,.month-picker-backdrop,.account-avatar-modal{padding-left:0;padding-right:0}.time-wheel-sheet,.month-picker-sheet,.account-avatar-modal__panel{border-left:0;border-right:0;border-radius:28px 28px 0 0;width:100vw;max-width:none;margin-inline:0}.shift-month-picker-backdrop{padding:calc(18px + var(--safe-top)) max(16px, var(--safe-right)) calc(18px + var(--safe-bottom)) max(16px, var(--safe-left));place-items:center}.shift-month-picker-sheet{width:min(420px, calc(100vw - var(--safe-left) - var(--safe-right) - 32px));border-left:1px solid #ffffffd1;border-right:1px solid #ffffffd1;border-radius:28px;max-width:420px;margin-inline:auto}.shift-confirm-backdrop{padding-left:0;padding-right:0}.shift-confirm-modal{border-left:0;border-right:0;border-radius:22px 22px 0 0;width:100vw;max-width:none}.app-modal{width:100vw;max-width:none;max-height:calc(100dvh - var(--safe-top));margin:auto 0 0}.app-modal__panel{max-height:calc(100dvh - var(--safe-top));border-left:0;border-right:0;border-radius:24px 24px 0 0}}@media (max-width:640px){.form-two-columns,.shift-submit-pair,.schedule-month-selector,.shift-register-campaign-selector,.announcement-detail-info,.announcement-admin-card dl,.admin-filter-bar,.notification-admin-layout{grid-template-columns:minmax(0,1fr)}.quarter-datetime,.field,.field input,.field select,.field textarea,.schedule-dayoff-form input[type=month],.announcement-admin-form,.shift-campaign-create-card,.shift-campaign-edit-form,.schedule-entry-form,.schedule-dayoff-form>.form-card{width:100%;max-width:100%}.shift-campaign-card .button-row,.submission-reopen-panel .button-row{grid-template-columns:minmax(0,1fr)}}@media (max-width:430px){:root{--page-side-padding:12px;--auth-side-padding:24px}.topbar__inner{padding-left:24px;padding-right:24px}.form-two-columns,.shift-submit-pair,.shift-confirm-actions,.time-pair-select,.announcement-detail-info,.announcement-admin-card dl{grid-template-columns:minmax(0,1fr)}.budget-hero{flex-direction:column;align-items:stretch}.budget-hero__link{width:fit-content}.budget-card__header,.budget-staff-row{grid-template-columns:minmax(0,1fr)}.budget-card__header>strong,.budget-staff-row b{justify-self:start}.budget-metrics{grid-template-columns:minmax(0,1fr)}.account-hero-card{border-radius:22px;align-items:center;padding:14px}.account-avatar-button{flex-basis:88px;width:88px;height:88px}.account-avatar-camera{width:29px;height:29px}.account-avatar-copy strong{font-size:19px}.account-role-badge{min-width:74px;padding:8px 9px}.account-avatar-modal__panel{border-radius:24px;padding:14px}.account-avatar-modal__header{grid-template-columns:76px minmax(0,1fr) 76px}.account-avatar-modal__actions{grid-template-columns:minmax(0,1fr)}.roster-hero,.roster-browser,.roster-tools{border-radius:20px}.roster-tools,.roster-search{grid-template-columns:minmax(0,1fr)}.roster-search .ghost-button,.roster-search .ghost-link{justify-content:center;width:100%}.roster-card__meta{grid-template-columns:minmax(0,1fr)}.task-index-actions{grid-template-columns:minmax(0,1fr) auto;gap:8px}.task-due-time-input{grid-template-columns:minmax(0,1fr)}.task-time-modal__header{grid-template-columns:78px minmax(0,1fr) 78px}.task-time-modal__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.task-filter-panel{grid-template-columns:minmax(0,1fr)}.task-filter-panel[open]>summary{max-width:calc(100% - 142px)}.task-index-actions>.ghost-link,.task-filter-panel>summary{max-width:100%;padding-inline:11px}.task-filter-button span:last-child,.task-index-actions>.ghost-link{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.task-filter-bar{grid-column:1;padding:11px}.shift-register-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;min-height:72px;padding:10px 12px}.shift-register-row__name,.shift-register-row__details{grid-column:1}.shift-register-row__status{grid-area:1/2/span 2;align-self:center}.shift-register-row__arrow{display:none}.shift-register-campaign-selector,.schedule-month-selector{grid-template-columns:minmax(0,1fr)}.schedule-manage-toolbar{grid-template-columns:minmax(64px,80px) minmax(0,1fr) minmax(64px,80px)}.schedule-manage-toolbar .shift-month-arrow{height:46px}.schedule-manage-toolbar h1,.shift-register-toolbar h1{text-overflow:ellipsis;font-size:18px;overflow:hidden}.time-wheel-sheet__header{gap:6px}.time-wheel-sheet__header .ghost-button,.time-wheel-sheet__header .primary-button{min-height:38px;padding-inline:8px;font-size:12px}.login-logo{width:168px;margin-bottom:28px}.login-check{margin-left:8px}.substitution-lesson{padding-left:14px;padding-right:14px}.task-list-card{grid-template-columns:40px minmax(0,1fr);align-items:start}.task-list-card__status{grid-column:2;grid-template-columns:repeat(2,max-content);justify-content:start;justify-items:start;min-width:0}}@media (max-width:640px){.app-modal{width:100%;max-width:none;max-height:calc(100dvh - var(--safe-top));margin:auto 0 0}.app-modal__panel{max-height:calc(100dvh - var(--safe-top));border-radius:24px 24px 0 0}}@media (min-width:1040px){.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}:is(.bottom-sheet-layer:has(.task-create-sheet),.bottom-sheet-layer:has(.task-detail-sheet)){animation:.22s both task-modal-layer-fade}:is(.bottom-sheet-layer:has(.task-create-sheet) .bottom-sheet-backdrop,.bottom-sheet-layer:has(.task-detail-sheet) .bottom-sheet-backdrop){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:radial-gradient(circle at 50% 100%,#60a5fa2e,#0000 44%),#0a1f4442}.bottom-sheet.task-create-sheet,.bottom-sheet.task-detail-sheet{background:radial-gradient(circle at 18% 0,#dbeafead,#0000 32%),linear-gradient(#fffffffc,#f8fbfffa),#fff;border-color:#ffffffd1;animation:.36s cubic-bezier(.16,1,.3,1) both task-sheet-soft-in;box-shadow:inset 1px 1px #fffffff0,0 -22px 48px #0a1f4433}.task-detail-sheet__body{overscroll-behavior:contain;scrollbar-width:thin;max-height:calc(min(82vh,720px) - 82px);padding-bottom:4px;overflow-y:auto}.task-category-option{transform-origin:50%}.task-category-option:hover,.task-category-option:focus-visible{transform:translateY(-2px)}.task-category-option:active{transform:translateY(0)scale(.98)}.task-update-panel{border-radius:20px}@keyframes task-modal-layer-fade{0%{opacity:0}to{opacity:1}}@keyframes task-sheet-soft-in{0%{opacity:0;transform:translateY(18px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.task-index-page,.task-detail-page{--task-ink:#081b3a;--task-muted:#68758a;--task-blue:#4b7dff;--task-soft-blue:#dceaff;--task-line:#8ea2ff38;--task-glass:#ffffffd1;gap:14px}.task-tab-swipe-frame{gap:14px}.task-tabs{background:linear-gradient(#ffffff5c,#e5ecff7a),#dbe4ffa3;border:1px solid #ffffffa3;border-radius:22px;gap:5px;padding:7px;box-shadow:inset 1px 1px #ffffffb3,0 10px 24px #4b7dff1a}.task-tabs:before{background:linear-gradient(#fff,#eff6ffe6),#fff;border-radius:17px;width:calc(25% - 7.25px);top:7px;bottom:7px;left:7px;box-shadow:inset 0 1px #ffffffe6,0 8px 18px #4b7dff17}.task-tabs a{color:#081b3ac2;border-radius:17px;grid-template-columns:minmax(0,auto) auto;gap:6px;min-height:44px;font-size:13px}.task-tabs a.is-active{color:var(--task-ink)}.task-tabs a b{color:#081b3a9e;background:#ffffff8f;min-width:22px;height:22px;font-size:11px}.task-tabs a.is-active b{color:#1557d9;background:#4b7dff24}.task-index-actions{grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:2px}.task-filter-panel>summary,.task-index-actions>.ghost-link{background:linear-gradient(#fffffff5,#f9fbffdb),#fff;border:1px solid #ffffffb3;height:46px;min-height:46px;box-shadow:inset 1px 1px #ffffffe6,0 10px 22px #4b7dff17}.task-filter-panel[open]>summary{max-width:calc(100% - 158px)}.task-filter-button{gap:9px}.task-filter-button img{width:21px;height:21px}.task-filter-bar{background:linear-gradient(#ffffffe0,#f7faffd1),#fff;border:1px solid #ffffffb8;border-radius:20px;grid-template-columns:minmax(0,1.2fr) minmax(150px,.8fr) auto auto;align-items:end;gap:10px;padding:14px;box-shadow:inset 1px 1px #ffffffe6,0 12px 26px #4b7dff1a}.task-filter-bar label{color:var(--task-ink);gap:7px}.task-filter-bar input{border-color:#8ea2ff47;border-radius:15px;min-height:46px;font-weight:700;box-shadow:inset 0 1px #0a1f4408}.task-filter-bar .ghost-button,.task-filter-bar .ghost-link{border-radius:15px;min-height:46px}.task-list{gap:12px;margin-top:4px}.task-list-card{background:linear-gradient(#fffffffa,#fbfdfff0),#fff;border:1px solid #ffffffc2;border-radius:22px;grid-template-columns:48px minmax(0,1fr) auto;gap:13px;padding:15px;position:relative;overflow:hidden;box-shadow:inset 1px 1px #fffffff0,0 11px 24px #4b7dff1a}.task-list-card:after{border-radius:inherit;content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,#4b7dff1a,#0000 34%);transition:opacity .18s;position:absolute;inset:0}.task-list-card:hover:after,.task-list-card:focus-visible:after{opacity:1}.task-list-card[data-overdue=true]{background:linear-gradient(90deg,#f87171e0 0 5px,#0000 5px),linear-gradient(#fff,#fff7f7eb);border-color:#f8717175}.task-list-card__icon{background:linear-gradient(180deg, #eff6ffeb, #dbeafebd), var(--task-soft-blue);border-radius:17px;width:48px;height:48px;box-shadow:inset 1px 1px #ffffffdb}.task-list-card__icon img{width:31px;height:31px}.task-list-card__main{gap:7px}.task-list-card h2{color:var(--task-ink);font-size:17px;line-height:1.28}.task-list-card__meta{color:var(--task-muted);gap:6px 12px;font-size:12px}.task-list-card__categories{gap:6px}.task-list-card__categories span{color:#081b3ad6;background:#eff6ffe6;border-color:#8ea2ff33;max-width:124px;min-height:24px;font-size:10px}.task-list-card__categories span[data-status=COMPLETED]{color:#166534;background:#f0fdf4e6;border-color:#86efac3d}.task-list-card__status{gap:7px}.task-list-card__status span,.task-list-card__status strong{border:1px solid #0000;min-height:28px;font-size:12px}.task-list-card__status span{background:#dbeafecc;border-color:#60a5fa29}.task-list-card__status span[data-status=NOT_STARTED]{color:#475569;background:#f1f5f9eb;border-color:#94a3b82e}.task-list-card__status strong{border-color:#fbbf2433}.task-card,.task-detail-note,.orientation-detail-card,.task-category-progress,.task-history,.task-new-form,.task-update-panel{background:linear-gradient(#fffffffa,#f9fbfff0),#fff;border-color:#ffffffbd;box-shadow:inset 1px 1px #ffffffeb,0 12px 26px #4b7dff1a}.task-detail-page{gap:14px;padding-top:12px}.task-detail-hero{gap:11px}.task-detail-back,.task-detail-delete-button,.task-detail-action-spacer{width:104px;height:36px}.task-detail-back,.task-detail-delete-button{background:linear-gradient(#fffffffa,#f8fbffe0),#fff;border:1px solid #ffffffc2;box-shadow:inset 1px 1px #ffffffeb,0 9px 20px #4b7dff1a}.task-detail-back img{width:31px;height:31px}.task-detail-delete-button{color:#a61d1d;border-color:#f8717133}.task-detail-title-card{border-radius:24px;min-height:118px;padding:18px;position:relative;overflow:hidden}.task-detail-title-card:before{content:"";pointer-events:none;background:#dbeafe94;border-radius:999px;width:128px;height:128px;position:absolute;top:-52px;right:-48px}.task-detail-title-card__icon{width:32px;height:32px;position:relative}.task-detail-title-card>span{color:#2764df;font-size:12px;position:relative}.task-detail-title-card h1{max-width:min(100%,560px);color:var(--task-ink);font-size:clamp(22px,4.8vw,30px);position:relative}.task-detail-hero__badges{gap:8px;position:relative}.task-detail-hero__badges span{background:#eff6ffe0;min-height:25px}.task-detail-note,.orientation-detail-card,.task-category-progress{border-radius:22px;padding:16px}.task-detail-note__header h2,.task-history__heading h2{background:#dbeafed1;min-width:126px;min-height:28px;font-size:14px}.task-detail-facts,.orientation-info-grid{gap:9px}.task-detail-facts p,.orientation-info-grid p{grid-template-columns:minmax(108px,.32fr) minmax(0,1fr);gap:9px}.task-detail-facts span,.orientation-info-grid span{color:#081b3ad1;background:#dbeafeb8;border:1px solid #60a5fa1a;justify-content:center;font-size:12px}.task-detail-facts strong,.orientation-info-grid strong{color:var(--task-ink);background:#f8fbffdb;border-color:#8ea2ff2e;align-items:flex-start;font-size:13px;font-weight:500}.task-card-meta{color:var(--task-muted);border-top:1px solid #8ea2ff29;padding-top:10px;font-size:12px}.task-category-progress{gap:13px}.task-category-progress__header h2{font-size:15px}.task-category-progress-grid{gap:8px}.task-category-progress-item{background:#f1f5ffd1;border-radius:13px;min-height:40px;padding:7px 8px 7px 13px}.task-category-progress-item span{font-size:13px}.task-category-progress-item strong{background:#dbeafedb;min-width:88px;min-height:27px;font-size:12px}.task-history{border-radius:24px;gap:12px;padding:16px}.task-history__heading{border-bottom-color:#8ea2ff2e}.history-timeline-item{padding-left:14px}.history-timeline-item:before{content:"";background:#bfdbfec2;border-radius:999px;width:2px;position:absolute;top:29px;bottom:-16px;left:5px}.history-timeline-item:last-of-type:before{display:none}.history-timeline-marker{background:#0b7895;width:12px;height:12px;top:22px;left:0;box-shadow:0 0 0 4px #fff,0 0 0 6px #0b789529}.history-timeline-content{background:#fff;border-color:#8ea2ff33;border-radius:18px;gap:10px;padding:13px}.history-timeline-content:before{display:none}.history-timeline-content>p{color:#27435f;white-space:pre-line;background:#f8fbffdb;border:1px solid #8ea2ff2e;font-size:13px;font-weight:500;line-height:1.8}.history-author-line{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;display:grid}.history-author-line__profile{min-width:0}.history-author-line__name{color:var(--task-ink);font-size:13px}.history-author-line time{color:#9ab6c1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11px;font-weight:700}.history-type-badge{color:#b45309;background:#fff7edf0;border-color:#fbbf2447;grid-column:1/-1;min-height:24px}.task-new-form{border-radius:24px;gap:14px;padding:16px}.task-form-section{background:#ffffffb8;border-color:#8ea2ff2b;border-radius:20px;gap:13px;padding:15px}.task-form-section__header h2{font-size:15px}.task-form-section__header p{color:var(--task-muted);font-size:12px}.task-form-kind{background:#fff;border-color:#8ea2ff2e;border-radius:16px}.task-category-checks{gap:8px}.task-category-check span{background:#fff;border-color:#8ea2ff38;min-height:40px;font-size:13px}.task-category-check input:checked+span{background:#dbeafee0;border-color:#4b7dff42}.student-suggestion-list{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));display:grid}.student-suggestion-list button{text-align:left;background:#fff;border-radius:15px;align-items:flex-start;min-height:46px;padding:8px 12px}.task-roster-match{background:#eff6ffd1;border-color:#60a5fa33;border-radius:18px}.task-create-fab,.task-update-fab{background:linear-gradient(#fff,#f8fbffeb),#fff;border-color:#ffffffb8;box-shadow:inset 1px 1px #fffffff0,0 14px 28px #0a1f4429}.task-create-fab:before,.task-update-fab:before{background:#dbeafea8;inset:8px}.bottom-sheet.task-create-sheet,.bottom-sheet.task-detail-sheet{background:radial-gradient(circle at 18% 0,#dbeafecc,#0000 32%),linear-gradient(#fff,#f8fbfffa),#fff;gap:15px}.task-category-grid{gap:11px}.task-category-option{border-radius:20px;min-height:104px}.task-update-panel{border-radius:20px;padding:15px}.task-update-panel__header{align-items:start}.task-time-modal__panel{border-radius:28px 28px 0 0}@media (min-width:1024px){.task-index-page,.task-detail-page{max-width:none}.task-tab-swipe-frame{justify-self:center;width:min(100%,1023px)}.task-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.task-list .empty-state{grid-column:1/-1}.task-list-card{min-height:132px}.task-detail-page{justify-self:center;width:min(100%,1023px)}.task-detail-note,.orientation-detail-card,.task-category-progress,.task-history{padding:18px}.task-category-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.task-new-form{justify-self:center;width:min(100%,1023px)}}@media (max-width:640px){.task-index-page,.task-detail-page{gap:12px}.task-tabs{border-radius:20px;padding:6px}.task-tabs:before{border-radius:15px;width:calc(25% - 6px);top:6px;bottom:6px;left:6px}.task-tabs a{grid-template-columns:minmax(0,auto) auto;gap:4px;min-height:42px;font-size:12px}.task-tabs a b{min-width:19px;height:19px;font-size:10px}.task-filter-bar{grid-template-columns:minmax(0,1fr)}.task-filter-panel[open]>summary{max-width:calc(100% - 136px)}.task-index-actions>.ghost-link{max-width:136px;font-size:12px}.task-list-card{border-radius:20px;grid-template-columns:44px minmax(0,1fr);padding:13px}.task-list-card__icon{width:44px;height:44px}.task-list-card__status{grid-column:2;grid-template-columns:repeat(2,max-content);justify-content:start}.task-detail-back,.task-detail-delete-button,.task-detail-action-spacer{width:96px;height:34px}.task-detail-title-card{border-radius:22px;min-height:110px}.task-detail-facts p,.orientation-info-grid p,.substitution-task-lesson p{grid-template-columns:minmax(96px,.36fr) minmax(0,1fr)}.history-author-line{grid-template-columns:minmax(0,1fr)}.history-author-line time{text-align:left;margin-left:39px}.history-type-badge{margin-left:39px}}@media (max-width:380px){.task-tabs a{font-size:11px}.task-tabs a b{min-width:18px;height:18px}.task-detail-facts p,.orientation-info-grid p,.substitution-task-lesson p{grid-template-columns:minmax(0,1fr)}.task-detail-facts span,.orientation-info-grid span,.substitution-task-lesson span{justify-content:flex-start}}
