﻿@import"https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700;900&family=M+PLUS+Rounded+1c:wght@400;500;700;800&display=swap";:root{--bg: #fdfaf3;--bg-2: #fef4ea;--bg-elev: #ffffff;--surface: #fff;--surface-2: #fcf5e8;--surface-3: #f6f0dc;--border: #f0e4d4;--border-strong: #e6d4bc;--divider: #e8dbc4;--ink-1: #5b4634;--ink-2: #8a715a;--ink-3: #b29881;--ink-4: #d3bd9f;--accent: #f5a097;--accent-600: #e57b6e;--accent-50: #fef0ed;--accent-100: #ffe3e3;--accent-200: #ffc9c9;--accent-ink: #b34a3c;--care: #fcd6c0;--care-bg: #fff0e8;--care-ink: #b5674a;--kitchen: #c9e4a5;--kitchen-bg: #eef7e7;--kitchen-ink: #5b7c45;--admin: #f3cf78;--admin-bg: #fff7db;--admin-ink: #997530;--night: #c7c3e8;--night-bg: #ebe9f7;--night-ink: #5b4f8f;--warn: #f0b66c;--warn-bg: #fdf3e1;--warn-border: #f5d9a8;--warn-ink: #8a5a1a;--danger: #e4787b;--danger-bg: #fff0f1;--danger-border: #f5b5b8;--danger-ink: #a83f3f;--success: #8ab880;--success-bg: #e9f3e6;--success-ink: #3f6b3a;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-2xl: 28px;--shadow-1: 0 1px 2px rgba(91,70,54,.06);--shadow-2: 0 4px 12px -2px rgba(91,70,54,.08);--shadow-lg: 0 12px 40px -8px rgba(91,70,54,.18);--shadow-soft: 0 2px 0 rgba(0,0,0,0.03), 0 8px 24px -6px rgba(230,180,140,0.25);--slot-w: 20px;--staff-col-w: 224px;--time-header-h: 52px;--page-edge: 22px;--appbar-top: 10px;--appbar-height: 60px;--appbar-offset: calc(var(--appbar-top) + var(--appbar-height) + 10px)}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:"M PLUS Rounded 1c","Zen Maru Gothic",sans-serif;font-feature-settings:"palt";color:var(--ink-1);background:radial-gradient(1200px 600px at 85% -10%, #ffe8dc 0%, transparent 50%),radial-gradient(900px 500px at -10% 110%, #fde4ec 0%, transparent 50%),var(--bg);background-attachment:fixed;font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}button{font-family:inherit}:where(a,button,input,select,textarea,[role=button]):focus-visible{outline:3px solid rgba(179,74,60,.55);outline-offset:2px}.app{min-height:100vh;padding-top:var(--appbar-offset)}.appbar{min-height:60px;background:hsla(0,0%,100%,.85);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:16px;position:fixed;top:var(--appbar-top);left:var(--page-edge);right:var(--page-edge);display:flex;align-items:center;gap:16px;padding:0 16px;box-shadow:var(--shadow-soft);z-index:120}.appbar.is-disabled{pointer-events:none;opacity:.52;filter:saturate(0.65);box-shadow:none;transition:opacity .12s ease,filter .12s ease}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;color:var(--ink-1)}.brand-mark{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg, #ffc4a3 0%, #f9a8d4 50%, #c4b5fd 100%);display:grid;place-items:center;color:#fff;font-weight:800;font-size:14px;box-shadow:0 4px 10px -2px rgba(249,168,212,.45)}.brand-mark .emoji{font-size:16px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, 0.1))}.main-nav{display:flex;gap:4px;margin-left:18px}.main-nav a{padding:7px 14px;border-radius:999px;color:var(--ink-2);text-decoration:none;font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.main-nav a.active{background:var(--surface-3);color:var(--accent-ink);font-weight:700}.main-nav a:hover:not(.active){background:var(--surface-2);color:var(--ink-1)}.main-nav a.disabled{opacity:.5;cursor:default}.main-nav a.disabled:hover{background:rgba(0,0,0,0);color:var(--ink-2)}.appbar .spacer{flex:1}.admin-icons{display:flex;align-items:center;gap:8px;padding-left:14px;margin-left:6px;border-left:1px solid var(--border-strong)}.icon-btn{width:36px;height:36px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);color:var(--ink-2);display:grid;place-items:center;padding:0;position:relative;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease,transform .12s ease}.icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.icon-btn:hover{background:var(--surface-2);color:var(--ink-1);border-color:var(--border-strong);transform:translateY(-1px)}.icon-btn.active{background:var(--accent-50);color:var(--accent-ink);border-color:#f0cfcf}.icon-btn .tip{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--ink-1);color:#fff;padding:4px 9px;border-radius:6px;font-size:11px;font-weight:700;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:12}.icon-btn:hover .tip{opacity:1}.user-menu{position:relative}.user-trigger{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--border);background:linear-gradient(135deg, #fde7d5, #f9d4c2);color:var(--ink-1);display:grid;place-items:center;padding:0;position:relative;margin-top:-2px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.user-trigger:hover{transform:translateY(-1px);border-color:var(--border-strong);box-shadow:var(--shadow-2)}.user-trigger .initial{font-family:"Zen Maru Gothic","M PLUS Rounded 1c",sans-serif;font-size:13px;font-weight:800;text-transform:uppercase;line-height:1;transform:translateY(-1px)}.user-trigger .role-mini{position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);font-size:8px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--surface-3);color:var(--ink-3);white-space:nowrap;letter-spacing:.02em;box-shadow:0 0 0 2px var(--bg);pointer-events:none}.user-trigger .role-mini.is-tenant-admin{background:var(--accent-50);color:var(--accent-ink)}.user-trigger .role-mini.is-platform-admin{background:linear-gradient(135deg, #ede8fb, #d7cdef);color:#5b4e8f}.user-trigger.is-tenant-admin{background:linear-gradient(135deg, #ffe3e3, #fcb5a0)}.user-trigger.is-platform-admin{background:linear-gradient(135deg, #ede8fb, #c4b5fd)}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:240px;padding:6px;border:1.5px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-lg);z-index:20;display:none}.user-dropdown.open{display:block}.user-dropdown .menu-header{padding:10px 12px 6px;border-bottom:1px dashed var(--border);margin-bottom:4px}.user-dropdown .menu-header .uid{font-family:"JetBrains Mono","M PLUS Rounded 1c",monospace;font-size:13px;font-weight:800;color:var(--ink-1)}.user-dropdown .menu-header .role{margin-top:2px;font-size:11px;color:var(--ink-3);font-weight:600}.user-dropdown .menu-item{width:100%;border:0;background:rgba(0,0,0,0);display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:13px;color:var(--ink-1);font-weight:600;text-align:left;cursor:pointer}.user-dropdown .menu-item:hover{background:var(--surface-3)}.user-dropdown .menu-item.danger{color:var(--accent-ink)}.user-dropdown .menu-item.danger:hover{background:var(--accent-50)}.platform-menu{position:relative}.platform-menu__trigger{height:30px;padding:0 10px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--ink-2);font-size:12px;font-weight:700;cursor:pointer}.platform-menu__trigger.active{background:var(--surface-3);color:var(--accent-ink)}.platform-menu__list{position:absolute;top:calc(100% + 6px);right:0;min-width:150px;padding:6px;border:1.5px solid var(--border);border-radius:var(--r-md);background:#fff;box-shadow:var(--shadow-2);z-index:45;display:flex;flex-direction:column;gap:4px}.platform-menu__list button{height:32px;border:0;border-radius:10px;background:rgba(0,0,0,0);color:var(--ink-1);font-size:12px;font-weight:600;text-align:left;padding:0 10px;cursor:pointer}.platform-menu__list button:hover{background:var(--surface-3)}.page-head{padding:22px var(--page-edge) 14px;display:flex;align-items:flex-end;gap:22px;flex-wrap:wrap}.page-title-wrap{display:flex;align-items:center;gap:14px}.titles{position:relative;width:280px;min-width:280px}.main.app:not(.admin-page) .page-head .titles{width:320px;min-width:320px}.page-title-emoji{width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg, #fff0e6, #ffe3e3);display:grid;place-items:center;font-size:28px;box-shadow:var(--shadow-soft);border:1px solid hsla(0,0%,100%,.8)}.page-title{margin:0 0 4px;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--accent-ink);letter-spacing:.08em}.page-head h1{margin:0;font-family:"Zen Maru Gothic","M PLUS Rounded 1c",serif;font-size:26px;font-weight:700;color:var(--ink-1);letter-spacing:.01em;white-space:nowrap}.page-head h1 .wd{color:var(--ink-3);font-weight:500;margin-left:10px;font-size:17px}.date-picker-trigger-wrap{position:relative}.h1-trigger{display:inline-flex;align-items:center;gap:8px;font:inherit;color:inherit;line-height:inherit;letter-spacing:inherit;border:0;background:rgba(0,0,0,0);padding:2px 8px;margin:0 0 0 -8px;border-radius:10px;cursor:pointer;transition:background .12s}.h1-trigger:hover{background:var(--surface-3)}.h1-trigger-text{display:inline-flex;align-items:baseline}.h1-trigger .cal-caret{font-size:13px;color:var(--ink-3);transition:transform .15s}.h1-trigger.open .cal-caret{transform:rotate(180deg)}.h1-trigger.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.date-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:70;width:min(280px,100vw - 32px);padding:12px;border-radius:var(--r-lg);border:1.5px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg)}.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dp-title{font-size:14px;font-weight:800;color:var(--ink-1);font-family:"Zen Maru Gothic",sans-serif}.dp-nav{width:28px;height:28px;border:0;border-radius:8px;background:var(--surface-3);color:var(--ink-2);font-size:16px;line-height:1;cursor:pointer}.dp-nav:hover{background:var(--border);color:var(--ink-1)}.dp-nav.is-disabled,.dp-nav:disabled{opacity:.45;cursor:not-allowed;background:var(--surface-3);color:var(--ink-3)}.dp-grid{display:grid;grid-template-columns:repeat(7, 1fr);gap:2px}.dp-dow{margin-bottom:4px}.dp-dow-cell{text-align:center;font-size:10.5px;font-weight:700;color:var(--ink-3);padding:2px 0}.dp-dow-cell.sun{color:#b0617a}.dp-dow-cell.sat{color:#5a7da6}.dp-cell{-webkit-appearance:none;appearance:none;aspect-ratio:1/1;width:100%;min-width:0;padding:0;border:0;border-radius:9px;background:rgba(0,0,0,0);color:var(--ink-1);font-size:12.5px;font-weight:600;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .1s,color .1s}.dp-cell.dp-is-empty{pointer-events:none;cursor:default}.dp-cell.dp-is-weekend{background:rgba(120,110,100,.08);color:var(--ink-3)}.dp-cell.dp-is-closure{background:#f8e7ea;color:#8f3a45}.dp-cell.dp-is-today{box-shadow:inset 0 0 0 1.5px var(--accent)}.dp-cell.dp-is-selected{background:var(--accent);color:#fff;font-weight:800}.dp-cell:not(.dp-is-empty):hover{background:var(--surface-3);color:var(--ink-1)}.dp-cell.dp-is-selected:hover{background:var(--accent-600);color:#fff}.dp-cell.is-disabled,.dp-cell:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.dp-foot{margin-top:8px;padding-top:8px;border-top:1px solid var(--divider);display:flex;justify-content:flex-end}.dp-today-link{border:0;border-radius:999px;padding:5px 12px;background:var(--accent-50);color:var(--accent-ink);font-size:12px;font-weight:700;cursor:pointer}.dp-today-link:hover{background:var(--accent-100)}.dp-clear-link{border:0;border-radius:999px;padding:5px 10px;background:rgba(0,0,0,0);color:var(--ink-3);font-size:12px;font-weight:700;cursor:pointer}.dp-clear-link:hover{background:var(--surface-3);color:var(--ink-1)}.dp-today-link.is-disabled,.dp-today-link:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.date-picker-input{position:relative;width:100%}.date-picker-input__trigger{width:100%;height:38px;padding:0 11px 0 13px;border:1.5px solid var(--border-strong);border-radius:10px;background:#fff;color:var(--ink-1);display:inline-flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.75);transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}.date-picker-input__trigger:hover{border-color:var(--accent);background:#fffdfb;box-shadow:0 4px 12px -8px rgba(179,74,60,.35)}.date-picker-input.is-open .date-picker-input__trigger{border-color:var(--accent);box-shadow:0 0 0 3px rgba(245,160,151,.16)}.date-picker-input.is-empty .date-picker-input__text{color:var(--ink-4);font-weight:600}.date-picker-input__icon{width:22px;height:22px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--surface-3);color:var(--ink-2);font-size:12px;transition:transform .14s ease,background .12s ease}.date-picker-input.is-open .date-picker-input__icon{transform:rotate(180deg);background:var(--accent-50);color:var(--accent-ink)}.date-picker-input__popover{top:calc(100% + 6px);left:0;z-index:170}.date-picker-input__popover.is-fixed{position:fixed}.field-row--2 .field:nth-child(2) .date-picker-input__popover,.staff-leave-row__fields .field:nth-child(3) .date-picker-input__popover{left:auto;right:0}.date-picker-input__foot{justify-content:space-between;gap:8px}.date-nav{display:flex;align-items:center;background:var(--surface);border:1.5px solid var(--border);border-radius:999px;padding:4px;box-shadow:var(--shadow-1)}.date-nav button{height:34px;padding:0 14px;border:0;background:rgba(0,0,0,0);border-radius:999px;color:var(--ink-2);font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.date-nav .today{background:var(--accent-50);color:var(--accent-ink);font-weight:700}.date-nav button:hover{background:var(--surface-3);color:var(--ink-1)}.date-nav button.is-disabled,.date-nav button:disabled{opacity:.45;cursor:not-allowed;pointer-events:none;background:rgba(0,0,0,0);color:var(--ink-3)}.kpis{margin-left:auto;display:flex;gap:10px;align-items:center}.kpi{min-width:120px;background:var(--surface);border-radius:var(--r-lg);padding:10px 16px;box-shadow:var(--shadow-soft);border:1px solid hsla(0,0%,100%,.8);display:flex;flex-direction:column;gap:2px}.kpi .l{font-size:11px;color:var(--ink-3);font-weight:500;display:flex;align-items:center;gap:5px}.kpi .v{font-size:22px;font-weight:800;color:var(--ink-1);font-variant-numeric:tabular-nums}.kpi .v .sub{font-size:12px;color:var(--ink-3);font-weight:500;margin-left:4px}.kpi--hours .v{display:inline-flex;align-items:baseline}.kpi--hours .kpi-num{display:inline-block}.kpi--hours .kpi-frac{font-size:.72em;opacity:.92}.kpi.alert{background:linear-gradient(135deg, #fff0f1, #ffe3e5)}.kpi.alert .v,.kpi.alert .l{color:var(--danger-ink)}.toolbar{padding:8px var(--page-edge) 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar--top{margin-top:0}.past-edit-bar{margin:0 var(--page-edge) 12px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:1.5px solid #f0d2a1;border-radius:16px;background:linear-gradient(180deg, #fff8ea, #fffdf8);box-shadow:0 3px 12px -8px rgba(120,86,28,.24)}.past-edit-bar.editing{border-color:#e9c27a;background:linear-gradient(180deg, #fff3d6, #fffaf0)}.past-edit-copy{min-width:0}.past-edit-title{font-size:13px;font-weight:800;color:var(--ink-1)}.past-edit-text{margin-top:2px;font-size:12px;color:var(--ink-2);line-height:1.45}.past-edit-error{margin-top:6px;font-size:12px;font-weight:700;color:var(--danger-ink)}.past-edit-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none}.past-edit-status{font-size:12px;font-weight:700;color:#8b5c13;background:#fff2cd;border:1px solid #f0d2a1;border-radius:999px;padding:4px 9px}.chip-filter{display:inline-flex;align-items:center;flex-wrap:nowrap;min-width:0;max-width:100%;background:var(--surface);border:1.5px solid var(--border);border-radius:999px;padding:3px;box-shadow:var(--shadow-1)}.chip-filter button{border:0;background:rgba(0,0,0,0);padding:0 14px;height:30px;border-radius:999px;color:var(--ink-2);font-size:12px;font-weight:600;cursor:pointer;flex:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1}.chip-filter button.active{background:var(--accent-50);color:var(--accent-ink)}.chip-filter .input--search{height:30px;width:320px;min-width:180px;max-width:min(320px,36vw);flex:1 1 240px;border-radius:999px;border:1.5px solid var(--border);background:#fff;padding:0 12px;font-size:12px}.btn{height:38px;padding:0 16px;border:1.5px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink-1);font-weight:600;cursor:pointer;box-shadow:var(--shadow-1);display:inline-flex;align-items:center;gap:7px;transition:transform .12s,box-shadow .12s}.btn.primary{background:linear-gradient(135deg, #fcb5a0, #ef9a9a);color:#fff;border-color:rgba(0,0,0,0);box-shadow:0 4px 12px -2px rgba(239,154,154,.5)}.btn.secondary{background:#fff;border-color:var(--border-strong);color:var(--ink-1)}.btn.sm{height:30px;padding:0 12px;font-size:12px}.btn.ghost{background:rgba(0,0,0,0);border-color:rgba(0,0,0,0);box-shadow:none;color:var(--ink-2)}.btn.danger{color:var(--danger-ink);background:rgba(0,0,0,0);border-color:rgba(0,0,0,0);box-shadow:none}.btn:hover{background:var(--surface-2);transform:translateY(-1px);box-shadow:var(--shadow-2)}.btn:active{transform:translateY(0)}.btn.primary:hover{background:linear-gradient(135deg, #fcb5a0, #ef9a9a);box-shadow:0 6px 16px -2px rgba(239,154,154,.6)}.btn.ghost:hover{background:hsla(0,0%,100%,.6);color:var(--ink-1);transform:none;box-shadow:none}.btn.danger:hover{color:var(--danger-ink);background:var(--danger-bg);border-color:var(--danger-border);transform:none;box-shadow:none}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none !important}.btn .kbd{color:var(--ink-4);font-size:11px;margin-left:6px}.toolbar .spacer{flex:1}.timeline-density-controls{display:inline-flex;align-items:center;gap:14px;flex:none}.density-control{display:inline-flex;align-items:center;gap:6px}.density-control__label{font-size:11px;font-weight:700;color:#b29881}.density-seg{display:inline-flex;align-items:center;gap:0;padding:2px;border-radius:999px;background:#f6f0e2}.density-seg button{border:0;height:28px;padding:0 12px;border-radius:999px;background:rgba(0,0,0,0);color:#8a715a;font-size:12px;font-weight:700;line-height:1;cursor:pointer;transition:background .12s ease,color .12s ease,box-shadow .12s ease}.density-seg button.on{background:#fff;color:#b3503c;box-shadow:0 1px 2px rgba(91,70,54,.15)}.density-seg button:hover{color:#b3503c}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid rgba(0,0,0,0)}.badge--admin{background:var(--admin-bg);color:var(--admin-ink);border-color:#f0dc9e}.badge--role{margin-right:6px;background:#fff5e8;color:#8b4e16;border-color:#f2c797}.badge--holiday{margin-left:8px;background:#fff0f2;color:#8f3a45;border-color:#f3c2cb}.badge--holiday-inline{margin-left:0;padding:2px 8px;background:#ece8eb;color:#6f646b;border-color:rgba(0,0,0,0);font-size:10px;letter-spacing:0}.warnbar{margin:4px var(--page-edge) 12px;padding:14px 16px;border:1.5px solid var(--warn-border);border-radius:16px;background:linear-gradient(180deg, #fef6e8, #fff);box-shadow:0 3px 12px -6px rgba(154,106,28,.18)}.wb-head{display:flex;align-items:center;gap:12px;cursor:pointer}.wb-ic{width:34px;height:34px;border-radius:11px;background:#fff;border:1.5px solid var(--warn-border);display:grid;place-items:center;font-size:17px;flex:none}.wb-main{min-width:0;flex:1}.wb-title{font-size:13.5px;font-weight:800;color:var(--ink-1);display:flex;align-items:center;gap:8px}.wb-title .tot{font-size:11px;font-weight:800;color:#fff;background:var(--warn);border-radius:999px;padding:1px 8px;line-height:1.2}.wb-title .tot.has-d{background:var(--danger)}.wb-sum{margin-top:2px;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wb-sum b.d{color:var(--danger-ink)}.wb-sum b.w{color:var(--warn-ink)}.wb-actions{display:flex;align-items:center;flex:none}.wb-chev{color:var(--ink-3);font-size:13px;transition:transform .2s}.wb-head.open .wb-chev{transform:rotate(180deg)}.wb-list{margin-top:12px;padding-top:12px;border-top:1.5px dashed var(--warn-border);display:grid;gap:7px}.wb-list.hidden{display:none}.wb-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--surface-2)}.wb-row .dot{width:8px;height:8px;border-radius:50%;flex:none}.wb-row.d .dot{background:var(--danger)}.wb-row.w .dot{background:var(--warn)}.wb-row .nm{font-size:13px;font-weight:700;color:var(--ink-1)}.wb-row .badge{margin-left:auto;font-size:11.5px;font-weight:800;padding:3px 11px;border-radius:999px;font-variant-numeric:tabular-nums}.wb-row.d .badge{background:var(--danger-bg);color:var(--danger-ink)}.wb-row.w .badge{background:var(--warn-bg);color:var(--warn-ink)}.notice{margin:4px var(--page-edge) 14px;padding:10px 12px;border-radius:10px;font-size:12px}.notice--error{background:var(--danger-bg);color:#a13b3f}.notice--toast-hidden{display:none !important}.notice--loading-hidden{display:none !important}.toast-stack{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:1000;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:11px;width:360px;padding:13px 15px;border:1.5px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 10px 30px -8px rgba(91,70,54,.28),0 3px 10px -4px rgba(91,70,54,.14);font-size:13.5px;line-height:1.5;pointer-events:auto;animation:toastIn .26s cubic-bezier(0.2, 0.9, 0.3, 1.2)}.toast .ic{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;margin-top:1px;color:#fff;font-size:13px;font-weight:800}.toast .body{flex:1;min-width:0}.toast .title{font-size:13.5px;font-weight:700;color:var(--ink-1)}.toast .desc{margin-top:2px;font-size:12px;color:var(--ink-2)}.toast .x{flex:none;width:22px;height:22px;margin:-1px -2px 0 0;border:0;border-radius:6px;background:rgba(0,0,0,0);color:var(--ink-3);display:grid;place-items:center;font-size:15px;cursor:pointer}.toast .x:hover{background:var(--surface-3);color:var(--ink-1)}.toast.ok{border-color:#cfe6cb;background:#f0f8ee}.toast.ok .ic{background:#5fa468}.toast.ok .title{color:#467a4d}.toast.err{border-color:#f5cdd2;background:#fdeef0}.toast.err .ic{background:#e0656a}.toast.err .title{color:#b13d40}.toast.neu{border-color:#ddd2ee;background:#f2eefa}.toast.neu .ic{background:#8d78bd}.toast.neu .title{color:#6b5b99}.toast.leaving{animation:toastOut .2s ease forwards}@keyframes toastIn{from{opacity:0;transform:translateY(-14px) scale(0.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{to{opacity:0;transform:translateY(-10px) scale(0.96)}}.loading-overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:2000;background:rgba(253,248,241,.72);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:ovIn .2s ease}.loading-overlay.show{display:flex}@keyframes ovIn{from{opacity:0}to{opacity:1}}.loader-card{display:flex;flex-direction:column;align-items:center;gap:16px;padding:30px 38px;background:hsla(0,0%,100%,.86);border:1.5px solid #ece0cc;border-radius:22px;box-shadow:0 18px 50px -16px rgba(91,70,54,.32)}.ring{width:46px;height:46px;border-radius:50%;border:4px solid #f6f0e2;border-top-color:#f0a594;animation:spin .9s cubic-bezier(0.5, 0.1, 0.5, 0.9) infinite}@keyframes spin{to{transform:rotate(360deg)}}.loader-label{font-size:13px;font-weight:700;color:#8a715a;font-family:"Zen Maru Gothic",sans-serif}.layout{padding:0 var(--page-edge) var(--page-edge)}.main.app.schedule-page,.main.app.monthly-page{height:100vh;overflow:hidden;display:flex;flex-direction:column}.main.app.schedule-page .page-head,.main.app.schedule-page .toolbar,.main.app.schedule-page .past-edit-bar,.main.app.schedule-page .warnbar,.main.app.monthly-page .page-head{flex:none}.main.app.schedule-page .layout{flex:1;min-height:0}.main.app.schedule-page .timeline-wrap{height:100%;display:flex;flex-direction:column}.main.app.schedule-page .timeline-body{flex:1;min-height:0;max-height:none}.main.app.schedule-page .layout.layout--with-warning .timeline-body,.main.app.schedule-page .layout.layout--with-warning.layout--with-warning-multi .timeline-body{max-height:none}.main.app.monthly-page .monthly-card{margin:0 var(--page-edge) var(--page-edge);flex:1;min-height:0;display:flex;flex-direction:column}.main.app.monthly-page .monthly-grid-wrap{flex:1;min-height:0;max-height:none}.timeline-wrap{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-2xl);box-shadow:var(--shadow-soft);overflow:hidden}.timeline-header{display:grid;grid-template-columns:var(--staff-col-w) calc(68*var(--slot-w));border-bottom:1.5px solid var(--border);background:var(--surface-2);width:100%}.staff-header{padding:0 18px;height:var(--time-header-h);display:flex;align-items:center;justify-content:space-between;border-right:1.5px solid var(--border);font-size:12px;font-weight:700;color:var(--ink-2)}.time-header{position:relative;height:var(--time-header-h);overflow:hidden}.hour-ticks{position:relative;height:100%;display:flex;width:calc(68*var(--slot-w));will-change:transform}.hour-tick{position:relative;width:calc(var(--slot-w)*4);border-right:1.5px solid var(--border);height:var(--time-header-h);padding:8px 0 0 10px}.h-label{font-size:12px;color:var(--ink-2);font-weight:700}.h-min{font-size:10px;color:var(--ink-4);margin-left:2px}.quarters{position:absolute;left:0;right:0;bottom:0;height:14px;display:flex;pointer-events:none}.quarters span{flex:1;border-left:1px dashed #ead9c5}.quarters span:first-child{border-left:0}.validation-strip{position:absolute;left:0;right:0;bottom:0;height:14px;display:grid;grid-template-columns:repeat(68, var(--slot-w));pointer-events:auto}.validation-strip .validation-cell{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;font-size:9px;color:#8f9a7f;opacity:.95}.validation-strip .validation-cell.active{background:linear-gradient(180deg, rgba(186, 218, 165, 0.18), rgba(186, 218, 165, 0))}.validation-strip .validation-cell.warn{color:var(--danger-ink);background:linear-gradient(180deg, rgba(255, 210, 180, 0.22), rgba(255, 210, 180, 0))}.validation-strip .validation-cell.ok{color:#5d8f3d}.validation-strip .validation-cell.warn,.validation-strip .validation-cell.ok{cursor:pointer}.main.app.schedule-page[data-slot=s] .h-label{font-size:9px}.main.app.schedule-page[data-slot=s] .h-min{display:none}.main.app.schedule-page[data-slot=s] .hour-tick{padding-left:6px}.main.app.schedule-page[data-slot=s] .validation-strip .validation-cell{font-size:8px;line-height:1;overflow:hidden}.main.app.schedule-page[data-slot=m] .h-label{font-size:10px}.main.app.schedule-page[data-slot=m] .h-min{font-size:8px}.main.app.schedule-page[data-slot=m] .hour-tick{padding-left:8px}.timeline-body{display:grid;grid-template-columns:var(--staff-col-w) calc(68*var(--slot-w));max-height:clamp(300px,100vh - 340px,820px);overflow:auto;width:100%}.layout.layout--with-warning .timeline-body{max-height:clamp(250px,100vh - 420px,740px)}.layout.layout--with-warning.layout--with-warning-multi .timeline-body{max-height:clamp(220px,100vh - 460px,700px)}.staff-col{background:var(--surface-2);border-right:1.5px solid var(--border);position:sticky;left:0;z-index:30;overflow:visible}.staff-row{height:76px;display:flex;align-items:center;gap:12px;padding:0 14px;border-bottom:1.5px solid #f5e9d8;cursor:pointer;position:relative;overflow:visible}.staff-row.absent{background:repeating-linear-gradient(45deg, transparent 0 6px, rgba(180, 155, 125, 0.04) 6px 12px)}.staff-row.is-locked{background:#fffdf9}.staff-row.is-staff-settings-readonly{cursor:default}.staff-row.is-staff-settings-readonly .meta:hover .name{color:inherit;text-decoration:none}.staff-row .avatar{width:32px;height:32px;font-size:12px;flex:none;cursor:pointer}.staff-row .meta{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px;line-height:1.2}.staff-row .meta:hover .name{color:var(--accent-ink);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.staff-row .name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-row .name-wrap{display:flex;align-items:center;gap:6px;min-width:0}.staff-row .override-reset-btn{border:1px solid #efc9a6;background:#fff4e8;color:#9a5630;width:18px;height:18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1;cursor:pointer;flex:none;padding:0}.staff-row .override-reset-btn:hover{background:#ffe8d0;border-color:#e8b68a}.staff-row .role{font-size:10.5px;color:var(--ink-3);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-row .shift-time{font-size:10px;color:var(--ink-2);font-weight:700;background:var(--surface-3);padding:1px 6px;border-radius:4px;align-self:flex-start;font-variant-numeric:tabular-nums;white-space:nowrap}.staff-row .shift-time.is-overridden{background:var(--warn-bg);color:var(--warn-ink);box-shadow:inset 0 0 0 1px var(--warn-border)}.staff-row .hrs{font-size:11px;color:var(--ink-2);font-weight:700;background:var(--surface-3);padding:3px 8px;border-radius:999px;white-space:nowrap}.staff-row .hrs.hrs--warn{background:var(--danger-bg);color:var(--danger-ink);border:1px solid var(--danger-border);padding:2px 8px}.staff-row .badge{font-size:11px;padding:3px 9px;border-radius:999px;font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.staff-row .badge.absence{background:#e8f1ff;color:#2d5a92;border:1px solid #c9ddfb;position:absolute;right:8px;top:8px;padding:2px 8px;font-size:10px;line-height:1.1;z-index:3}.grid-col{width:calc(68*var(--slot-w));min-width:calc(68*var(--slot-w));position:relative;z-index:1}.grid-row{border-bottom:1.5px solid #f5e9d8;position:relative}.grid-row.is-locked{background:#fffdf9}.row-lock-overlay{position:absolute;inset:0;background:rgba(255,245,232,.72);z-index:12;pointer-events:none}.row-lock-overlay--staff{z-index:26;border-right:1px solid rgba(232,182,138,.35);overflow:visible}.row-lock-overlay--grid{z-index:8}.row-lock-overlay--staff .monthly-row-lock-pill{position:absolute;left:160px;top:50%;transform:translateY(-50%);z-index:4;display:inline-flex;align-items:center;gap:6px;background:hsla(0,0%,100%,.94);color:#8b4e16;border:1px solid #f2c797;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;line-height:1.1;box-shadow:0 2px 8px rgba(139,78,22,.12);white-space:nowrap}.row-lock-text{display:inline-flex;align-items:center;gap:6px;background:hsla(0,0%,100%,.93);color:#8b4e16;border:1px solid #f2c797;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700;box-shadow:0 2px 8px rgba(139,78,22,.12)}.lane{position:relative}.lane--main{height:56px;border-bottom:1px solid #f5e9d8}.lane--sub{min-height:22px}.lane__slots{display:grid;grid-template-columns:repeat(68, var(--slot-w));height:100%}.slot{border:none;border-right:1px dashed #ead9c5;background:rgba(0,0,0,0);padding:0;cursor:crosshair}.slot:nth-child(4n){border-right:1px solid #e6d4bc}.slot--selected{background:rgba(239,154,154,.28)}.lane__bars{position:absolute;inset:0;pointer-events:none}.assignment-block{position:absolute;top:4px;bottom:4px;background:#fff;border:1.5px solid var(--border);border-radius:var(--r-md);box-shadow:0 1px 3px rgba(210,175,140,.12);pointer-events:auto;overflow:hidden;cursor:grab}.assignment-block::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:4px;background:var(--accent);border-radius:3px}.assignment-block:hover{box-shadow:0 4px 12px -2px rgba(210,175,140,.28);transform:translateY(-1px)}.assignment-block:active{cursor:grabbing}.assignment-block.dragging{opacity:.85;box-shadow:0 8px 20px -4px rgba(210,175,140,.45) !important;z-index:12}.assignment-block.selected{outline:2.5px solid #ffc9c9;outline-offset:2px;box-shadow:0 6px 16px -4px rgba(210,175,140,.55),0 0 0 4px rgba(210,175,140,.18) !important;z-index:10}.assignment-block.from-template{border-style:dashed;border-width:2px}.assignment-block.c-care{background:#fff0e8;border-color:#fccab4}.assignment-block.c-care::before{background:#fcb5a0}.assignment-block.c-care .assignment-name{color:#b5674a}.assignment-block.c-kitchen{background:#eef7e7;border-color:#c4daa9}.assignment-block.c-kitchen::before{background:#a8cc9a}.assignment-block.c-kitchen .assignment-name{color:#5b7c45}.assignment-block.c-admin{background:#fff7db;border-color:#f3d88a}.assignment-block.c-admin::before{background:#f3cf78}.assignment-block.c-admin .assignment-name{color:#997530}.assignment-block.c-night{background:#ebe9f7;border-color:#c7c3e8}.assignment-block.c-night::before{background:#a39ed4}.assignment-block.c-night .assignment-name{color:#5b4f8f}.assignment-block.out-of-shift{border-color:var(--danger) !important;border-style:solid}.assignment-block.out-of-shift::before{background:var(--danger)}.assignment-body{position:absolute;inset:0;padding:6px 8px 6px 13px;cursor:move;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:3px;z-index:3}.assignment-name{display:block;width:100%;font-size:12.5px;font-weight:800;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:clip}.assignment-loc{display:block;width:100%;font-size:11px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:clip}.assignment-loc .pill{display:inline-flex;align-items:center;max-width:100%;padding:1px 7px;height:18px;background:hsla(0,0%,100%,.7);border-radius:999px;font-size:10.5px;font-weight:600;color:var(--ink-2);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:clip}.sub-block{position:absolute;height:10px;border-radius:999px;top:5px;background:linear-gradient(135deg, #ddd3fb, #d4c8ea);box-shadow:0 1px 2px rgba(210,175,140,.25),inset 0 1px 0 hsla(0,0%,100%,.4);pointer-events:auto;cursor:grab;transition:transform .12s,box-shadow .12s,height .12s}.sub-block.c-pink{background:linear-gradient(135deg, #fdd9cc, #fcc8de)}.sub-block.c-lav{background:linear-gradient(135deg, #ddd3fb, #d4c8ea)}.sub-block.c-mint{background:linear-gradient(135deg, #c8dec1, #aecfa3)}.sub-block.c-butter{background:linear-gradient(135deg, #f8e2a8, #efd28a)}.sub-block.c-sky{background:linear-gradient(135deg, #c2dded, #a6c9e0)}.sub-block.c-rose{background:linear-gradient(135deg, #f8cdd5, #f0a3b4)}.sub-block:hover{transform:scaleY(1.35);box-shadow:0 2px 6px rgba(210,175,140,.4),inset 0 1px 0 hsla(0,0%,100%,.5);z-index:7}.sub-block:active{cursor:grabbing}.sub-block.dragging{opacity:.85;box-shadow:0 4px 10px rgba(210,175,140,.5);z-index:9}.sub-block.selected{box-shadow:0 0 0 2px var(--accent),0 2px 6px rgba(210,175,140,.5);z-index:10}.sub-block.from-template{outline:1.5px dashed rgba(122,102,170,.8);outline-offset:1px}.sub-body{position:absolute;inset:0;cursor:move;display:flex;align-items:center;padding:0 4px}.sub-label{font-size:9px;font-weight:700;color:rgba(91,70,54,.95);white-space:nowrap;overflow:hidden;text-overflow:clip;line-height:1;pointer-events:none}.main.app.schedule-page[data-dense="1"]{--staff-col-w: 184px}.main.app.schedule-page[data-dense="1"] .staff-header{padding:0 12px}.main.app.schedule-page[data-dense="1"] .staff-row{gap:6px;padding:0 10px}.main.app.schedule-page[data-dense="1"] .staff-row .meta{gap:0}.main.app.schedule-page[data-dense="1"] .staff-row .name{font-size:11px;font-weight:700}.main.app.schedule-page[data-dense="1"] .staff-row .role,.main.app.schedule-page[data-dense="1"] .staff-row .shift-time{display:none}.main.app.schedule-page[data-dense="1"] .staff-row .name-wrap{gap:4px}.main.app.schedule-page[data-dense="1"] .staff-row .override-reset-btn{width:14px;height:14px;font-size:9px}.main.app.schedule-page[data-dense="1"] .staff-row .hrs{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:9px;padding:0;background:rgba(0,0,0,0);color:var(--ink-3);line-height:1;font-variant-numeric:tabular-nums;text-align:right}.main.app.schedule-page[data-dense="1"] .staff-row .hrs.has-absence-dot{right:21px}.main.app.schedule-page[data-dense="1"] .staff-row .hrs.has-warning-dot{right:21px}.main.app.schedule-page[data-dense="1"] .staff-row .hrs.is-overridden{background:var(--warn-bg);color:var(--warn-ink);box-shadow:inset 0 0 0 1px var(--warn-border);border-radius:4px;padding:1px 4px}.main.app.schedule-page[data-dense="1"] .staff-row .hrs.hrs--warn{width:8px;height:8px;padding:0;border:0;overflow:hidden;text-indent:-999px;background:var(--danger)}.main.app.schedule-page[data-dense="1"] .staff-row .badge.absence{right:6px;top:50%;width:8px;height:8px;padding:0;border:0;border-radius:999px;overflow:hidden;text-indent:-999px;transform:translateY(-50%);background:#7dace8}.main.app.schedule-page[data-dense="1"] .staff-row .badge.absence.has-warning-dot{top:calc(50% + 5.5px)}.main.app.schedule-page[data-dense="1"] .staff-status-dot{position:absolute;right:6px;top:50%;width:8px;height:8px;border-radius:999px;transform:translateY(-50%);z-index:4;pointer-events:none}.main.app.schedule-page[data-dense="1"] .staff-status-dot--warning{background:var(--danger)}.main.app.schedule-page[data-dense="1"] .staff-status-dot--warning.has-absence-dot{top:calc(50% - 5.5px)}.main.app.schedule-page[data-dense="1"] .lane--main{height:20px}.main.app.schedule-page[data-dense="1"] .lane--sub{min-height:7px}.main.app.schedule-page[data-dense="1"] .assignment-block{top:4px;bottom:4px;border-radius:5px;border-width:1px}.main.app.schedule-page[data-dense="1"] .assignment-block::before{display:none}.main.app.schedule-page[data-dense="1"] .assignment-body{padding:0;display:none}.main.app.schedule-page[data-dense="1"] .assignment-block:hover{transform:none}.main.app.schedule-page[data-dense="1"] .assignment-block.from-template{border-width:1px}.main.app.schedule-page[data-dense="1"] .sub-block{height:4px;border-radius:999px}.main.app.schedule-page[data-dense="1"] .sub-body{display:none}.main.app.schedule-page[data-dense="1"] .sub-block:hover{transform:none}.main.app.schedule-page[data-dense="1"] .absence-label{display:none}.main.app.schedule-page[data-dense="1"] .drag-ghost,.main.app.schedule-page[data-dense="1"] .draft-ghost{top:6px;bottom:6px;border-radius:5px}.main.app.schedule-page[data-dense="1"] .sub-ghost{top:2px;height:4px}.main.app.schedule-page[data-dense="1"] .drag-ghost .label,.main.app.schedule-page[data-dense="1"] .sub-ghost .label,.main.app.schedule-page[data-dense="1"] .draft-ghost .label{display:none}.drag-handle{position:absolute;top:0;bottom:0;width:6px;z-index:4;cursor:ew-resize}.warn-overlay{position:absolute;top:0;bottom:0;pointer-events:none;z-index:2;border-radius:4px;mix-blend-mode:multiply}.warn-overlay.off{background:repeating-linear-gradient(135deg, rgba(228, 120, 123, 0.55) 0 6px, rgba(228, 120, 123, 0.18) 6px 12px);box-shadow:inset 0 0 0 1.5px var(--danger)}.warn-overlay.absence{background:repeating-linear-gradient(135deg, rgba(143, 74, 84, 0.5) 0 6px, rgba(143, 74, 84, 0.15) 6px 12px);box-shadow:inset 0 0 0 1.5px #8f4a54}.warn-overlay.class_missing{background:repeating-linear-gradient(45deg, rgba(214, 120, 40, 0.5) 0 6px, rgba(214, 120, 40, 0.18) 6px 12px);box-shadow:inset 0 0 0 1.5px #d67828}.drag-handle--left{left:0}.drag-handle--right{right:0}.offhours-overlay{position:absolute;left:0;top:0;bottom:0;background:repeating-linear-gradient(45deg, rgba(91, 70, 54, 0.04) 0 4px, rgba(91, 70, 54, 0.08) 4px 8px);pointer-events:none;z-index:1}.offhours-overlay::before{content:"";position:absolute;inset:0;background:rgba(253,248,243,.35)}.offhours-overlay--right{right:auto}.absence-overlay{position:absolute;top:0;bottom:0;background:rgba(125,172,232,.34);pointer-events:none;z-index:2}.absence-label{position:absolute;top:3px;bottom:3px;pointer-events:none;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#355f96;white-space:normal;overflow:hidden;text-overflow:clip;padding:0 4px;line-height:1.1;gap:1px}.absence-label .absence-main{font-size:10px;font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:clip}.absence-label .absence-sub{font-size:9px;font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:clip}.drag-ghost,.sub-ghost,.draft-ghost{position:absolute;top:4px;bottom:4px;border-radius:var(--r-md);border:2px dashed var(--accent-600);background:rgba(252,181,160,.22);pointer-events:none;z-index:6}.drag-ghost .label,.sub-ghost .label,.draft-ghost .label{position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:11px;color:#fff;background:var(--accent);border-radius:999px;padding:3px 10px;font-weight:700;box-shadow:0 4px 12px -2px rgba(210,175,140,.35);white-space:nowrap}.drag-ghost .label::after,.sub-ghost .label::after,.draft-ghost .label::after{content:"";position:absolute;left:50%;bottom:-4px;transform:translateX(-50%);border:4px solid rgba(0,0,0,0);border-top-color:var(--accent);border-bottom:0}.drag-ghost .label.below,.sub-ghost .label.below,.draft-ghost .label.below{top:auto;bottom:-22px}.drag-ghost .label.below::after,.sub-ghost .label.below::after,.draft-ghost .label.below::after{bottom:auto;top:-4px;border:4px solid rgba(0,0,0,0);border-top-width:0;border-bottom-color:var(--accent)}.sub-ghost{top:5px;height:10px;bottom:auto;border-radius:999px;border-width:1.5px;border-color:var(--accent);background:rgba(252,181,160,.45);display:flex;align-items:center;justify-content:center}.sub-ghost.draft{border-style:dashed;background:rgba(252,181,160,.6)}.sub-ghost .label{font-size:9px;font-weight:700;color:#fff;background:var(--accent);padding:1px 5px;border-radius:999px}.sub-ghost .label::after{border-top-color:var(--accent)}.draft-ghost{background:rgba(210,175,140,.18);border-color:var(--accent);animation:draftPulse 1.6s ease-in-out infinite}.draft-ghost .label{background:var(--accent);color:#fff}.draft-ghost .label::after{border-top-color:var(--accent)}@keyframes draftPulse{0%,100%{background:rgba(210,175,140,.18)}50%{background:rgba(210,175,140,.32)}}.side-panel{position:fixed;top:calc(var(--appbar-offset) + 6px);right:14px;width:360px;max-height:calc(100vh - var(--appbar-offset) - 14px);overflow:hidden;background:#fff;border:1.5px solid var(--border);border-radius:var(--r-xl);box-shadow:0 16px 32px -10px rgba(210,175,140,.28),0 4px 12px -4px rgba(210,175,140,.14);z-index:51;display:flex;flex-direction:column;animation:slideIn .2s ease-out}@keyframes slideIn{from{transform:translateX(24px);opacity:0}to{transform:translateX(0);opacity:1}}.side-head{background:linear-gradient(180deg, var(--surface-3) 0%, #fff 100%);border-bottom:1.5px solid var(--border);padding:12px 16px;display:flex;align-items:center;gap:10px}.side-head h2{margin:0;font-size:14px;font-weight:800;color:var(--ink-1);font-family:"Zen Maru Gothic",sans-serif}.side-head .tag{font-size:10px;color:var(--accent-ink);background:var(--accent-50);padding:2px 8px;border-radius:999px;font-weight:700}.side-head .tag.editing{color:var(--warn-ink);background:var(--warn-bg)}.side-head .tag--staff{color:var(--ink-2);background:var(--surface-3);max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-head .x{margin-left:auto;border:0;width:28px;height:28px;border-radius:50%;background:var(--surface-3);cursor:pointer;color:var(--ink-2);font-size:16px;display:grid;place-items:center}.side-head .x:hover{background:var(--border);color:var(--ink-1)}.side-body{flex:1;overflow:auto;padding:12px 16px 68px;display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;font-weight:700;color:var(--ink-1);display:flex;align-items:center;gap:5px}.field label.switch-row{justify-content:flex-start;gap:8px}.switch-row{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}.switch-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.switch-ui{width:34px;height:20px;border-radius:999px;background:#ddd5cd;position:relative;transition:background-color .18s ease;flex:none}.switch-ui::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:transform .18s ease}.switch-input:checked+.switch-ui{background:#8ec3ff}.switch-input:checked+.switch-ui::after{transform:translateX(14px)}.switch-input:focus-visible+.switch-ui{box-shadow:0 0 0 3px rgba(142,195,255,.35)}.input{width:100%;height:34px;border:1.5px solid var(--border);border-radius:var(--r-md);background:#fff;color:var(--ink-1);padding:0 10px;font:inherit;font-size:12.5px;font-weight:500;transition:border-color .15s,box-shadow .15s}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-50)}textarea.input{height:auto;min-height:56px;resize:vertical;line-height:1.55;padding:8px 10px}.time-range-picker{display:flex;flex-direction:column;gap:8px;padding:6px 4px 2px;border:0;border-radius:0;background:var(--surface)}.time-range-picker.is-disabled{opacity:.7}.time-range-picker__readrow{display:flex;align-items:center;justify-content:space-between;gap:8px}.time-range-picker__big{font-size:20px;line-height:1.2;font-weight:800;color:var(--ink-1);font-variant-numeric:tabular-nums}.time-range-picker__big .tilde{color:var(--ink-3);font-weight:700;font-size:14px;margin:0 2px}.time-range-picker__dur{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-size:11.5px;font-weight:700;white-space:nowrap}.time-range-picker__dur.is-error{background:var(--danger-bg);color:var(--danger-ink)}.time-range-picker__rail-wrap{position:relative;height:38px}.time-range-picker__rail{position:absolute;top:50%;left:0;right:0;height:8px;transform:translateY(-50%);border-radius:999px;background:var(--surface-3)}.time-range-picker__fill{position:absolute;top:50%;height:8px;transform:translateY(-50%);border-radius:999px;background:linear-gradient(90deg, #f5b9a8, #f0a594)}.rt-input{position:absolute;top:0;left:0;width:100%;height:38px;margin:0;background:rgba(0,0,0,0);-webkit-appearance:none;appearance:none;pointer-events:none}.rt-input:focus{outline:none}.rt-input::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid #f0a594;box-shadow:0 2px 6px rgba(91,70,54,.25);cursor:grab;pointer-events:auto}.rt-input::-webkit-slider-thumb:active{cursor:grabbing;background:#fdeee4}.rt-input::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid #f0a594;box-shadow:0 2px 6px rgba(91,70,54,.25);cursor:grab;pointer-events:auto}.time-range-picker__ticks{display:flex;justify-content:space-between;padding:0 2px}.time-range-picker__ticks span{font-size:9.5px;color:#c9b9a3;font-variant-numeric:tabular-nums}.time-range-picker__nudge{display:flex;gap:8px}.time-range-picker__grp{flex:1;display:flex;align-items:center;justify-content:center;gap:6px}.time-range-picker__glab{font-size:10px;font-weight:800;color:var(--ink-3);margin-right:2px}.time-range-picker__nbtn{width:30px;height:30px;border:1.5px solid var(--border-strong);border-radius:8px;background:#fff;color:var(--ink-1);font-size:16px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.time-range-picker__nbtn:hover:not(:disabled){background:#fdeee4;border-color:#f0a594;color:var(--accent-ink)}.time-range-picker__nbtn:disabled{opacity:.5;cursor:default}.time-range-picker__nval{min-width:48px;text-align:center;font-size:13px;font-weight:800;color:var(--ink-1);font-variant-numeric:tabular-nums}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field--span-2{grid-column:1/span 2}.side-panel .field-row{grid-template-columns:repeat(2, minmax(0, 1fr))}.side-panel .field-row--staffday-top{grid-template-columns:repeat(2, minmax(0, 1fr)) max-content;align-items:end}.side-panel .field-row .field{min-width:0}.side-panel .field-row .input,.side-panel .field-row select.input{width:100%;max-width:none}.field-row--absence{grid-template-columns:minmax(0, 1fr) 150px;align-items:end}.side-panel .field-row--absence{grid-template-columns:minmax(0, 1fr) max-content;align-items:end}.field-row--absence-inline{grid-template-columns:max-content;align-items:end;gap:8px}.field-row--absence-inline.is-active{grid-template-columns:max-content minmax(0, 1fr) max-content}.side-panel .field-row--absence-inline{grid-template-columns:max-content;align-items:end}.side-panel .field-row--absence-inline.is-active{grid-template-columns:max-content minmax(0, 1fr) max-content}.field-row--absence-inline .field{min-width:0}.field-row--absence-inline .switch-row{height:34px;justify-content:flex-start}.field-row--absence-inline .checkbox-row{width:auto}.side-panel .input--time{width:100%;max-width:none}.field--inline-end{justify-content:stretch;align-self:end}.side-panel .field--inline-end{justify-content:flex-end}.field--switch-inline{display:flex;flex-direction:column;gap:5px;min-width:0}.field--switch-inline .switch-row{height:34px;justify-content:flex-start}.checkbox-row{display:inline-flex;align-items:center;gap:7px;cursor:pointer;user-select:none;white-space:nowrap;width:100%;height:34px;border:1.5px solid var(--border);border-radius:var(--r-md);padding:0 10px;background:#fff}.checkbox-row.is-disabled{opacity:.6}.side-panel .field-row--absence .checkbox-row{width:auto}.monthly-edit-modal .field-row{grid-template-columns:repeat(2, minmax(0, 1fr))}.monthly-edit-modal .field-row .field{min-width:0}.monthly-edit-modal .field-row .input,.monthly-edit-modal .field-row select.input{width:100%;max-width:none}.monthly-edit-modal .field--span-2{grid-column:1/span 2}.monthly-edit-modal .field-row--staffday-top{grid-template-columns:repeat(2, minmax(0, 1fr)) max-content;align-items:end}.monthly-edit-modal .field-row--absence{grid-template-columns:minmax(0, 1fr) max-content;align-items:end}.monthly-edit-modal .field-row--absence-inline{grid-template-columns:max-content;align-items:end}.monthly-edit-modal .field-row--absence-inline.is-active{grid-template-columns:max-content minmax(0, 1fr) max-content}.monthly-edit-modal .field--inline-end{justify-content:flex-end}.monthly-edit-modal .field--switch-inline{display:flex;flex-direction:column;gap:5px;min-width:0}.monthly-edit-modal .field--switch-inline .switch-row{height:34px;justify-content:flex-start}.monthly-edit-modal .field-row--absence .checkbox-row{width:auto}.settings-modal.monthly-edit-modal{width:min(360px,100vw - 28px)}.checkbox-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.checkbox-ui{width:16px;height:16px;border-radius:4px;border:1.5px solid #c7b39b;background:#fff;position:relative;transition:border-color .15s ease,background-color .15s ease;flex:none}.checkbox-input:checked+.checkbox-ui{background:#8ec3ff;border-color:#78b5fb}.checkbox-input:checked+.checkbox-ui::after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(42deg)}.checkbox-input:focus-visible+.checkbox-ui{box-shadow:0 0 0 3px rgba(142,195,255,.35)}.alert-inline{padding:8px 10px;border-radius:var(--r-md);background:var(--danger-bg);border:1.5px solid var(--danger-border);color:var(--danger-ink);font-size:11.5px;font-weight:500;display:flex;align-items:center;gap:7px;line-height:1.5;margin:12px 16px 0}.alert-inline .emoji-sq{font-size:14px;flex:none}.alert-inline .t{font-size:12px;font-weight:700;margin-bottom:1px}.settings-modal__notice{margin:0 0 2px;padding:10px 12px;background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-ink);align-items:flex-start}.settings-modal__notice .emoji-sq{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:rgba(240,182,108,.22);color:var(--warn-ink);font-size:12px;font-weight:800}.reflect-note{width:100%;border:1.5px solid #f3dca8;background:#fdf3e0;border-radius:12px;padding:12px 14px;color:#9a6a1c}.reflect-note__head{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;color:#9a6a1c;margin-bottom:9px}.reflect-note__icon{width:22px;height:22px;border-radius:7px;background:#fff;display:inline-grid;place-items:center;font-size:12px;flex:none}.reflect-note__principles{display:flex;flex-direction:column;gap:5px}.reflect-note__principle{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;color:#9a6a1c;line-height:1.5;opacity:.92}.reflect-note__principle b{color:#b3503c;font-weight:800;margin:0 3px}.reflect-note__dot{width:5px;height:5px;border-radius:999px;background:#e8a33d;margin-top:5px;flex:none}.reflect-note__changes{display:flex;flex-direction:column;gap:7px;margin-top:10px;padding-top:10px;border-top:1.5px dashed #f3dca8}.reflect-note__change{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.45}.reflect-note__tag{flex:none;min-width:54px;padding:2px 8px;border-radius:999px;margin-top:1px;text-align:center;font-size:10px;font-weight:800}.reflect-note__tag.is-join{background:#eaf1f9;color:#3f6694}.reflect-note__tag.is-retire{background:#f6f0e2;color:#8a715a}.reflect-note__tag.is-leave{background:#f5edf8;color:#7a4f8c}.reflect-note__text{color:var(--ink-1);font-weight:600}.reflect-note__text b{color:#b3503c;font-weight:800}.side-foot{position:absolute;left:0;right:0;bottom:0;background:#fff;border-top:1.5px solid var(--border);padding:10px 16px;display:flex;align-items:center;gap:8px}.side-foot .spacer{flex:1}.side-foot .btn{height:32px;padding:0 12px;font-size:12px;white-space:nowrap}.side-foot .danger{color:var(--danger-ink);background:rgba(0,0,0,0);border:1.5px solid rgba(0,0,0,0);box-shadow:none}.side-foot .danger:hover{background:var(--danger-bg);border-color:var(--danger-border);transform:none}.popover{position:fixed;z-index:40;width:300px;background:#fff;border:1.5px solid var(--border);border-radius:var(--r-lg);box-shadow:0 16px 32px -10px rgba(210,175,140,.28);padding:16px;pointer-events:none;animation:popIn .15s ease-out}.validation-popover-scrim{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,0)}.popover.is-validation{z-index:60;width:320px;padding:0;border-radius:20px;box-shadow:0 12px 40px -10px rgba(91,70,54,.28),0 4px 12px -6px rgba(91,70,54,.12);display:flex;flex-direction:column;max-height:min(70vh,420px);overflow:visible;pointer-events:auto}.popover.is-validation::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}.popover.is-validation.is-above::before{top:auto;bottom:-14px}@keyframes popIn{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:translateY(0) scale(1)}}.popover .p-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;border-bottom:1.5px dashed var(--border)}.popover.is-validation .p-head{margin-bottom:0;padding:12px 14px;border-bottom:1.5px solid var(--border);gap:8px;flex:none;background:var(--surface);border-radius:20px 20px 0 0}.popover.is-validation .p-head .ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:16px;flex:none}.popover.is-validation .p-head .ic.short{background:var(--danger-bg)}.popover.is-validation .p-head .ic.ok{background:#eef6ec}.popover.is-validation .p-head .t{font-size:15px;color:var(--ink-1);font-weight:800;white-space:nowrap;flex:none}.popover.is-validation .p-head .mono{font-variant-numeric:tabular-nums}.popover.is-validation .p-head .status{margin-left:auto;font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;white-space:nowrap;flex:none}.popover.is-validation .p-head .status.short{background:var(--danger-bg);color:var(--danger-ink)}.popover.is-validation .p-head .status.ok{background:#eef6ec;color:#4a7a4f}.popover.is-validation .p-head .pinbtn{height:24px;padding:0 9px;border:0;border-radius:999px;display:inline-flex;align-items:center;gap:4px;cursor:pointer;color:var(--accent-ink);background:var(--accent-bg);font-size:11px;font-weight:800;flex:none;white-space:nowrap}.popover.is-validation .p-head .pinbtn:hover{background:#f9d9cd}.popover .emoji-big{width:36px;height:36px;border-radius:10px;background:var(--surface-3);display:grid;place-items:center}.popover .emoji-big.c-care{background:#fff0e8}.popover .emoji-big.c-kitchen{background:#eef7e7}.popover .emoji-big.c-admin{background:#fff7db}.popover .emoji-big.c-night{background:#ebe9f7}.popover .time{font-size:15px;color:var(--ink-1);font-weight:800}.popover .dur{font-size:11px;color:var(--ink-3);font-weight:600;margin-top:1px}.popover dl{margin:0;display:grid;grid-template-columns:64px 1fr;gap:8px 12px;font-size:12.5px}.popover dt{color:var(--ink-3);font-weight:600;display:inline-flex;align-items:center;gap:4px}.popover dd{margin:0;color:var(--ink-1);font-weight:500}.popover .subline{font-size:11px;color:var(--ink-3);margin-top:1px}.popover-lines{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:4px;line-height:1.4}.popover-lines li{margin:0;color:var(--ink-2)}.popover-lines li.shortage{color:var(--danger-ink);font-weight:700}.popover-lines li strong{font-weight:800}.popover .phint{margin-top:10px;font-size:10.5px;color:var(--ink-4);text-align:right;font-weight:600}.popover.is-validation .p-body{flex:1 1 auto;padding:8px 14px 12px;overflow-y:auto;min-height:0;background:var(--surface)}.popover.is-validation.pinned .p-body{border-radius:0 0 20px 20px}.popover.is-validation .p-body::-webkit-scrollbar{width:9px}.popover.is-validation .p-body::-webkit-scrollbar-thumb{background:#e6d4bc;border-radius:9px;border:3px solid var(--surface)}.popover.is-validation .sec{margin-top:9px}.popover.is-validation .sec:first-child{margin-top:0}.popover.is-validation .sec-title{font-size:10px;font-weight:800;color:var(--ink-3);letter-spacing:.04em;margin:9px 0 3px}.popover.is-validation .vrow{display:flex;align-items:center;gap:8px;padding:5px 0}.popover.is-validation .name{font-size:12.5px;font-weight:700;color:var(--ink-1);flex:1;min-width:0;display:flex;align-items:center}.popover.is-validation .name .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.popover.is-validation .name .loc{font-size:9.5px;font-weight:700;color:var(--accent-ink);background:#fdeee4;padding:1px 6px 1px 5px;border-radius:5px;margin-left:6px;white-space:nowrap}.popover.is-validation .frac{font-variant-numeric:tabular-nums;font-weight:800;font-size:13px;white-space:nowrap}.popover.is-validation .frac .cur{color:var(--danger-ink)}.popover.is-validation .frac .cur.met{color:#4a7a4f}.popover.is-validation .frac .sep{color:var(--ink-4);margin:0 1px}.popover.is-validation .frac .req{color:var(--ink-2)}.popover.is-validation .lack{font-size:10.5px;font-weight:800;white-space:nowrap;padding:2px 9px;border-radius:999px;background:var(--danger-bg);color:var(--danger-ink);min-width:50px;text-align:center}.popover.is-validation .lack.met{background:#eef6ec;color:#4a7a4f;min-width:32px}.popover.is-validation .met-summary{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 11px;border-radius:10px;background:#eef6ec;cursor:pointer;font-size:11.5px;font-weight:700;color:#4a7a4f}.popover.is-validation .met-summary .cnt{margin-left:auto;background:#fff;padding:1px 8px;border-radius:999px}.popover.is-validation .met-summary .cv{font-size:11px;width:14px;text-align:center}.popover.is-validation .met-list{display:none}.popover.is-validation .met-list.open{display:block}.popover.is-validation .foot-hint{padding:8px 14px;border-top:1.5px solid var(--border);font-size:10.5px;color:var(--ink-4);flex:none;display:flex;align-items:center;gap:5px;background:var(--surface);border-radius:0 0 20px 20px}.empty{margin:22px;border:1.5px solid var(--border);border-radius:var(--r-lg);background:#fff;padding:14px}.timeline-body::-webkit-scrollbar{height:12px;width:12px}.timeline-body::-webkit-scrollbar-thumb{background:#e6d4bc;border-radius:12px;border:3px solid var(--surface-2)}.timeline-body::-webkit-scrollbar-track{background:var(--surface-2)}@media(max-width: 1100px){.side-panel{position:static;width:auto;max-height:none;margin-top:12px}}@media(max-width: 900px){:root{--page-edge: 12px;--appbar-top: 8px;--appbar-height: 94px;--appbar-offset: calc(var(--appbar-top) + var(--appbar-height) + 10px)}.appbar{height:auto;min-height:60px;padding:8px 12px;gap:8px;flex-wrap:wrap;left:var(--page-edge);right:var(--page-edge);top:var(--appbar-top)}.main-nav{order:3;width:100%;margin-left:0;overflow-x:auto;white-space:nowrap;padding-bottom:2px;-webkit-overflow-scrolling:touch}.main-nav a{padding:6px 11px;font-size:12px;flex:none}.brand{font-size:14px;gap:8px}.brand-mark{width:30px;height:30px}.admin-icons{margin-left:auto;padding-left:10px;gap:6px}.icon-btn{width:34px;height:34px}.user-menu{margin-left:auto}.user-dropdown{right:-4px;width:min(240px,100vw - 24px)}.page-head{padding:16px;gap:10px}.page-head .kpis{width:100%;max-width:100%;min-width:0;margin-left:0;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.page-head .kpis .kpi{flex:none}.layout{padding:0 12px 12px}.timeline-body{max-height:clamp(240px,100vh - 320px,660px)}.layout.layout--with-warning .timeline-body{max-height:clamp(210px,100vh - 390px,590px)}.layout.layout--with-warning.layout--with-warning-multi .timeline-body{max-height:clamp(180px,100vh - 430px,540px)}.toolbar,.notice{margin-left:12px;margin-right:12px;padding-left:0;padding-right:0}}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:100%;max-width:420px;background:#fff;border:1.5px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);padding:24px}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:10px}.auth-brand__texts{min-width:0}.auth-card h1{margin:0 0 4px;font-size:24px;font-family:"Zen Maru Gothic",sans-serif}.auth-actions{margin-top:10px;display:flex;justify-content:center}.auth-btn{min-width:132px;margin-top:0;justify-content:center}.auth-card .field{margin-bottom:12px}.password-change-card{max-width:480px}.password-change-head{margin:8px 0 16px}.password-change-head h2{margin:0;font-family:"Zen Maru Gothic",sans-serif;font-size:22px;color:var(--ink-1)}.password-change-head p{margin:4px 0 0;color:var(--ink-3);font-size:12px}.password-change-head .password-change-kicker{margin:0 0 4px;color:var(--accent-ink);font-weight:800;letter-spacing:.08em}.password-change-required{line-height:1.6}.password-change-actions{gap:10px}.password-change-logout{display:block;margin:14px auto 0;padding:4px 8px;border:0;background:rgba(0,0,0,0);color:var(--ink-3);font-size:12px;cursor:pointer}.password-change-logout:hover{color:var(--accent-ink);text-decoration:underline}.admin-page .card{background:#fff;border:1.5px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-soft);margin:0 22px 16px;padding:18px}.admin-page .card h2{margin:0 0 12px;font-size:17px}.admin-page .page-head{margin-bottom:8px}.admin-page .page-head .page-sub{margin:8px 0 0;font-size:13px;color:var(--ink-3);font-weight:500}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--ink-3);font-weight:700}.month-picker-native{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px}.month-picker-native__controls{display:inline-flex;align-items:center;gap:10px}.month-picker-trigger{min-width:0;width:auto;height:38px;justify-content:space-between;display:inline-flex;align-items:center;padding:0 10px 0 12px;cursor:pointer;border-radius:12px;border-color:#d8c9b9;box-shadow:0 1px 0 rgba(0,0,0,.03),inset 0 1px 0 hsla(0,0%,100%,.7)}.month-picker-trigger.is-disabled,.month-picker-trigger:disabled{opacity:.45;cursor:not-allowed;pointer-events:none;background:linear-gradient(180deg, #fff, #fdf9f4)}.month-picker-trigger__text{font-size:14px;font-weight:700;color:var(--ink-1)}.month-picker-trigger__icons{display:inline-flex;align-items:center;gap:8px;color:#9b8e80}.month-picker-trigger__calendar{font-size:13px;line-height:1}.month-picker-trigger__caret{font-size:11px;line-height:1;transform:translateY(-1px)}.month-picker-now{height:38px;min-width:56px;justify-content:center;white-space:nowrap;border-radius:12px}.month-picker-popover{position:absolute;top:calc(100% + 10px);left:0;z-index:40;width:300px;border:1.5px solid var(--border);border-radius:var(--r-lg);background:#fff;box-shadow:var(--shadow-lg);padding:10px 12px 10px}.month-picker-popover__head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;gap:10px;margin-bottom:10px}.month-picker-popover__year{text-align:center;font-size:22px;font-weight:700;line-height:1;letter-spacing:.01em;color:var(--ink-1)}.month-picker-popover__nav{border:1px solid var(--border);background:var(--surface-3);height:30px;border-radius:9px;cursor:pointer;font-size:16px;color:var(--ink-2)}.month-picker-native__controls .btn.is-disabled,.month-picker-native__controls .btn:disabled,.month-picker-popover__nav.is-disabled,.month-picker-popover__nav:disabled,.month-picker-popover__month.is-disabled,.month-picker-popover__month:disabled,.month-picker-popover__today.is-disabled,.month-picker-popover__today:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.month-picker-popover__months{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:8px}.month-picker-popover__month{height:38px;border:1px solid rgba(0,0,0,0);border-radius:9px;background:#fff;color:var(--ink-1);font-size:14px;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease}.month-picker-popover__month:hover{background:var(--surface-3);border-color:var(--border)}.month-picker-popover__month.active{background:var(--accent-50);color:var(--accent-ink);border-color:#efc6b7}.month-picker-popover__foot{margin-top:10px;padding-top:8px;border-top:1px solid var(--divider);display:flex;justify-content:flex-end}.month-picker-popover__today{border:0;background:rgba(0,0,0,0);color:var(--accent-ink);font-size:13px;font-weight:700;cursor:pointer;padding:4px 8px}@media(max-width: 720px){.main.app:not(.admin-page) .page-head .titles{width:100%;min-width:0}.page-head h1{font-size:22px}.h1-trigger{max-width:100%}.month-picker-native__controls{gap:8px}.month-picker-trigger{min-width:160px}.month-picker-popover{width:288px}}.field-row{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:10px}.field-row--2{grid-template-columns:repeat(2, minmax(0, 1fr))}.field-row--3{grid-template-columns:repeat(3, minmax(0, 1fr))}.input{height:36px;border:1.5px solid var(--border-strong);border-radius:var(--r-md);padding:0 10px;font:inherit;color:var(--ink-1);background:#fff;font-size:13px;font-variant-numeric:tabular-nums}select.input{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg, transparent 50%, #9a826a 50%),linear-gradient(135deg, #9a826a 50%, transparent 50%);background-position:calc(100% - 14px) calc(50% - 2px),calc(100% - 9px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px}input[type=number].input{text-align:right;appearance:textfield;-moz-appearance:textfield}input[type=number].input::-webkit-outer-spin-button,input[type=number].input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}textarea.input{min-height:88px;padding-top:8px}.input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(245,160,151,.18)}.input--warn{border-color:#e4787b;background:#fff6f6}.admin-page h3{margin:14px 0 8px;font-size:14px}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{border-bottom:1.5px solid var(--divider);padding:10px 8px;text-align:left;vertical-align:middle}.admin-table th{color:var(--ink-3);font-size:12px;font-weight:700}.admin-table tbody tr:hover td{background:var(--surface-3)}.admin-table .actions{display:flex;gap:6px}.admin-table .badge.lock{margin-left:8px;font-size:10px;background:#fff5e8;color:#8b4e16;border:1px solid #f2c797;border-radius:999px;padding:2px 7px;white-space:nowrap}.monthly-grid-wrap{overflow:scroll;max-height:calc(100vh - 260px);border:0;border-radius:0;background:rgba(0,0,0,0);scrollbar-gutter:stable}.monthly-grid-wrap::-webkit-scrollbar{width:14px;height:14px}.monthly-grid-wrap::-webkit-scrollbar-thumb{background:#e6d4bc;border-radius:12px;border:3px solid var(--surface-2)}.monthly-grid-wrap::-webkit-scrollbar-track{background:var(--surface-2)}.admin-page .monthly-card{padding:0;overflow:hidden}.admin-page .monthly-card .notice{margin:12px 14px 0}.monthly-grid{--monthly-head-height: 30px;width:max-content;border-collapse:separate;border-spacing:0;min-width:100%}.monthly-grid th,.monthly-grid td{border-right:1.5px solid var(--border);border-bottom:1.5px solid var(--border);padding:4px 7px;font-size:11.5px;vertical-align:middle;background:#fff}.monthly-grid thead th{position:sticky;top:0;z-index:8;height:var(--monthly-head-height);background:var(--surface-2);color:var(--ink-2);font-weight:700;text-align:center;white-space:nowrap;padding:0 4px;vertical-align:middle}.monthly-grid .date-col{width:88px;max-width:88px;min-width:88px}.monthly-grid thead .date-col.is-jumpable{cursor:pointer;transition:background-color .16s ease,color .16s ease}.monthly-grid thead .date-col.is-jumpable:hover{background:#f7ede4;color:#8c5236}.monthly-grid thead .date-col.is-readonly-past{background:#f3eee6;color:#9a8876}.monthly-grid thead .date-col.is-jumpable.is-readonly-past:hover{background:#f3eee6;color:#8f7e6d}.monthly-grid .sticky-col{position:sticky;left:0;z-index:3;background:var(--surface-2)}.monthly-grid thead .sticky-col{z-index:10;background:var(--surface-2)}.monthly-grid thead .staff-col{text-align:left;padding-left:14px;background:var(--surface-2);color:var(--ink-3);font-weight:700}.monthly-grid .staff-col{min-width:124px;max-width:124px;width:124px}.monthly-grid .staff-name{font-weight:700;color:var(--ink-1);white-space:nowrap}.monthly-grid .staff-meta{margin-top:2px;color:var(--ink-3);font-size:10px;white-space:nowrap}.monthly-grid td.day{width:88px;min-width:88px;max-width:88px;height:40px;padding:0 3px;text-align:center;vertical-align:middle;position:relative;overflow:hidden}.monthly-grid td.day.cell{padding:0 3px}.monthly-grid tbody .monthly-validation-row td{position:sticky;top:var(--monthly-head-height);z-index:6;height:24px;padding:0 7px;background:#faf4ed;vertical-align:middle}.monthly-grid .validation-cell{text-align:center}.monthly-grid .validation-cell .vbadge,.monthly-grid .validation-cell .voff{position:relative;top:3px}.monthly-grid .monthly-validation-row .sticky-col{background:var(--surface-2);text-align:right;padding:1px 14px;z-index:9}.monthly-grid .monthly-validation-row .staff-name{font-size:10.5px;font-weight:500;color:var(--ink-3)}.monthly-grid .validation-cell.is-warn{background:#f8ddcb}.monthly-grid .validation-cell.is-ok{background:#eef5ea}.monthly-grid .vbadge{display:inline-flex;align-items:baseline;gap:3px;line-height:1}.monthly-grid .vbadge b{font-size:12px;font-weight:800}.monthly-grid .vbadge .req{font-size:10px;font-weight:600;opacity:.72}.monthly-grid .vbadge.ok{color:#6ba368}.monthly-grid .vbadge.short{color:#c2683f}.monthly-grid .voff{color:var(--ink-4);font-size:11px}.monthly-grid .cell{cursor:pointer;transition:background-color .15s;width:88px;max-width:88px;min-width:88px}.monthly-grid .cell:hover{background:#f9f2e9}.monthly-grid .cell.is-readonly-past{cursor:default;background:#fbf7f0;color:#9b8b7c}.monthly-grid .cell.is-readonly-past:hover{background:#fbf7f0}.monthly-grid .validation-cell.is-readonly-past{background:#f4efe7}.monthly-grid .validation-cell.is-readonly-past .vbadge{opacity:.78}.monthly-grid .cell.is-readonly-past .monthly-time{color:#9b8b7c}.monthly-grid .cell.is-readonly-past .monthly-work-bar{background:#ece1d4}.monthly-grid .cell.is-readonly-past .monthly-work-fill{background:#b7cda9;opacity:.82}.monthly-grid .cell.is-readonly-past .monthly-break-fill{opacity:.78}.monthly-grid .cell.is-readonly-past .monthly-chip{opacity:.82}.monthly-grid .cell.is-locked{cursor:not-allowed;background:#f8f8f8}.monthly-grid .cell.is-row-locked{position:relative}.monthly-grid .staff-col.is-row-locked{overflow:visible}.monthly-grid tr.is-row-locked .staff-col.is-row-locked .row-lock-overlay{z-index:2;border-right:1px solid rgba(232,182,138,.35);overflow:visible}.monthly-grid tr.is-row-locked .staff-col.is-row-locked .row-lock-text{max-width:calc(100% - 4px);padding:3px 8px;font-size:10px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monthly-grid tr.is-row-locked .cell.is-row-locked .row-lock-overlay{z-index:2}.monthly-grid .monthly-row-lock-pill{position:absolute;left:80px;top:50%;transform:translateY(-50%);z-index:4;display:inline-flex;align-items:center;gap:6px;background:hsla(0,0%,100%,.94);color:#8b4e16;border:1px solid #f2c797;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;line-height:1.1;box-shadow:0 2px 8px rgba(139,78,22,.12);white-space:nowrap;pointer-events:none}.monthly-grid .cell .cell-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monthly-grid .cell{text-align:center}.monthly-grid td.week-split{box-shadow:inset -1px 0 0 #d1b89a}.monthly-grid th.week-split{box-shadow:inset -1px 0 0 #d1b89a}.monthly-grid th.is-sat{background:#edf6ff;color:#1f5f9a}.monthly-grid th.is-sun{background:#fff1f3;color:#a23a47}.monthly-grid td.is-sat{background:rgba(238,244,251,.5)}.monthly-grid td.is-sun{background:rgba(251,238,241,.5)}.monthly-grid .monthly-validation-row td.is-sat{background:#e7eef8}.monthly-grid .monthly-validation-row td.is-sun{background:#f8e6eb}.monthly-grid th.is-closure{background:#f9e5e9;color:#923f4c}.monthly-grid td.is-closure,.monthly-grid .monthly-validation-row td.is-closure{background:#faeef0}.monthly-closure-mark{display:block;margin-top:-2px;color:#b85a67;font-size:8px;line-height:1}.monthly-grid th.is-sat.is-readonly-past{background:#edf1f3;color:#6f8797}.monthly-grid th.is-sun.is-readonly-past{background:#f4ecee;color:#9a6b72}.monthly-grid .monthly-validation-row td.is-readonly-past{background:#f4efe7}.monthly-grid .monthly-validation-row td.is-sat.is-readonly-past{background:#edf1f3}.monthly-grid .monthly-validation-row td.is-sun.is-readonly-past{background:#f4ecee}.monthly-grid .cell.is-holiday{background:#fff;color:var(--ink-2);font-weight:700;white-space:nowrap}.monthly-grid .cell.is-partial{background:#fff;color:var(--ink-2)}.monthly-grid .cell.is-nowork{color:var(--ink-3)}.monthly-grid .cell.off-cell{background:rgba(180,155,125,.045)}.monthly-grid td.is-sat.is-readonly-past{background:#f1f4f5}.monthly-grid td.is-sun.is-readonly-past{background:#f6eff0}.monthly-grid .cell.is-holiday.is-readonly-past,.monthly-grid .cell.is-partial.is-readonly-past{background:#fbf7f0}.monthly-grid .cell.off-cell.is-readonly-past{background:#f7f1e8}.monthly-grid .cell-off{color:var(--ink-4);font-size:11px;line-height:1}.monthly-grid .monthly-chip{display:inline-block;font-size:10px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap}.monthly-grid .monthly-chip--absence{background:#ede7f6;color:#6b5b93}.monthly-grid .monthly-chip--sick{background:#fdecef;color:#b05068}.monthly-grid .monthly-mono{font-family:"M PLUS Rounded 1c","Hiragino Sans","Noto Sans JP",sans-serif;font-variant-numeric:tabular-nums}.monthly-grid .monthly-tw{display:inline-flex;flex-direction:column;align-items:center;vertical-align:top;width:66px;max-width:66px;min-width:66px;gap:4px;margin:0 auto}.monthly-grid .monthly-time{display:flex;align-items:center;justify-content:center;width:auto;max-width:100%;align-self:center;min-height:15px;padding:1px 0;box-sizing:border-box;font-size:9px;font-weight:600;color:var(--ink-3);line-height:1;text-align:center;white-space:nowrap}.monthly-grid .monthly-time.is-diff{display:inline-flex;align-items:center;justify-content:center;color:var(--warn-ink);font-size:9px;font-weight:700;line-height:10px;background:var(--warn-bg);border-radius:4px;padding:2px 5px;border:0;box-shadow:inset 0 0 0 1px var(--warn-border)}.monthly-grid .monthly-work-bar{display:block;position:relative;height:2px;border-radius:2px;background:#efe6d8;width:100%}.monthly-grid .monthly-work-fill{display:block;position:absolute;top:0;bottom:0;border-radius:2px;background:#a9d29d}.monthly-grid .monthly-work-fill.is-diff{background:#eab94e}.monthly-grid .monthly-break-fill{display:block;position:absolute;top:-1px;bottom:-1px;background:#8c79b8;border-radius:1px}.monthly-grid .monthly-tip{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);background:#3d2f24;color:#fff;font-size:10px;font-weight:600;padding:5px 9px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:30;box-shadow:0 6px 16px -4px rgba(0,0,0,.3)}.monthly-grid .monthly-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid rgba(0,0,0,0);border-top-color:#3d2f24}.monthly-grid td.day:hover .monthly-tip{opacity:1}@media(max-width: 900px){.monthly-grid-wrap{max-height:calc(100vh - 235px)}}.creds{margin-top:10px;padding:10px;border-radius:10px;border:1px dashed var(--border-strong);background:var(--surface-2)}.notice--error{color:#b13d40;font-weight:600}.notice--success{background:#eef9f1;border:1px solid #b9e2c4;color:#2e7b46}.settings-flash{margin:0 22px 16px;display:flex;flex-direction:column;gap:8px}.settings-flash .notice{margin:0}.settings-layout{margin:0 22px 22px;display:grid;gap:22px;grid-template-columns:220px minmax(0, 1fr)}.settings-layout>.card{margin:0}.settings-content>.card{margin:0}.settings-sidebar{position:sticky;top:80px;align-self:start;padding:8px;border-radius:16px}.settings-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.settings-nav-item{width:100%;border:1px solid rgba(0,0,0,0);border-radius:12px;background:rgba(0,0,0,0);text-align:left;padding:10px 12px;display:flex;align-items:center;gap:8px;cursor:pointer;min-height:40px}.settings-nav-item:hover{background:var(--surface-3)}.settings-nav-item.is-active{border-color:var(--border-strong);background:var(--accent-50)}.settings-nav-item__label{font-size:13px;color:var(--ink-2);font-weight:700}.settings-nav-item__lock{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:#f8eee9;color:#9c6e46;font-size:10px}.settings-nav-item.is-active .settings-nav-item__label{color:var(--accent-ink)}.settings-nav-item__count{margin-left:auto;padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--ink-3);font-size:11px;font-weight:700}.settings-nav-item.is-active .settings-nav-item__count{background:#fff;color:var(--accent-ink)}.settings-content{min-width:0}.settings-section{min-height:520px;padding:22px 24px}.settings-section .notice{margin:0 0 10px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid var(--divider);margin-bottom:14px}.section-head__texts h2{margin:0 0 4px;font-size:18px}.section-head__texts p{margin:0;font-size:12px;color:var(--ink-3);line-height:1.45}.section-head__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.settings-lock-note{margin-top:5px !important;display:inline-flex;align-items:center;gap:6px;font-size:11px !important;font-weight:700;color:#9c6e46 !important;background:#f8eee9;border:1px solid #f2d5bf;border-radius:999px;padding:3px 10px}.staff-list-filters{display:flex;align-items:center;gap:8px;margin:0 0 12px}.staff-filter-chip{height:30px;padding:0 13px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease,box-shadow .12s ease}.staff-filter-chip:hover{border-color:var(--border-strong);box-shadow:var(--shadow-1)}.staff-filter-chip.on{background:var(--accent-50);border-color:var(--accent);color:var(--accent-ink)}.staff-filter-chip__count{font-size:10.5px;color:var(--ink-4)}.staff-filter-chip.on .staff-filter-chip__count{color:var(--accent-ink)}.staff-list-filters__spacer{flex:1}.staff-list-total{color:var(--ink-3);font-size:12px;font-weight:700}.crud-list{display:flex;flex-direction:column;gap:8px}.crud-item{border:1.5px solid var(--border);border-radius:14px;padding:10px 12px 10px 4px;display:grid;align-items:center;gap:14px;background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease,opacity .15s ease}.settings-layout .crud-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.crud-item.is-drag-over{border-color:#e3b68e;box-shadow:0 0 0 2px rgba(227,182,142,.2)}.crud-item.is-dragging{opacity:.62}.crud-item--simple{grid-template-columns:28px minmax(0, 1fr) auto;min-height:50px}.crud-item--class{grid-template-columns:28px minmax(0, 1fr) auto;align-items:start}.crud-item--staff{grid-template-columns:28px minmax(0, 1fr) auto;column-gap:12px;padding:12px 16px 12px 4px;align-items:center}.settings-layout .crud-item--staff:hover{border-color:var(--border-strong);box-shadow:0 4px 14px -6px rgba(91,70,54,.18)}.crud-item--staff.is-disabled{background:var(--surface-2);border-style:dashed;border-color:var(--border-strong)}.crud-item--staff.is-disabled .staff-list-row__name{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--ink-4);text-decoration-thickness:1.5px}.crud-item--staff.is-disabled .staff-list-row__fields{opacity:.7}.crud-item--validation{grid-template-columns:28px 16px minmax(92px, 150px) minmax(76px, 140px) 134px 116px 74px auto;column-gap:8px;padding-right:14px}.crud-item--validation.is-disabled{opacity:.7;background:var(--surface-2)}.crud-item--validation.is-disabled .validation-row__task,.crud-item--validation.is-disabled .validation-row__location,.crud-item--validation.is-disabled .validation-row__required,.crud-item--validation.is-disabled .pill{color:var(--ink-3)}.crud-item__simple-name{font-size:14px;font-weight:700;color:var(--ink-1)}.crud-item__drag{width:28px;min-width:28px;height:100%;display:grid;place-items:center;border-radius:8px;background:rgba(0,0,0,0);color:var(--ink-3);cursor:grab;user-select:none;transition:background .12s ease,color .12s ease}.crud-item__drag svg{width:14px;height:20px;fill:currentColor}.crud-item__drag:active{cursor:grabbing}.crud-item__drag.disabled{cursor:default;opacity:.55}.crud-item__drag:not(.disabled):hover{background:var(--surface-3);color:var(--ink-2)}.crud-item__title{margin:0;font-size:14px;font-weight:700;color:var(--ink-1)}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-size:11px;font-weight:700}.pill--accent{background:var(--accent-50);color:var(--accent-ink)}.pill--soft{font-size:12px;padding:5px 12px;font-variant-numeric:tabular-nums;white-space:nowrap}.class-segment-row{min-width:0;display:flex;flex-direction:column;gap:9px}.class-segment-head{display:flex;align-items:center;gap:0;cursor:pointer}.class-segment-titlegroup{width:min(400px,100%);flex:0 1 400px;min-width:0;display:flex;align-items:center;gap:9px}.class-row__title{font-size:14px;font-weight:800;color:var(--ink-1);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-segment-count{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-size:10.5px;font-weight:800;white-space:nowrap}.class-segment-tlrow{display:flex;align-items:center;gap:10px}.class-segment-side{flex:none;display:flex;flex-direction:column;align-items:center;gap:5px}.class-max-count{min-width:58px;display:inline-flex;align-items:baseline;justify-content:center;gap:2px;font-variant-numeric:tabular-nums;white-space:nowrap}.class-segment-head .class-max-count{margin-left:10px;padding-right:0}.class-max-count__label{color:var(--ink-3);font-size:9px;font-weight:800}.class-max-count__value{color:var(--ink-1);font-size:14px;font-weight:900}.class-max-count__unit{color:var(--ink-3);font-size:9px;font-weight:800}.class-mini-timeline{position:relative;width:min(400px,100%);height:20px;flex:0 1 400px;border-radius:6px;background:var(--surface-3);overflow:hidden}.class-mini-seg,.class-mini-gap{position:absolute;top:0;bottom:0}.class-mini-seg{display:flex;align-items:center;justify-content:center;border-right:2px solid #fff;color:#fff;font-size:9px;font-weight:900;line-height:1;white-space:nowrap;overflow:hidden}.class-mini-gap{background:repeating-linear-gradient(45deg, #efe7da 0 4px, var(--surface-3) 4px 8px)}.class-mini-seg.s0,.class-panel-band.s0,.class-seg-dot.s0{background:#ef9f95}.class-mini-seg.s1,.class-panel-band.s1,.class-seg-dot.s1{background:#e8b462}.class-mini-seg.s2,.class-panel-band.s2,.class-seg-dot.s2{background:#a9cb80}.class-mini-seg.s3,.class-panel-band.s3,.class-seg-dot.s3{background:#84bfd0}.class-mini-seg.s4,.class-panel-band.s4,.class-seg-dot.s4{background:#9bb6e0}.class-mini-seg.s5,.class-panel-band.s5,.class-seg-dot.s5{background:#c4a8dc}.class-detail-toggle{height:28px;display:inline-flex;align-items:center;gap:4px;padding:0 12px;border:0;border-radius:8px;background:var(--surface-3);color:var(--ink-2);font:inherit;font-size:11.5px;font-weight:800;cursor:pointer;white-space:nowrap}.class-detail-toggle:hover{background:var(--border);color:var(--ink-1)}.class-detail-toggle.open{background:var(--accent-50);color:var(--accent-ink)}.class-detail-toggle .ar{display:inline-block;font-size:11px;transition:transform .16s ease}.class-detail-toggle.open .ar{transform:rotate(180deg)}.class-segment-detail{padding-top:9px;border-top:1.5px dashed var(--border)}.class-segline{display:grid;grid-template-columns:100px max-content 38px;align-items:center;gap:8px;padding:5px 0}.class-segline+.class-segline{border-top:1px solid var(--surface-3)}.class-segline--head{padding-top:0;padding-bottom:6px;border-bottom:1px solid var(--surface-3);color:var(--ink-3);font-size:9.5px;font-weight:900}.class-segline__time{min-width:100px;display:inline-flex;align-items:center;gap:6px;color:var(--ink-1);font-size:11.5px;font-weight:900;font-variant-numeric:tabular-nums}.class-segline--head .class-segline__time{color:var(--ink-3);font-size:9.5px}.class-seg-dot{width:8px;height:8px;border-radius:3px;flex:none}.class-segline__ages{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.class-seg-head-age{min-width:38px;text-align:center;font-size:9.5px;font-weight:900}.class-seg-head-age.c0{color:#c4685e}.class-seg-head-age.c1{color:#b1813a}.class-seg-head-age.c2{color:#6f8f4e}.class-seg-head-age.c3{color:#4a8a83}.class-seg-head-age.c4{color:#5a76a8}.class-seg-head-age.c5{color:#8a6aaa}.agechip{min-width:38px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:800;font-variant-numeric:tabular-nums}.agechip .d{width:6px;height:6px;border-radius:50%}.agechip.ac0{background:#fdeceb;color:#c4685e}.agechip.ac0 .d{background:#ef9f95}.agechip.ac1{background:#fbf1de;color:#b1813a}.agechip.ac1 .d{background:#e8b462}.agechip.ac2{background:#eef5e3;color:#6f8f4e}.agechip.ac2 .d{background:#a9cb80}.agechip.ac3{background:#e4f2f3;color:#4a8a83}.agechip.ac3 .d{background:#84bfd0}.agechip.ac4{background:#e9eff8;color:#5a76a8}.agechip.ac4 .d{background:#9bb6e0}.agechip.ac5{background:#f2ebf8;color:#8a6aaa}.agechip.ac5 .d{background:#c4a8dc}.agechip.zero{background:var(--surface-2);color:var(--ink-4)}.agechip.zero .d{background:var(--ink-4)}.class-segline__total{min-width:38px;text-align:center;justify-self:start;padding:2px 9px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-size:10.5px;font-weight:900;font-variant-numeric:tabular-nums}.class-segline--head .class-segline__total{background:rgba(0,0,0,0);color:var(--ink-3);padding:0;font-size:9.5px}.age-cell.has-count .age-cell__count{color:var(--ink-1)}.age-cell__unit{margin-left:1px;font-size:8px;color:var(--ink-4)}.age-cell.has-count .age-cell__unit{color:var(--ink-3)}.staff-list-row{display:flex;flex-direction:column;gap:8px;min-width:0}.staff-list-row__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.staff-list-row__name{color:var(--ink-1);font-size:14px;font-weight:700;line-height:1.3}.staff-role-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:700;line-height:1.35;white-space:nowrap;background:var(--accent-50);color:var(--accent-ink)}.staff-role-pill.is-nurse{background:#eaf1f9;color:#3f6694}.staff-role-pill.is-admin{background:#fdf3e0;color:#9a6a1c}.staff-role-pill.is-kitchen{background:#eef6ec;color:#4a7a4f}.staff-status-badge,.staff-retired-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;white-space:nowrap;font-size:10px;font-weight:700;line-height:1.35;padding:2px 9px}.staff-status-badge.is-leave{background:#f5edf8;color:#7a4f8c}.staff-status-badge.is-leave-soon{background:var(--surface-3);color:var(--ink-2)}.staff-status-badge.is-retiring{background:#fdf3e0;color:#9a6a1c}.staff-status-badge.is-joining{background:#eaf1f9;color:#3f6694}.staff-retired-pill{background:#efe7dd;color:var(--ink-2);font-size:10.5px;font-weight:800}.staff-badge-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}.staff-retired-pill .staff-badge-dot{width:6px;height:6px;background:var(--ink-3)}.staff-list-row__fields{display:flex;gap:18px;flex-wrap:wrap}.staff-list-field{display:flex;flex-direction:column;gap:2px;min-width:0}.staff-list-field__label{color:var(--ink-4);font-size:9px;font-weight:800;line-height:1.1;letter-spacing:.04em}.staff-list-field__value{display:inline-flex;align-items:center;gap:5px;color:var(--ink-2);font-size:11.5px;font-weight:700;line-height:1.25;font-variant-numeric:tabular-nums;white-space:nowrap}.staff-list-field__value.warn{color:var(--accent-ink)}.staff-list-field__years,.staff-list-field__icon{color:var(--ink-3);font-weight:700}.staff-list-field__icon{font-size:10px}.staff-employment-pill{display:inline-flex;align-items:center;gap:5px;width:fit-content;min-height:22px;padding:3px 11px;border:1.5px solid rgba(0,0,0,0);border-radius:999px;font-size:11px;font-weight:800;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}.staff-list-row__fields>.staff-employment-pill{align-self:flex-end}.staff-employment-pill__dot{width:6px;height:6px;flex:none;border-radius:50%;background:currentColor}.staff-employment-pill.is-full{background:#fdeee4;border-color:#f6cbbd;color:#b3503c}.staff-employment-pill.is-part{background:#f3eafc;border-color:#ddccef;color:#6b5b99}.staff-employment-pill.is-spot{background:#ddeef0;border-color:#bfe0e4;color:#3f7780}.staff-leave-editor{display:flex;flex-direction:column;gap:8px;padding:10px;border:1.5px solid var(--border);border-radius:14px;background:var(--surface-2)}.staff-leave-editor__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.staff-leave-editor__head label{font-size:13px;font-weight:800;color:var(--ink-1)}.staff-leave-editor__help,.staff-leave-editor__empty{margin:0;font-size:11.5px;color:var(--ink-3);line-height:1.45}.staff-leave-editor__empty{padding:8px 10px;border:1.5px dashed var(--border-strong);border-radius:10px;background:var(--surface)}.staff-leave-btn-add{border-color:var(--border-strong);background:#fff;color:var(--ink-1);box-shadow:var(--shadow-1)}.staff-leave-btn-add:hover{border-color:var(--border-strong);background:var(--surface-3);color:var(--ink-1);transform:translateY(-1px);box-shadow:var(--shadow-2)}.staff-leave-btn-remove{border-color:rgba(0,0,0,0);background:rgba(0,0,0,0);color:var(--danger-ink);box-shadow:none}.staff-leave-btn-remove:hover{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-ink);transform:none;box-shadow:none}.staff-leave-row{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.staff-leave-row__fields{display:grid;grid-template-columns:88px minmax(0, 1fr) minmax(0, 1fr);gap:8px;align-items:end}.staff-leave-row__memo{display:grid;grid-template-columns:minmax(0, 1fr) auto;gap:8px;align-items:end}.field--date-sm{max-width:160px}.staff-leave-row .field--date-sm{max-width:none}.field--leave-category{min-width:88px}.field--leave-note{min-width:0}.validation-row__status{display:flex;align-items:center}.validation-row__task{display:inline-flex;align-items:center;gap:6px;justify-self:start;font-size:14px;font-weight:700;color:var(--ink-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.validation-row__task-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.validation-kind-pill{display:inline-flex;align-items:center;justify-content:center;height:20px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;flex:none}.validation-kind-pill.is-main{color:#6c4d3d;background:#efe5d8}.validation-kind-pill.is-sub{color:#654f7d;background:#ede6f7}.validation-row__location{justify-self:start;border:0;background:rgba(0,0,0,0);box-shadow:none;outline:0;padding:0;font-size:13px;color:var(--ink-2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.validation-row__location.empty{color:var(--ink-4);font-weight:500}.validation-loc-pill{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 9px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-size:12px;font-weight:700}.validation-row__time{display:flex;align-items:center;justify-self:start}.validation-row__weekdays{display:flex;align-items:center;justify-self:start}.validation-dow-disp{display:inline-flex;gap:3px}.validation-dow-disp span{width:17px;height:17px;border-radius:5px;display:grid;place-items:center;font-size:10px;font-weight:700;background:var(--surface-3);color:var(--ink-4)}.validation-dow-disp span.on{background:var(--accent-50);color:var(--accent-ink)}.validation-row__required{display:flex;align-items:baseline;justify-self:start;gap:3px;font-size:12px;color:var(--ink-2);font-weight:700}.validation-row__required b{font-size:14px;color:var(--ink-1)}.validation-status-dot{width:10px;height:10px;border-radius:50%;background:var(--ink-4);transition:box-shadow .15s ease,background-color .15s ease}.validation-status-dot.is-active{background:#6fb15f;box-shadow:0 0 0 3px rgba(111,177,95,.18)}.validation-status-dot.is-inactive{background:var(--border-strong)}.validation-panel-meta{display:grid;grid-template-columns:72px minmax(0, 1fr);column-gap:10px;align-items:start;width:100%}.validation-panel-meta__need{flex:none}.validation-panel-meta__need .staffing-input-line{gap:4px}.validation-panel-meta__need .input--num-sm{width:54px}.validation-panel-meta__days{min-width:0}.validation-dow-pick{display:flex;gap:5px;align-items:center;flex-wrap:nowrap}.validation-dow-chip{width:33px;height:33px;border-radius:9px;border:1.5px solid var(--border);background:#fff;font-size:12px;font-weight:700;color:var(--ink-3);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.validation-dow-chip.on{background:var(--accent-50);border-color:var(--accent);color:var(--accent-ink)}.validation-dow-bulk{height:33px;padding:0 10px;border-radius:9px;margin-left:1px;border:1.5px dashed var(--border-strong);background:rgba(0,0,0,0);font-size:11.5px;font-weight:700;color:var(--ink-2);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.validation-dow-bulk:hover{background:var(--surface-3)}.validation-dow-bulk.on{border-style:solid;border-color:var(--accent);background:var(--accent-50);color:var(--accent-ink)}.validation-panel-toggle{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1.5px solid var(--border);border-radius:12px;background:var(--surface-3)}.validation-panel-toggle__label{font-size:13px;font-weight:700;color:var(--ink-1)}.validation-kind-switch{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));align-items:center;gap:0;width:100%;padding:3px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);box-shadow:var(--shadow-1)}.validation-kind-switch__btn{height:30px;width:100%;min-width:0;padding:0 14px;border-radius:999px;border:0;background:rgba(0,0,0,0);color:var(--ink-2);font-size:12px;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.validation-kind-switch__btn:hover{color:var(--ink-1)}.validation-kind-switch__btn.active{background:var(--accent-50);color:var(--accent-ink)}.settings-modal.settings-modal--validation{width:min(372px,100vw - 28px)}.settings-modal.settings-modal--class{width:min(620px,100vw - 28px)}.settings-modal--class .settings-modal__body{padding-left:18px;padding-right:18px;gap:14px}.settings-modal--validation .settings-modal__body{gap:10px}.settings-modal--validation .field-row--2{gap:10px}.settings-modal--validation .field-row--2 .input--time{width:100%;max-width:none}.crud-actions{position:relative;z-index:4;display:inline-flex;gap:4px;flex:none;justify-self:end;opacity:0;pointer-events:auto;transition:opacity .12s ease}.crud-item:hover .crud-actions{opacity:1}.crud-actions .btn{pointer-events:auto}.settings-layout .crud-item .btn.ghost:hover{background:var(--surface-3);color:var(--ink-1)}.admin-page.is-sidepanel-open .tenant-user-row .crud-actions{opacity:0 !important;pointer-events:none}.empty-state{margin:8px 0 0;border:1.5px dashed var(--border-strong);border-radius:12px;padding:14px;color:var(--ink-3);font-size:13px}.row-add{margin-top:8px;width:100%;border:1.5px dashed var(--border-strong);border-radius:14px;background:rgba(0,0,0,0);color:var(--ink-3);font-size:13px;font-weight:700;padding:12px;text-align:center;cursor:pointer;transition:all .15s ease}.row-add:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-50)}.settings-groups{display:flex;flex-direction:column;gap:16px}.settings-group{padding:14px 16px;border:1.5px solid var(--border);border-radius:14px;background:var(--surface)}.settings-group h3{margin:0 0 10px;font-size:14px}.staffing-group{--staffing-col-age: 60px;--staffing-col-ratio: 120px;--staffing-col-extra: 112px;--staffing-table-width: calc(var(--staffing-col-age) + var(--staffing-col-ratio) + var(--staffing-col-extra) + 40px + 32px);border-color:var(--border);background:var(--surface)}.staffing-group.is-extra-disabled{--staffing-table-width: calc(var(--staffing-col-age) + var(--staffing-col-ratio) + 20px + 32px)}.staffing-group.is-extra-disabled .staffing-table__head,.staffing-group.is-extra-disabled .staffing-table__row{grid-template-columns:var(--staffing-col-age) var(--staffing-col-ratio)}.staffing-group.is-extra-disabled .save-bar{width:min(100%,300px)}.staffing-segment{display:inline-flex;gap:4px;background:var(--surface-3);padding:4px;border-radius:999px}.staffing-segment button{border:0;background:rgba(0,0,0,0);padding:7px 18px;border-radius:999px;font-size:12.5px;font-weight:700;color:var(--ink-2);cursor:pointer}.staffing-segment button.is-on{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-1)}.help-text{margin:8px 0 0;font-size:12px;color:var(--ink-3);line-height:1.45}.staffing-warning-card{margin-top:12px;display:inline-flex;max-width:100%;align-items:flex-start;gap:10px;padding:10px 12px;border:1.5px solid #f2b8be;border-radius:12px;background:#fff3f4;box-shadow:0 4px 14px -8px rgba(161,59,63,.28)}.staffing-warning-card__icon{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#ffdde1;font-size:12px;line-height:1;flex:none}.staffing-warning-card__body{min-width:0}.staffing-warning-card__title{font-size:12px;font-weight:800;color:#b14f55;line-height:1.2}.staffing-warning-card__body p{margin:3px 0 0;font-size:12px;line-height:1.4;color:#8f565b}.staffing-table{margin-top:16px;border:1.5px solid var(--border);border-radius:14px;background:var(--surface);overflow:hidden;width:var(--staffing-table-width);max-width:100%}.staffing-table__head,.staffing-table__row{display:grid;grid-template-columns:var(--staffing-col-age) var(--staffing-col-ratio) var(--staffing-col-extra);align-items:center;column-gap:20px;padding:10px 16px;border-bottom:1px solid var(--divider)}.staffing-table__head{background:var(--surface-3);border-bottom:1.5px solid var(--border);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.staffing-table__head>*{line-height:1.3}.staffing-table__row:last-child{border-bottom:0}.staffing-table__row--group{background:linear-gradient(180deg, #fff7ec 0%, #ffffff 100%)}.age-h{font-size:13px;font-weight:700;color:var(--ink-1)}.staffing-input-line{display:inline-flex;align-items:center;gap:5px}.staffing-input-line .input{width:44px;height:34px;min-width:44px;padding:0 6px;border-radius:10px;text-align:right;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.staffing-input-line .unit{color:var(--ink-3);font-size:12px;font-weight:600}.th-note{font-size:10px;font-weight:500;color:var(--ink-4);text-transform:none;letter-spacing:0}.limit-hint{font-size:11px;color:var(--ink-4);margin-left:4px;white-space:nowrap}.limit-hint.is-warn{color:var(--danger-ink);font-weight:700}.staffing-input-stack{display:flex;flex-direction:column;gap:6px}.staffing-input-stack label{display:block}.age-l{display:inline-block;width:20px;min-width:20px;margin-right:3px;font-size:11px;color:var(--ink-3)}.staffing-input-line .age-l:empty::after{content:" "}.staffing-global-extra{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fffdf9;width:var(--staffing-table-width);max-width:100%}.staffing-global-extra__texts strong{display:block;color:var(--ink-1);font-size:12.5px;font-weight:700}.staffing-global-extra__texts p{margin:2px 0 0;color:var(--ink-3);font-size:11.5px;line-height:1.45}.staffing-global-extra .staffing-input-line{margin-left:0}.save-bar{margin-top:12px;padding:0;background:rgba(0,0,0,0);border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:var(--staffing-table-width);max-width:100%}.save-bar__status{font-size:12px;color:var(--warn-ink);font-weight:700;background:var(--warn-bg);padding:4px 10px;border-radius:999px}.save-bar__actions{display:flex;align-items:center;gap:8px}.save-bar__actions .btn{white-space:nowrap}.save-bar__error{margin:0;width:var(--staffing-table-width);max-width:100%}.staffing-history-table{table-layout:fixed}.staffing-history-table th:first-child,.staffing-history-table td:first-child{width:220px}.class-age-editor{display:grid;grid-template-columns:repeat(2, max-content);justify-content:start;gap:16px}.class-age-editor__col{display:flex;flex-direction:column;gap:8px}.class-age-editor__row{display:grid;grid-template-columns:40px max-content max-content;gap:6px;align-items:center}.class-age-editor__row .input--num-sm{width:74px}.class-age-editor__row span{font-size:12px;color:var(--ink-2);font-weight:700}.class-age-editor__row em{font-style:normal;color:var(--ink-3);font-size:12px;font-weight:700}.class-panel-timeline{position:relative;height:54px;margin:2px 0 8px;user-select:none}.class-panel-rail{position:absolute;top:8px;left:0;right:0;height:26px;border-radius:8px;background:var(--surface-3);overflow:hidden}.class-panel-band{position:absolute;top:8px;height:26px;min-width:7px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:#fff;font-size:10px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1;cursor:grab;overflow:hidden;white-space:nowrap;box-shadow:inset 0 -2px 0 rgba(0,0,0,.08)}.class-panel-band:active{cursor:grabbing}.class-panel-band__label{display:block;max-width:calc(100% - 18px);overflow:hidden;text-overflow:clip;pointer-events:none}.class-panel-handle{position:absolute;top:0;bottom:0;width:9px;display:flex;align-items:center;justify-content:center;cursor:ew-resize;z-index:2}.class-panel-handle.is-left{left:-3px}.class-panel-handle.is-right{right:-3px}.class-panel-handle::before{content:"";width:2px;height:12px;border-radius:1px;background:hsla(0,0%,100%,.9)}.class-panel-ticks{position:absolute;top:38px;left:0;right:0;display:flex;justify-content:space-between;color:var(--ink-4);font-size:9px;font-weight:700;font-variant-numeric:tabular-nums}.class-segment-matrix{border:1.5px solid var(--border);border-radius:13px;overflow:hidden}.class-segment-matrix table{width:100%;border-collapse:collapse;table-layout:fixed}.class-segment-matrix th,.class-segment-matrix td{border:1px solid var(--border);text-align:center}.class-segment-matrix thead th{height:30px;background:var(--surface-3);color:var(--ink-2);font-size:10px;font-weight:900}.class-segment-matrix .time-col{width:166px;background:var(--surface-2)}.class-segment-matrix .total-col{width:42px;background:var(--surface-3);color:var(--ink-2);font-size:11px;font-weight:900;font-variant-numeric:tabular-nums}.class-segment-matrix .delete-col{width:32px;background:var(--surface-2)}.class-segment-matrix th.age0{color:#c4685e}.class-segment-matrix th.age1{color:#b1813a}.class-segment-matrix th.age2{color:#6f8f4e}.class-segment-matrix th.age3{color:#4a8a83}.class-segment-matrix th.age4{color:#5a76a8}.class-segment-matrix th.age5{color:#8a6aaa}.class-time-range{display:flex;align-items:center;gap:4px;padding:6px 8px}.class-time-range .tselect{width:62px;height:30px;border:1.5px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink-1);font:inherit;font-size:11.5px;font-weight:900;font-variant-numeric:tabular-nums;cursor:pointer}.class-time-range .tselect:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-50)}.class-segment-num{width:100%;height:40px;border:0;background:var(--surface);color:var(--ink-1);text-align:center;font:inherit;font-size:13.5px;font-weight:900;font-variant-numeric:tabular-nums}.class-segment-num:focus{outline:none;background:var(--accent-50)}.class-segment-num::-webkit-outer-spin-button,.class-segment-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.class-segment-num{-moz-appearance:textfield}.class-segment-matrix tbody tr:nth-child(even) .class-segment-num{background:var(--surface-2)}.class-segment-delete{width:24px;height:24px;border:0;border-radius:50%;background:rgba(0,0,0,0);color:var(--ink-4);font:inherit;font-size:15px;font-weight:900;cursor:pointer}.class-segment-delete:hover:not(:disabled){color:var(--danger-ink);background:var(--danger-bg)}.class-segment-delete:disabled{opacity:.25;cursor:default}.class-segment-matrix__foot{display:flex;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--border);background:var(--surface-2);color:var(--ink-3);font-size:10.5px;font-weight:700}.class-segment-add{border:0;background:rgba(0,0,0,0);color:var(--accent-ink);font:inherit;font-size:12px;font-weight:900;cursor:pointer;padding:0}.class-segment-add:hover{color:var(--ink-1)}.tenant-profile-form{display:flex;flex-direction:column;gap:10px;max-width:560px}.tenant-profile-form__actions{display:flex;justify-content:flex-start;gap:8px;margin-top:18px}.tenant-users-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 12px}.tenant-users-search{flex:1;max-width:320px;display:flex;align-items:center;gap:8px;padding:6px 12px;border:1.5px solid var(--border);border-radius:999px;background:var(--surface-2)}.tenant-users-search__icon{color:var(--ink-3);font-size:13px}.tenant-users-search__input{border:0;background:rgba(0,0,0,0);padding:0;height:22px;box-shadow:none}.tenant-users-search__input:focus{border:0;box-shadow:none}.tenant-users-filters{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:var(--surface-3)}.tenant-users-filters__chip{border:0;border-radius:999px;background:rgba(0,0,0,0);padding:6px 12px;font-size:12px;font-weight:700;color:var(--ink-3);cursor:pointer}.tenant-users-filters__chip.is-active{background:#fff;color:var(--accent-ink);box-shadow:var(--shadow-1)}.tenant-users-count{margin:0 0 0 auto;font-size:12px;color:var(--ink-3);font-weight:700}.tenant-users-list{margin-top:2px}.platform-tenants-list{margin-top:2px}.platform-tenant-row{grid-template-columns:minmax(0, 1fr) 200px auto;column-gap:14px;min-height:62px;padding:12px 14px}.platform-tenant-row__identity{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.platform-tenant-row__identity .crud-item__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform-tenant-row__sub{margin:0;font-family:"JetBrains Mono","M PLUS Rounded 1c",monospace;font-size:11px;color:var(--ink-3);font-weight:600}.platform-tenant-row__status{display:flex;align-items:center;gap:8px}.platform-tenant-row .crud-actions{opacity:1;pointer-events:auto}.tenant-user-row{grid-template-columns:46px minmax(220px, 280px) max-content 1fr auto;column-gap:10px;min-height:62px;padding:12px 14px}.tenant-user-row.is-disabled{opacity:.7;background:var(--surface-2)}.tenant-user-row__identity{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.tenant-user-row__identity .crud-item__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tenant-user-row__sub{margin:0;font-size:10.5px;color:var(--ink-3);font-weight:500}.tenant-user-row .login-id{font-family:"JetBrains Mono","M PLUS Rounded 1c",monospace;font-size:13.5px;font-weight:700}.tenant-user-row__role,.tenant-user-row__active{display:flex;align-items:center}.tenant-user-row__role{width:auto;justify-content:flex-start;justify-self:start}.tenant-user-row__active{width:46px;justify-content:center}.tenant-role-pill,.tenant-active-pill{display:inline-flex;align-items:center;justify-content:flex-start;width:auto;border-radius:999px;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}.tenant-role-pill{padding:4px 11px}.tenant-active-pill{padding:3px 10px;gap:5px}.tenant-user-row__active .validation-status-dot{flex:none}.tenant-user-row .crud-actions{grid-column:5;justify-self:end}.tenant-role-pill.is-admin{background:var(--accent-50);color:var(--accent-ink)}.tenant-role-pill.is-editor{background:var(--surface-3);color:var(--ink-1)}.tenant-role-pill.is-viewer{background:#f0e8fb;color:#6b5b99}.tenant-active-pill.is-active{background:var(--success-bg);color:var(--success-ink)}.tenant-active-pill.is-inactive{background:var(--surface-3);color:var(--ink-3)}.tenant-active-pill::before{content:"";display:inline-block;flex:none;width:6px;height:6px;border-radius:50%}.tenant-active-pill.is-active::before{background:var(--success)}.tenant-active-pill.is-inactive::before{background:var(--ink-4)}.tenant-profile-form__actions .btn.primary:disabled{background:var(--surface-3);color:var(--ink-4);border-color:var(--border);box-shadow:none}.input--mono{font-family:"JetBrains Mono","M PLUS Rounded 1c",monospace}.input--readonly{background:var(--surface-3);color:var(--ink-3)}.panel-inline{display:flex;align-items:center;gap:8px}.panel-inline .input{flex:1}.admin-page .page-head .titles{width:auto;min-width:0}.admin-page .page-head h1 .wd{font-family:"M PLUS Rounded 1c",sans-serif;font-size:12.5px;font-weight:500;color:var(--ink-3);margin-left:12px}.btn--compact{min-width:88px;padding-left:14px;padding-right:14px}.input--compact{width:132px;max-width:100%}.input--time{width:128px;max-width:100%}.input--num-sm{width:76px;max-width:100%;text-align:right;font-variant-numeric:tabular-nums}.settings-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;background:rgba(91,70,54,.18);animation:settingsFadeIn .15s ease}@keyframes settingsFadeIn{from{opacity:0}to{opacity:1}}.admin-table .col-role{width:140px}.switch-row--table{display:inline-flex !important;align-items:center;gap:8px}.switch-text{font-size:12px;color:var(--ink-2);font-weight:700}.settings-modal{position:fixed;top:calc(var(--appbar-offset) + 6px);right:14px;width:min(440px,100vw - 28px);max-height:calc(100vh - var(--appbar-offset) - 14px);z-index:131;display:flex;flex-direction:column;border:1.5px solid var(--border);border-radius:20px;background:#fff;box-shadow:var(--shadow-lg);overflow:hidden;animation:settingsSlideIn .2s ease}@keyframes settingsSlideIn{from{transform:translateX(24px);opacity:0}to{transform:translateX(0);opacity:1}}.settings-modal__panel{display:flex;flex-direction:column;max-height:calc(100vh - var(--appbar-offset) - 14px);width:100%}.settings-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1.5px solid var(--border);background:linear-gradient(180deg, var(--surface-3) 0%, #fff 100%)}.settings-modal__head h3{margin:0;font-size:15px;font-weight:800;font-family:"Zen Maru Gothic",sans-serif}.settings-modal__tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px}.settings-modal__tag.is-create{background:var(--accent-50);color:var(--accent-ink)}.settings-modal__tag.is-editing{background:var(--warn-bg);color:var(--warn-ink)}.settings-modal__body{flex:1;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:14px 16px}.settings-modal__error{margin:12px 16px 0}.settings-modal__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1.5px solid var(--border);background:#fff;padding:10px 16px}.settings-modal__actions .spacer{flex:1}.settings-modal__close{width:28px;height:28px;border-radius:999px;border:0;background:var(--surface-3);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer}.settings-modal__close:hover{background:var(--border);color:var(--ink-1)}.bulk-name-textarea{min-height:112px;resize:vertical;line-height:1.6}.bulk-name-preview{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.bulk-name-preview__summary{display:flex;align-items:baseline;gap:4px;color:var(--ink-2);font-size:12px}.bulk-name-preview__summary strong{color:var(--accent-ink);font-size:15px}.bulk-name-preview__chips{display:flex;flex-wrap:wrap;gap:6px}.bulk-name-chip{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border:1px solid var(--border-strong);border-radius:999px;background:#fff;color:var(--ink-1);font-size:11px;font-weight:700}.bulk-name-preview__error{margin:0;color:var(--danger);font-size:11px;font-weight:700}.settings-modal.settings-modal--bulk{width:min(900px,100vw - 28px)}.bulk-import-intro{display:grid;gap:5px;color:var(--ink-2);font-size:12px;line-height:1.6}.bulk-import-intro p{margin:0}.bulk-import-order{font-weight:700;color:var(--accent-ink)}.bulk-template-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-3)}.bulk-template-row__text{display:grid;gap:2px}.bulk-template-row__text strong{color:var(--ink-1);font-size:12px}.bulk-template-row__text span{color:var(--ink-3);font-size:10px}.bulk-example{display:grid;gap:5px}.bulk-example span{color:var(--ink-3);font-size:10px;font-weight:700}.bulk-example code{overflow-x:auto;padding:8px 10px;border-radius:9px;background:#5b4636;color:#fff;font-size:10px;white-space:nowrap}.bulk-file-drop{display:flex;align-items:center;justify-content:center;gap:10px;min-height:92px;padding:14px;border:1.5px dashed var(--border-strong);border-radius:14px;background:var(--surface-2);color:var(--ink-3);font-size:11px}.bulk-file-drop.is-busy{opacity:.6}.bulk-file-label{display:inline-flex;align-items:center;min-height:34px;padding:6px 12px;border:1px solid var(--border-strong);border-radius:10px;background:#fff;color:var(--ink-1);font-size:12px;font-weight:700;cursor:pointer}.bulk-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.bulk-import-status{min-height:20px;color:var(--ink-2);font-size:11px}.bulk-import-status p{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0}.bulk-import-errors{margin:0}.bulk-import-errors .msg{min-width:0}.bulk-import-errors ul{margin:5px 0 0;padding-left:18px}.bulk-preview-wrap{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:12px}.bulk-preview-table{width:100%;min-width:780px;border-collapse:collapse;background:#fff;font-size:10px}.bulk-preview-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.bulk-preview-table th,.bulk-preview-table td{padding:7px 8px;border-right:1px solid var(--divider);border-bottom:1px solid var(--divider);text-align:left;vertical-align:top;white-space:nowrap}.bulk-preview-table thead th{position:sticky;top:0;z-index:1;background:var(--surface-3);color:var(--ink-2);font-weight:800}.bulk-preview-table tr.has-error td,.bulk-preview-table td.has-error{background:#fff2f1;color:var(--danger)}.bulk-preview-table td small{display:block;max-width:180px;margin-top:3px;color:var(--danger);font-size:9px;line-height:1.35;white-space:normal}.bulk-preview-table__row{width:42px;text-align:right !important;color:var(--ink-3);font-variant-numeric:tabular-nums}.tenant-settings-page{--surface-2: #fdf8f3;--surface-3: #faf0e6;--border: #f0e4d4;--border-strong: #e6d4bc;--divider: #e8dbc4;--ink-1: #5b4636;--ink-2: #846b56;--ink-3: #a3896f;--ink-4: #c4a98a;--accent: #ef9a9a;--accent-600: #e57373;--accent-50: #fff5f5;--accent-ink: #b85c5c;--success: #8ab880;--success-bg: #e9f3e6;--success-ink: #3f6b3a}.tenant-settings-page .settings-layout{gap:20px}.tenant-settings-page .settings-sidebar{padding:8px;border-radius:16px}.tenant-settings-page .settings-nav-item{min-height:40px;padding:10px 12px;font-size:13px;font-weight:600}.tenant-settings-page .tenant-users-toolbar{margin-bottom:14px}.tenant-settings-page .tenant-users-search{max-width:320px;padding:6px 12px;border-radius:999px}.tenant-settings-page .tenant-users-filters{padding:3px;gap:4px}.tenant-settings-page .tenant-users-filters__chip{padding:6px 12px;font-size:12px}.tenant-settings-page .tenant-user-row{grid-template-columns:46px minmax(220px, 280px) max-content 1fr auto;column-gap:10px;padding:12px 14px;border-radius:14px}.tenant-settings-page .tenant-role-pill{padding:4px 11px;font-size:12px}.tenant-settings-page .tenant-role-pill.is-viewer{background:#f0e8fb;color:#6b5b99}.tenant-settings-page .tenant-active-pill{padding:3px 10px;gap:5px;font-size:12px}.tenant-settings-page .tenant-active-pill::before{width:6px;height:6px}.tenant-settings-page .tenant-profile-form__actions{margin-top:18px}.tenant-user-modal{width:min(440px,100vw - 28px)}.tenant-user-modal .settings-modal__head{padding:14px 18px}.tenant-user-modal .settings-modal__body{padding:16px 18px;gap:14px}.tenant-user-modal .settings-modal__actions{padding:12px 18px}.tenant-user-modal__req{color:var(--danger);font-weight:700}.tenant-user-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:12px}.tenant-user-toggle-row__texts{min-width:0}.tenant-user-toggle-row__label{margin:0;font-size:13px;font-weight:700;color:var(--ink-1)}.tenant-user-toggle-row__desc{margin:2px 0 0;font-size:11px;color:var(--ink-3)}.platform-tenants-page .page-title{color:var(--accent-ink);letter-spacing:.04em}.platform-kpis{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:14px;margin:0 16px 22px}.platform-kpi{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow-soft)}.platform-kpi__label{margin:0;font-size:11px;color:var(--ink-3);font-weight:700;letter-spacing:.04em}.platform-kpi__value{margin:4px 0 0;display:flex;align-items:baseline;gap:4px}.platform-kpi__value span{font-family:"Zen Maru Gothic",sans-serif;font-size:24px;font-weight:800;color:var(--ink-1);line-height:1.1;font-variant-numeric:tabular-nums}.platform-kpi__value em{font-style:normal;font-size:12px;color:var(--ink-3);font-weight:500}.platform-tenants-card{margin:0 16px}.platform-tenants-card .section-head{margin-bottom:14px}.platform-tenants-card .section-head__texts p{color:var(--ink-3)}.platform-tenants-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.platform-tenants-page .tenant-users-search{max-width:320px}.platform-tenants-page .tenant-users-filters{padding:3px;gap:4px}.platform-tenants-page .tenant-users-filters__chip{padding:6px 12px;font-size:12px}.platform-tenants-page .tenant-users-count{margin-left:auto}.platform-tenants-page .platform-tenants-list{margin-top:0}.platform-tenants-page .platform-tenant-row{grid-template-columns:220px 140px 110px 100px 100px minmax(0, 1fr) auto;column-gap:14px;min-height:62px;padding:12px 14px;border-radius:14px;border:1.5px solid var(--border)}.platform-tenants-page .platform-tenant-row.is-disabled{opacity:.7;background:var(--surface-2)}.platform-tenants-page .platform-tenant-row__identity{gap:2px}.platform-tenants-page .platform-tenant-row__identity .crud-item__title{font-size:14.5px;line-height:1.2}.platform-tenants-page .platform-tenant-row__sub{font-family:"JetBrains Mono","M PLUS Rounded 1c",monospace;font-size:11px;color:var(--ink-3);font-weight:600}.platform-status-toggle{border:0;background:rgba(0,0,0,0);padding:0;margin:0;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--success-ink);cursor:pointer}.platform-status-toggle:disabled{opacity:.6;cursor:wait}.platform-status-toggle.is-off{color:var(--ink-3)}.platform-status-toggle__sw{position:relative;width:36px;height:20px;background:var(--border-strong);border-radius:999px;transition:background .15s ease;flex:none}.platform-status-toggle__sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.15);transition:transform .15s ease}.platform-status-toggle.is-on .platform-status-toggle__sw{background:var(--success)}.platform-status-toggle.is-on .platform-status-toggle__sw::after{transform:translateX(16px)}.platform-col-stat{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.platform-col-stat__label{font-size:10px;color:var(--ink-3);font-weight:600;letter-spacing:.02em;margin-bottom:2px}.platform-col-stat strong{font-size:13px;color:var(--ink-1);font-weight:700;font-variant-numeric:tabular-nums}.platform-tenant-row__spacer{min-width:0}.btn.platform-open-btn{height:30px;min-width:0;padding:0 14px;border:1.5px solid var(--border-strong);background:var(--surface);color:var(--ink-1);box-shadow:var(--shadow-1)}.btn.platform-open-btn:hover{background:var(--accent-50);border-color:var(--accent);color:var(--accent-ink)}.btn.platform-open-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.platform-tenant-features{grid-column:1/-1;display:flex;align-items:flex-start;gap:14px;padding-top:10px;margin-top:2px;border-top:1px solid var(--divider)}.platform-tenant-features__head{min-width:112px;display:flex;flex-direction:column;gap:2px;line-height:1.25}.platform-tenant-features__head span{font-size:12px;color:var(--ink-1);font-weight:800}.platform-tenant-features__head small{font-size:10.5px;color:var(--ink-3);font-weight:600}.platform-feature-list{flex:1;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.platform-feature-toggle{min-width:min(100%,360px);max-width:420px;display:grid;grid-template-columns:auto minmax(0, 1fr) auto;align-items:center;gap:10px;padding:9px 11px;border:1.5px solid var(--border);border-radius:14px;background:var(--surface);color:var(--ink-2);text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.platform-feature-toggle:hover{border-color:var(--border-strong);box-shadow:var(--shadow-1)}.platform-feature-toggle:disabled{opacity:.7;cursor:wait;box-shadow:none}.platform-feature-toggle.is-on{border-color:#bedbc8;background:#f2faf2}.platform-feature-toggle.is-off{background:var(--surface-2)}.platform-feature-toggle__sw{position:relative;width:34px;height:20px;border-radius:999px;background:var(--border-strong);flex:none}.platform-feature-toggle__sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.14);transition:transform .15s ease}.platform-feature-toggle.is-on .platform-feature-toggle__sw{background:var(--success)}.platform-feature-toggle.is-on .platform-feature-toggle__sw::after{transform:translateX(14px)}.platform-feature-toggle__texts{min-width:0;display:flex;flex-direction:column;gap:2px}.platform-feature-toggle__texts strong{font-size:12.5px;color:var(--ink-1);font-weight:800;line-height:1.25}.platform-feature-toggle__texts small{font-size:10.5px;color:var(--ink-3);font-weight:600;line-height:1.35}.platform-feature-toggle__state{min-width:28px;text-align:right;font-size:11px;font-weight:900;color:var(--ink-3)}.platform-feature-toggle.is-on .platform-feature-toggle__state{color:var(--success-ink)}.platform-tenant-modal{width:min(440px,100vw - 28px)}.platform-tenant-modal .settings-modal__head{padding:14px 18px}.platform-tenant-modal .settings-modal__body{padding:16px 18px;gap:14px}.platform-tenant-modal .settings-modal__actions{padding:12px 18px}.credential-scrim{position:fixed;inset:0;z-index:140;background:rgba(91,70,54,.45);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;animation:credentialFadeIn .18s ease}@keyframes credentialFadeIn{from{opacity:0}to{opacity:1}}.credential-modal{width:100%;max-width:520px;background:var(--surface);border:1.5px solid var(--border);border-radius:24px;box-shadow:0 24px 60px -10px rgba(91,70,54,.4);overflow:hidden;display:flex;flex-direction:column;animation:credentialPopIn .25s cubic-bezier(0.2, 0.8, 0.2, 1.05)}@keyframes credentialPopIn{from{transform:scale(0.92);opacity:0}to{transform:scale(1);opacity:1}}.credential-modal__head{padding:22px 26px 16px;text-align:center;background:linear-gradient(180deg, #fff5f5 0%, var(--surface) 100%);border-bottom:1.5px dashed var(--border)}.credential-modal__badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:var(--success-bg);color:var(--success-ink);font-size:11px;font-weight:800;letter-spacing:.04em;margin-bottom:10px}.credential-modal__badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--success)}.credential-modal__head h2{margin:0;font-family:"Zen Maru Gothic",sans-serif;font-size:22px;font-weight:800;color:var(--ink-1)}.credential-modal__head p{margin:6px 0 0;font-size:12.5px;color:var(--ink-3);font-weight:500;line-height:1.6}.credential-modal__head p b{color:var(--danger-ink);font-weight:800}.credential-modal__body{padding:20px 26px 4px;display:flex;flex-direction:column;gap:12px}.credential-copy-all{width:100%;height:42px;border:1.5px solid var(--accent);border-radius:12px;background:linear-gradient(135deg, #fff5f5, #ffe3e3);color:var(--accent-ink);font-size:13px;font-weight:800;cursor:pointer;transition:background .12s ease,transform .12s ease}.credential-copy-all:hover{background:var(--accent-50);transform:translateY(-1px)}.credential-copy-all:active{transform:translateY(0)}.credential-copy-all.is-done{background:var(--success);border-color:var(--success);color:#fff}.credential-field{background:var(--surface-2);border:1.5px solid var(--border);border-radius:14px;padding:12px 14px;transition:border-color .15s ease,background .15s ease}.credential-field.is-copied{border-color:var(--success);background:var(--success-bg)}.credential-field__label{margin:0;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--ink-3)}.credential-field__value{margin:4px 0 0;font-family:"JetBrains Mono","M PLUS Rounded 1c",monospace;font-size:15px;font-weight:700;line-height:1.2;color:var(--ink-1);word-break:break-all}.credential-modal__warning{margin:4px 26px 0;padding:12px 14px;border:1.5px solid var(--warn-border);border-radius:12px;background:var(--warn-bg);color:var(--warn-ink);font-size:12px;font-weight:600;line-height:1.6;display:flex;align-items:flex-start;gap:8px}.credential-modal__warning::before{content:"⚠️";font-size:14px;line-height:1.2}.credential-modal__warning p{margin:0}.credential-modal__foot{padding:18px 26px 22px;display:flex;flex-direction:column;gap:8px}.btn.credential-done-btn{width:100%;min-width:0;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:14px;font-size:14px;font-weight:800;color:#fff;background:linear-gradient(135deg, #fcb5a0, #ef9a9a);box-shadow:0 6px 16px -3px rgba(239,154,154,.5)}.btn.credential-done-btn:disabled{background:var(--surface-3);color:var(--ink-4);box-shadow:none;cursor:not-allowed}.credential-modal__hint{margin:0;text-align:center;font-size:11.5px;color:var(--ink-3)}.credential-modal__hint.is-ok{color:var(--success-ink);font-weight:700}@media(max-width: 900px){.admin-page .card{overflow-x:auto}.admin-page .admin-table{min-width:720px}.settings-layout{margin-left:12px;margin-right:12px;grid-template-columns:1fr}.settings-sidebar{position:static}.section-head{flex-direction:column;align-items:stretch}.section-head__actions{justify-content:flex-start}.crud-item{align-items:flex-start}.crud-item--simple,.crud-item--class,.crud-item--staff,.crud-item--validation{grid-template-columns:28px minmax(0, 1fr)}.crud-item--class .crud-actions,.crud-item--staff .crud-actions,.crud-item--validation .crud-actions,.crud-item--simple .crud-actions{justify-self:start}.class-segment-tlrow{flex-direction:column;align-items:stretch}.class-segment-head{flex-wrap:wrap;row-gap:6px}.class-segment-titlegroup{width:100%;flex-basis:100%}.class-segment-head .class-max-count{margin-left:0}.class-segment-side{flex-direction:row;align-items:center;justify-content:space-between}.class-mini-timeline{width:100%;flex-basis:auto}.class-segline{grid-template-columns:1fr;gap:5px}.class-segline--head{display:none}.crud-actions{width:auto;opacity:1}.settings-modal{top:calc(var(--appbar-offset) + 4px);right:10px;width:min(440px,100vw - 20px);max-height:calc(100vh - var(--appbar-offset) - 10px)}.field-row{grid-template-columns:1fr}.class-segment-matrix{overflow-x:auto}.settings-modal.settings-modal--class{width:min(620px,100vw - 20px)}.settings-modal.settings-modal--bulk{width:calc(100vw - 20px)}.bulk-template-row,.bulk-file-drop{align-items:stretch;flex-direction:column}.bulk-template-row .btn,.bulk-file-label{justify-content:center}.tenant-users-toolbar{flex-wrap:wrap;align-items:stretch}.tenant-users-count{margin-left:0}.tenant-users-search{max-width:none}.platform-tenant-row{grid-template-columns:minmax(0, 1fr);gap:8px}.platform-tenant-row .crud-actions{justify-self:start}.platform-kpis{grid-template-columns:repeat(2, minmax(0, 1fr));margin-left:12px;margin-right:12px}.platform-tenants-card{margin-left:12px;margin-right:12px}.platform-tenants-toolbar{flex-wrap:wrap;align-items:stretch}.tenant-user-row{grid-template-columns:minmax(0, 1fr);gap:8px}.tenant-user-row .crud-actions{justify-self:start}.credential-scrim{padding:14px}.credential-modal{max-width:none}.credential-modal__head,.credential-modal__body,.credential-modal__foot{padding-left:18px;padding-right:18px}.credential-modal__warning{margin-left:18px;margin-right:18px}.staffing-table__head{display:none}.staffing-table,.staffing-global-extra{width:100%}.staffing-table__row{flex-wrap:wrap;gap:8px}.staffing-table__age{width:100%}.staffing-input-line,.staffing-input-stack{width:100%}.staffing-global-extra{flex-direction:column;align-items:flex-start}}@media(max-width: 720px){.settings-sidebar{overflow-x:hidden}.settings-nav{flex-direction:row;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.settings-nav li{flex:none}.settings-nav-item{width:auto;white-space:nowrap}}@media print{@page{size:landscape;margin:10mm}*,*::before,*::after{-webkit-print-color-adjust:exact;print-color-adjust:exact}html,body{background:#fff !important;background-attachment:initial}.app{min-height:auto;padding-top:0}.appbar,.toolbar,.date-nav,.page-head .kpis,.past-edit-bar,.settings-sidebar,.settings-scrim,.settings-modal,.side-panel,.validation-popover-scrim,.popover,.toast-stack,.loading-overlay,.credential-scrim{display:none !important}.main.app.schedule-page,.main.app.monthly-page{height:auto;overflow:visible}.page-head{padding:0 0 8px}.layout,.main.app.schedule-page .layout{padding:0;display:block}.timeline-wrap,.admin-page .monthly-card,.admin-page .card{margin:0;border-color:#bbb;box-shadow:none;overflow:visible}.timeline-body,.main.app.schedule-page .timeline-body,.monthly-grid-wrap,.main.app.monthly-page .monthly-grid-wrap{height:auto;max-height:none;overflow:visible}.warnbar{margin-left:0;margin-right:0}.schedule-page .timeline-wrap{zoom:.62}}