:root{--fv-color-background: #F1F2F7;--fv-color-surface: #FFFFFF;--fv-color-surface-muted: #F3F3F3;--fv-color-border: #E3E5EC;--fv-color-line: #767B85;--fv-color-text: #212121;--fv-color-text-body: #333333;--fv-color-text-muted: #5F6570;--fv-color-text-subtle: #9E9E9E;--fv-color-text-on-dark: #FFFFFF;--fv-color-text-on-accent: #FFFFFF;--fv-color-accent: #E66E3F;--fv-color-accent-deep: #B24718;--fv-color-accent-strong: #F7941D;--fv-color-accent-soft: #FDF0EA;--fv-color-accent-soft2: #FDF5F0;--fv-color-yellow: #FFB300;--fv-color-navy: #0F304A;--fv-color-purple: #7C51B5;--fv-color-green: #699A37;--fv-color-service-gws: #E66E3F;--fv-color-service-air: #7C51B5;--fv-color-service-aif: #FC9317;--fv-color-success: #699A37;--fv-color-success-text: #4A7326;--fv-color-success-soft: #EEF5E6;--fv-color-warning: #F7941D;--fv-color-warning-text: #9A5A00;--fv-color-warning-soft: #FFF3E0;--fv-color-danger: #C33931;--fv-color-danger-text: #A63A2B;--fv-color-danger-soft: #FBE9E7;--fv-color-focus: #B24718;--fv-gradient-cover: linear-gradient(115deg, #FF9900 0%, #FC1300 100%);--fv-gradient-logo: linear-gradient(90deg, #F2CD3C 0%, #E88B3A 50%, #CE3B41 100%);--fv-font-sans: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;--fv-font-mono: "JetBrains Mono", "SF Mono", Menlo, monospace;--fv-font-weight-regular: 400;--fv-font-weight-medium: 500;--fv-font-weight-bold: 700;--fv-font-weight-black: 900;--fv-type-display: 48px;--fv-type-title: 32px;--fv-type-heading: 24px;--fv-type-subheading: 20px;--fv-type-body: 16px;--fv-type-label: 14px;--fv-type-small: 14px;--fv-type-caption: 12px;--fv-type-line-height-body: 1.7;--fv-type-line-height-heading: 1.3;--fv-type-line-height-tight: 1.15;--fv-space-1: 4px;--fv-space-2: 8px;--fv-space-3: 12px;--fv-space-4: 16px;--fv-space-6: 24px;--fv-space-8: 32px;--fv-space-12: 48px;--fv-space-16: 64px;--fv-space-24: 96px;--fv-radius-control: 8px;--fv-radius-card: 16px;--fv-radius-inner: 10px;--fv-radius-pill: 999px;--fv-radius-circle: 50%;--fv-shadow-none: none;--fv-shadow-raised: 0 1px 2px rgba(33, 33, 33, .06), 0 2px 8px rgba(33, 33, 33, .06);--fv-shadow-overlay: 0 8px 24px rgba(33, 33, 33, .16), 0 4px 8px rgba(33, 33, 33, .08);--fv-shadow-floating: 0 16px 40px rgba(33, 33, 33, .2), 0 8px 16px rgba(33, 33, 33, .1);--fv-content-max-width: 1200px;--fv-content-lp-max-width: 1120px;--fv-content-reading-width: 720px;--fv-breakpoint-narrow: 768px;--fv-breakpoint-wide: 1200px;--fv-motion-fast: .15s;--fv-motion-base: .2s;--fv-motion-slow: .35s}:root{--color-primitive-blue-50: #e8f1fe;--color-primitive-blue-100: #d9e6ff;--color-primitive-blue-200: #c5d7fb;--color-primitive-blue-300: #9db7f9;--color-primitive-blue-400: #7096f8;--color-primitive-blue-500: #4979f5;--color-primitive-blue-600: #3460fb;--color-primitive-blue-700: #264af4;--color-primitive-blue-800: #0031d8;--color-primitive-blue-900: #0017c1;--color-primitive-blue-1000: #00118f;--color-primitive-blue-1100: #000071;--color-primitive-blue-1200: #000060;--color-primitive-light-blue-50: #f0f9ff;--color-primitive-light-blue-100: #dcf0ff;--color-primitive-light-blue-200: #c0e4ff;--color-primitive-light-blue-300: #97d3ff;--color-primitive-light-blue-400: #57b8ff;--color-primitive-light-blue-500: #39abff;--color-primitive-light-blue-600: #008bf2;--color-primitive-light-blue-700: #0877d7;--color-primitive-light-blue-800: #0066be;--color-primitive-light-blue-900: #0055ad;--color-primitive-light-blue-1000: #00428c;--color-primitive-light-blue-1100: #00316a;--color-primitive-light-blue-1200: #00234b;--color-primitive-cyan-50: #e9f7f9;--color-primitive-cyan-100: #c8f8ff;--color-primitive-cyan-200: #99f2ff;--color-primitive-cyan-300: #79e2f2;--color-primitive-cyan-400: #2bc8e4;--color-primitive-cyan-500: #01b7d6;--color-primitive-cyan-600: #00a3bf;--color-primitive-cyan-700: #008da6;--color-primitive-cyan-800: #008299;--color-primitive-cyan-900: #006f83;--color-primitive-cyan-1000: #006173;--color-primitive-cyan-1100: #004c59;--color-primitive-cyan-1200: #003741;--color-primitive-green-50: #e6f5ec;--color-primitive-green-100: #c2e5d1;--color-primitive-green-200: #9bd4b5;--color-primitive-green-300: #71c598;--color-primitive-green-400: #51b883;--color-primitive-green-500: #2cac6e;--color-primitive-green-600: #259d63;--color-primitive-green-700: #1d8b56;--color-primitive-green-800: #197a4b;--color-primitive-green-900: #115a36;--color-primitive-green-1000: #0c472a;--color-primitive-green-1100: #08351f;--color-primitive-green-1200: #032213;--color-primitive-lime-50: #ebfad9;--color-primitive-lime-100: #d0f5a2;--color-primitive-lime-200: #c0f354;--color-primitive-lime-300: #ade830;--color-primitive-lime-400: #9ddd15;--color-primitive-lime-500: #8cc80c;--color-primitive-lime-600: #7eb40d;--color-primitive-lime-700: #6fa104;--color-primitive-lime-800: #618e00;--color-primitive-lime-900: #507500;--color-primitive-lime-1000: #3e5a00;--color-primitive-lime-1100: #2c4100;--color-primitive-lime-1200: #1e2d00;--color-primitive-yellow-50: #fbf5e0;--color-primitive-yellow-100: #fff0b3;--color-primitive-yellow-200: #ffe380;--color-primitive-yellow-300: #ffd43d;--color-primitive-yellow-400: #ffc700;--color-primitive-yellow-500: #ebb700;--color-primitive-yellow-600: #d2a400;--color-primitive-yellow-700: #b78f00;--color-primitive-yellow-800: #a58000;--color-primitive-yellow-900: #927200;--color-primitive-yellow-1000: #806300;--color-primitive-yellow-1100: #6e5600;--color-primitive-yellow-1200: #604b00;--color-primitive-orange-50: #ffeee2;--color-primitive-orange-100: #ffdfca;--color-primitive-orange-200: #ffc199;--color-primitive-orange-300: #ffa66d;--color-primitive-orange-400: #ff8d44;--color-primitive-orange-500: #ff7628;--color-primitive-orange-600: #fb5b01;--color-primitive-orange-700: #e25100;--color-primitive-orange-800: #c74700;--color-primitive-orange-900: #ac3e00;--color-primitive-orange-1000: #8b3200;--color-primitive-orange-1100: #6d2700;--color-primitive-orange-1200: #541e00;--color-primitive-red-50: #fdeeee;--color-primitive-red-100: #ffdada;--color-primitive-red-200: #ffbbbb;--color-primitive-red-300: #ff9696;--color-primitive-red-400: #ff7171;--color-primitive-red-500: #ff5454;--color-primitive-red-600: #fe3939;--color-primitive-red-700: #fa0000;--color-primitive-red-800: #ec0000;--color-primitive-red-900: #ce0000;--color-primitive-red-1000: #a90000;--color-primitive-red-1100: #850000;--color-primitive-red-1200: #620000;--color-primitive-magenta-50: #f3e5f4;--color-primitive-magenta-100: #ffd0ff;--color-primitive-magenta-200: #ffaeff;--color-primitive-magenta-300: #ff8eff;--color-primitive-magenta-400: #f661f6;--color-primitive-magenta-500: #f137f1;--color-primitive-magenta-600: #db00db;--color-primitive-magenta-700: #c000c0;--color-primitive-magenta-800: #aa00aa;--color-primitive-magenta-900: #8b008b;--color-primitive-magenta-1000: #6c006c;--color-primitive-magenta-1100: #500050;--color-primitive-magenta-1200: #3b003b;--color-primitive-purple-50: #f1eafa;--color-primitive-purple-100: #ecddff;--color-primitive-purple-200: #ddc2ff;--color-primitive-purple-300: #cda6ff;--color-primitive-purple-400: #bb87ff;--color-primitive-purple-500: #a565f8;--color-primitive-purple-600: #8843e1;--color-primitive-purple-700: #6f23d0;--color-primitive-purple-800: #5c10be;--color-primitive-purple-900: #5109ad;--color-primitive-purple-1000: #41048e;--color-primitive-purple-1100: #30016c;--color-primitive-purple-1200: #21004b;--color-neutral-white: #ffffff;--color-neutral-black: #000000;--color-neutral-solid-gray-50: #f2f2f2;--color-neutral-solid-gray-100: #e6e6e6;--color-neutral-solid-gray-200: #cccccc;--color-neutral-solid-gray-300: #b3b3b3;--color-neutral-solid-gray-400: #999999;--color-neutral-solid-gray-420: #949494;--color-neutral-solid-gray-500: #7f7f7f;--color-neutral-solid-gray-536: #767676;--color-neutral-solid-gray-600: #666666;--color-neutral-solid-gray-700: #4d4d4d;--color-neutral-solid-gray-800: #333333;--color-neutral-solid-gray-900: #1a1a1a;--color-neutral-opacity-gray-50: rgba(0, 0, 0, .05);--color-neutral-opacity-gray-100: rgba(0, 0, 0, .1);--color-neutral-opacity-gray-200: rgba(0, 0, 0, .2);--color-neutral-opacity-gray-300: rgba(0, 0, 0, .3);--color-neutral-opacity-gray-400: rgba(0, 0, 0, .4);--color-neutral-opacity-gray-420: rgba(0, 0, 0, .42);--color-neutral-opacity-gray-500: rgba(0, 0, 0, .5);--color-neutral-opacity-gray-536: rgba(0, 0, 0, .536);--color-neutral-opacity-gray-600: rgba(0, 0, 0, .6);--color-neutral-opacity-gray-700: rgba(0, 0, 0, .7);--color-neutral-opacity-gray-800: rgba(0, 0, 0, .8);--color-neutral-opacity-gray-900: rgba(0, 0, 0, .9);--font-weight-400: 400;--font-weight-700: 700;--font-family-sans: "Noto Sans JP", sans-serif;--font-family-mono: "Noto Sans Mono", monospace;--font-size-14: .875rem;--font-size-16: 1rem;--font-size-17: 1.0625rem;--font-size-18: 1.125rem;--font-size-20: 1.25rem;--font-size-22: 1.375rem;--font-size-24: 1.5rem;--font-size-26: 1.625rem;--font-size-28: 1.75rem;--font-size-32: 2rem;--font-size-36: 2.25rem;--font-size-45: 2.8125rem;--font-size-48: 3rem;--font-size-57: 3.5625rem;--font-size-64: 4rem;--line-height-100: 1;--line-height-120: 1.2;--line-height-130: 1.3;--line-height-140: 1.4;--line-height-150: 1.5;--line-height-160: 1.6;--line-height-170: 1.7;--line-height-175: 1.75;--border-radius-4: .25rem;--border-radius-6: .375rem;--border-radius-8: .5rem;--border-radius-12: .75rem;--border-radius-16: 1rem;--border-radius-24: 1.5rem;--border-radius-32: 2rem;--border-radius-full: 624.9375rem;--elevation-1: 0 2px 8px 1px rgba(0,0,0,.1), 0 1px 5px 0 rgba(0,0,0,.3);--elevation-2: 0 2px 12px 2px rgba(0,0,0,.1), 0 1px 6px 0 rgba(0,0,0,.3);--elevation-3: 0 4px 16px 3px rgba(0,0,0,.1), 0 1px 6px 0 rgba(0,0,0,.3);--elevation-4: 0 6px 20px 4px rgba(0,0,0,.1), 0 2px 6px 0 rgba(0,0,0,.3);--elevation-5: 0 8px 24px 5px rgba(0,0,0,.1), 0 2px 10px 0 rgba(0,0,0,.3);--elevation-6: 0 10px 30px 6px rgba(0,0,0,.1), 0 3px 12px 0 rgba(0,0,0,.3);--elevation-7: 0 12px 36px 7px rgba(0,0,0,.1), 0 3px 14px 0 rgba(0,0,0,.3);--elevation-8: 0 14px 40px 7px rgba(0,0,0,.1), 0 3px 16px 0 rgba(0,0,0,.3);--color-semantic-success-1: var(--color-primitive-green-600);--color-semantic-success-2: var(--color-primitive-green-800);--color-semantic-error-1: var(--color-primitive-red-800);--color-semantic-error-2: var(--color-primitive-red-900);--color-semantic-warning-yellow-1: var(--color-primitive-yellow-700);--color-semantic-warning-yellow-2: var(--color-primitive-yellow-900);--color-semantic-warning-orange-1: var(--color-primitive-orange-600);--color-semantic-warning-orange-2: var(--color-primitive-orange-800);--color-key-50: var(--color-primitive-blue-50);--color-key-100: var(--color-primitive-blue-100);--color-key-200: var(--color-primitive-blue-200);--color-key-300: var(--color-primitive-blue-300);--color-key-400: var(--color-primitive-blue-400);--color-key-500: var(--color-primitive-blue-500);--color-key-600: var(--color-primitive-blue-600);--color-key-700: var(--color-primitive-blue-700);--color-key-800: var(--color-primitive-blue-800);--color-key-900: var(--color-primitive-blue-900);--color-key-1000: var(--color-primitive-blue-1000);--color-key-1100: var(--color-primitive-blue-1100);--color-key-1200: var(--color-primitive-blue-1200)}:root{--c-background: var(--color-neutral-solid-gray-50);--c-surface: var(--color-neutral-white);--c-surface-muted: var(--color-neutral-solid-gray-50);--c-border: var(--color-neutral-solid-gray-536);--c-divider: var(--color-neutral-solid-gray-200);--c-line: var(--color-neutral-solid-gray-600);--c-text: var(--color-neutral-solid-gray-900);--c-text-body: var(--color-neutral-solid-gray-800);--c-text-muted: var(--color-neutral-solid-gray-700);--c-text-on-dark: var(--color-neutral-white);--c-text-on-accent: var(--color-neutral-white);--c-accent: var(--color-primitive-blue-900);--c-accent-deep: var(--color-primitive-blue-900);--c-accent-hover: var(--color-primitive-blue-1000);--c-accent-soft: var(--color-primitive-blue-50);--c-accent-soft2: var(--color-primitive-light-blue-50);--c-yellow: var(--color-primitive-yellow-300);--c-purple: var(--color-primitive-purple-900);--c-success: var(--color-semantic-success-1);--c-success-text: var(--color-primitive-green-800);--c-success-soft: var(--color-primitive-green-50);--c-warning: var(--color-semantic-warning-yellow-1);--c-warning-text: var(--color-primitive-yellow-1000);--c-warning-soft: var(--color-primitive-yellow-50);--c-danger: var(--color-semantic-error-1);--c-danger-text: var(--color-semantic-error-2);--c-danger-soft: var(--color-primitive-red-50);--c-focus: var(--color-neutral-black);--c-focus-ring: var(--color-primitive-yellow-300);--t-body: 1rem;--t-h2: 1.25rem;--t-h1: 1.75rem;--t-xl: 2rem;--lh-body: 1.7;--lh-heading: 1.4;--fw-regular: 400;--fw-bold: 700;--r-sm: var(--border-radius-8);--r-md: var(--border-radius-12);--app-banner-h: 52px;--app-sidebar-w: 216px;--app-panel-w: 380px;--app-cell-w: 48px;--app-cell-h: 44px;--app-name-w: 132px;--app-total-w: 112px;--app-target: 48px;--app-type-l-bg: var(--color-primitive-yellow-100);--app-type-l-fg: var(--color-primitive-yellow-1000);--app-type-d-bg: var(--color-primitive-orange-50);--app-type-d-fg: var(--color-primitive-orange-1000);--app-type-n-bg: var(--color-primitive-light-blue-100);--app-type-n-fg: var(--color-primitive-light-blue-1000);--app-type-dn-bg: var(--color-primitive-purple-100);--app-type-dn-fg: var(--color-primitive-purple-1100);--app-type-f-bg: var(--color-primitive-green-100);--app-type-f-fg: var(--color-primitive-green-1000);--app-weekend-bg: var(--color-primitive-blue-50);--app-closed-bg: var(--color-neutral-solid-gray-100);--app-hatch: repeating-linear-gradient( 135deg, transparent 0 4px, var(--color-neutral-opacity-gray-500) 4px 5.5px );--app-edge-shadow: var(--color-neutral-opacity-gray-300)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--c-background);color:var(--c-text-body);font-family:var(--font-family-sans);font-size:var(--t-body);line-height:var(--lh-body);letter-spacing:normal;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit;letter-spacing:normal}:focus-visible{outline:4px solid var(--c-focus);outline-offset:2px;box-shadow:0 0 0 2px var(--c-focus-ring)}h1,h2,h3{color:var(--c-text);line-height:var(--lh-heading);margin:0;text-wrap:balance}h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2)}h3{font-size:var(--t-body)}p{margin:0}.num{font-variant-numeric:tabular-nums}.muted{color:var(--c-text-muted)}.small{font-size:var(--t-body);line-height:1.6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--fv-space-2);min-height:var(--app-target);padding:0 var(--fv-space-4);border-radius:var(--r-sm);border:1px solid var(--c-accent);background:var(--c-surface);color:var(--c-accent);font-size:var(--t-body);font-weight:var(--fw-bold);line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s}.btn:hover{background:var(--c-accent-soft)}.btn-primary{background:var(--c-accent-deep);border-color:var(--c-accent-deep);color:var(--c-text-on-accent)}.btn-primary:hover{background:var(--c-accent-hover);border-color:var(--c-accent-hover)}.btn-tertiary{border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:3px}.btn-tertiary:hover{text-decoration-thickness:3px;background:transparent}.btn-icon{border-color:transparent;background:transparent;color:var(--c-text);min-width:var(--app-target);padding:0}.btn-icon:hover{background:var(--c-surface-muted)}.btn-compact{padding:0 var(--fv-space-3)}.btn-danger-outline{border-color:var(--c-danger-text);color:var(--c-danger-text)}.btn-danger-outline:hover{background:var(--c-danger-soft)}.btn[aria-busy=true]{cursor:progress}.select{min-height:var(--app-target);padding:0 36px 0 12px;border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23333333' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:var(--t-body)}.input-num{width:72px;min-height:var(--app-target);padding:0 10px;border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-surface);text-align:right;font-variant-numeric:tabular-nums;font-size:var(--t-body)}.input-text{min-height:var(--app-target);padding:0 10px;border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-surface);font-size:var(--t-body);width:100%;min-width:120px}input[type=checkbox]{width:22px;height:22px;accent-color:var(--c-accent-deep)}.check-label{display:inline-flex;align-items:center;gap:var(--fv-space-2);min-height:var(--app-target);cursor:pointer}.seg{display:inline-flex;border:1px solid var(--c-line);border-radius:var(--r-sm);overflow:hidden;background:var(--c-surface)}.seg button{min-height:var(--app-target);padding:0 var(--fv-space-4);border:0;background:transparent;font-size:var(--t-body);font-weight:var(--fw-regular);cursor:pointer}.seg button+button{border-left:1px solid var(--c-line)}.seg button[aria-pressed=true]{background:var(--c-accent-soft);color:var(--c-text);font-weight:var(--fw-bold)}.seg button:focus-visible{outline:4px solid var(--c-focus);outline-offset:-4px;box-shadow:inset 0 0 0 6px var(--c-focus-ring);z-index:3}.field{display:inline-flex;flex-direction:column;gap:2px;font-size:var(--t-body);color:var(--c-text-muted)}.level{display:inline-flex;align-items:center;gap:4px;font-size:var(--t-body);font-weight:var(--fw-bold);padding:2px 8px;border-radius:6px;line-height:1.5;white-space:nowrap}.level svg{flex:none}.level-error{background:var(--c-danger-soft);color:var(--c-danger-text)}.level-warn{background:var(--c-warning-soft);color:var(--c-warning-text)}.level-ok{background:var(--c-success-soft);color:var(--c-success-text)}.level-neutral{background:var(--c-surface-muted);color:var(--c-text-muted)}.chip{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:28px;padding:0 6px;border-radius:6px;font-weight:var(--fw-bold);font-size:var(--t-body);line-height:1}.t-L{background:var(--app-type-l-bg);color:var(--app-type-l-fg)}.t-D{background:var(--app-type-d-bg);color:var(--app-type-d-fg)}.t-N{background:var(--app-type-n-bg);color:var(--app-type-n-fg)}.t-DN{background:var(--app-type-dn-bg);color:var(--app-type-dn-fg)}.t-F{background:var(--app-type-f-bg);color:var(--app-type-f-fg)}.t-none{background:var(--c-surface-muted);color:var(--c-text-muted)}.banner{position:sticky;top:0;z-index:50;min-height:var(--app-banner-h);display:flex;flex-wrap:wrap;align-items:center;gap:var(--fv-space-2) var(--fv-space-3);padding:2px var(--fv-space-4);background:var(--c-surface);border-bottom:1px solid var(--c-border)}.banner-tag{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-body);font-weight:var(--fw-bold);color:var(--c-warning-text);background:var(--c-warning-soft);padding:4px 10px;border-radius:var(--r-sm);white-space:nowrap}.banner-store{font-weight:var(--fw-bold);color:var(--c-text);white-space:nowrap}.banner-spacer{flex:1}.month-switch{display:inline-flex;align-items:center;gap:4px}.month-switch .select{font-weight:var(--fw-bold);color:var(--c-text)}.shell{display:grid;grid-template-columns:var(--app-sidebar-w) minmax(0,1fr);min-height:calc(100vh - var(--app-banner-h))}.shell.collapsed{grid-template-columns:0 minmax(0,1fr)}.sidebar{position:sticky;top:var(--app-banner-h);height:calc(100vh - var(--app-banner-h));overflow:hidden auto;background:var(--c-surface);border-right:1px solid var(--c-border);padding:var(--fv-space-4) var(--fv-space-3)}.shell.collapsed .sidebar{visibility:hidden;padding:0;border:0}.nav{list-style:none;margin:0;padding:0;display:grid;gap:2px}.nav a{display:flex;align-items:center;gap:var(--fv-space-2);min-height:var(--app-target);padding:0 var(--fv-space-3);border-radius:var(--r-sm);color:var(--c-text-body);text-decoration:none;font-size:var(--t-body)}.nav a:hover{background:var(--c-surface-muted)}.nav a{border-left:4px solid transparent}.nav a[aria-current=page]{background:var(--c-accent-soft);color:var(--c-text);font-weight:var(--fw-bold);border-left-color:var(--c-accent-deep)}.nav-count{margin-left:auto;font-weight:var(--fw-bold);color:var(--c-danger-text)}.main{min-width:0;padding:var(--fv-space-6) var(--fv-space-8) var(--fv-space-12)}.main.flush{padding:0}.page-head{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--fv-space-3) var(--fv-space-6);margin-bottom:var(--fv-space-6)}.page-head .lead{margin-top:var(--fv-space-1);color:var(--c-text-muted)}.page-head .actions{margin-left:auto;display:flex;gap:var(--fv-space-2);flex-wrap:wrap;align-items:center}.section{margin-bottom:var(--fv-space-12)}.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--fv-space-3) var(--fv-space-6);margin-bottom:var(--fv-space-4)}.section-head .lead{margin-top:var(--fv-space-1);color:var(--c-text-muted)}.section-head .tools{margin-left:auto}.panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md)}.pad{padding:var(--fv-space-4) var(--fv-space-6)}.notice{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fv-space-3);padding:var(--fv-space-3) var(--fv-space-4);border-radius:var(--r-sm);background:var(--c-surface);border:1px solid var(--c-border)}.notice .grow{flex:1;min-width:200px}.notice.info{background:var(--c-accent-soft2);border-color:color-mix(in srgb,var(--c-accent) 35%,transparent)}.notice.danger{background:var(--c-danger-soft);border-color:color-mix(in srgb,var(--c-danger) 40%,transparent);color:var(--c-text)}.big-count{font-size:var(--t-xl);font-weight:var(--fw-bold);color:var(--c-text);font-variant-numeric:tabular-nums}.big-count small{font-size:var(--t-body);font-weight:var(--fw-regular);color:var(--c-text-muted);margin-left:4px}.data-table-wrap{overflow:auto;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm)}.data-table{border-collapse:separate;border-spacing:0;width:100%}.data-table th,.data-table td{padding:8px 12px;border-bottom:1px solid var(--c-border);text-align:left;white-space:nowrap;vertical-align:middle}.data-table thead th{position:sticky;top:0;z-index:2;color:var(--c-text-muted);font-size:var(--t-body);font-weight:var(--fw-bold);background:var(--c-surface-muted)}.data-table tbody th{font-weight:var(--fw-bold);color:var(--c-text)}.data-table tr:last-child>*{border-bottom:0}.data-table .right{text-align:right}.data-table .sticky-col{position:sticky;left:0;z-index:1;background:var(--c-surface);border-right:1px solid var(--c-border)}.data-table thead .sticky-col{z-index:3;background:var(--c-surface-muted)}.status{display:inline-flex;align-items:center;gap:6px;font-weight:var(--fw-bold)}.status-ok{color:var(--c-success-text)}.status-wait{color:var(--c-warning-text)}.status-bad{color:var(--c-danger-text)}fieldset.lock{border:0;margin:0;padding:0;min-width:0}.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--fv-space-8)}.check-row{display:flex;align-items:center;gap:var(--fv-space-3);min-height:var(--app-target);padding:var(--fv-space-2) 0;border-bottom:1px solid var(--c-border)}.check-row:last-child{border-bottom:0}.check-row .rid{font-weight:var(--fw-bold);color:var(--c-text-muted);min-width:36px;font-size:var(--t-body)}.check-row .desc{display:block;color:var(--c-text-muted);font-size:var(--t-body)}.shift-page{display:grid;grid-template-columns:minmax(0,1fr) var(--app-panel-w);grid-template-rows:minmax(0,1fr);height:calc(100vh - var(--app-banner-h));height:calc(100dvh - var(--app-banner-h))}.shift-main{min-width:0;min-height:0;display:flex;flex-direction:column;padding:var(--fv-space-3) var(--fv-space-6);gap:var(--fv-space-2)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fv-space-2) var(--fv-space-3)}.toolbar .grow{flex:1}.subbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--fv-space-2) var(--fv-space-4)}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--fv-space-4);font-size:var(--t-body);color:var(--c-text-muted)}.legend .item{display:inline-flex;align-items:center;gap:6px}.swatch{display:inline-block;width:22px;height:18px;border-radius:4px;border:1px solid var(--c-line)}.swatch.hatch{background:var(--app-hatch),var(--c-surface)}.hint{color:var(--c-text-muted);font-size:var(--t-body)}.inline-note{font-size:var(--t-body);color:var(--c-text)}.empty{max-width:640px;padding:var(--fv-space-8)}.empty h2{margin-bottom:var(--fv-space-2)}.empty p{color:var(--c-text-muted);margin-bottom:var(--fv-space-6)}.empty .btn{min-height:52px;padding:0 var(--fv-space-8);font-size:var(--t-body)}.table-scroll{position:relative;flex:1;min-height:240px;overflow:auto;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);overscroll-behavior:contain}.shift-table{border-collapse:separate;border-spacing:0;font-size:var(--t-body)}.shift-table th,.shift-table td{padding:0;border-right:1px solid var(--c-border);border-bottom:1px solid var(--c-border);background:var(--c-surface)}.shift-table thead th{position:sticky;top:0;z-index:3;height:44px;min-width:var(--app-cell-w);font-weight:var(--fw-regular);text-align:center;line-height:1.25}.shift-table thead th .d{display:block;line-height:1.2;font-size:var(--t-body);font-weight:var(--fw-bold);color:var(--c-text)}.sp-mark{color:var(--c-accent);margin-left:1px}.shift-table thead th .w{display:block;line-height:1.2;font-size:var(--t-body);color:var(--c-text-muted)}.shift-table thead th.we,.shift-table td.we{background:var(--app-weekend-bg)}.shift-table thead th.closed,.shift-table td.closed{background:var(--app-closed-bg)}.shift-table thead th.hol .w,.shift-table thead th.hol .d{color:var(--c-danger-text)}.shift-table .corner{left:0;z-index:5;text-align:left;padding:0 var(--fv-space-3);min-width:var(--app-name-w);width:var(--app-name-w);color:var(--c-text-muted)}.shift-table .corner-right{right:0;z-index:5;min-width:var(--app-total-w);color:var(--c-text-muted);border-left:1px solid var(--c-border)}.shift-table .name{position:sticky;left:0;z-index:2;text-align:left;padding:2px var(--fv-space-2) 2px var(--fv-space-3);min-width:var(--app-name-w);width:var(--app-name-w);height:var(--app-cell-h);white-space:nowrap}.name-line{display:flex;align-items:center;gap:4px;color:var(--c-text);font-size:var(--t-body);line-height:1.3;white-space:nowrap}.name-line .nm{font-weight:var(--fw-bold)}.name-line .role{font-weight:var(--fw-regular);color:var(--c-text-muted)}.name-line .new{font-weight:var(--fw-bold);color:var(--c-warning-text)}.name-line .ic{display:inline-flex;gap:2px;margin-left:auto;color:var(--c-text-muted)}.name-line .ic .warn{color:var(--c-warning-text)}.name-tags{font-weight:var(--fw-regular);font-size:var(--t-body);color:var(--c-text-muted);line-height:1.3}.name-tags .new{color:var(--c-warning-text);font-weight:var(--fw-bold)}.shift-table .group th{white-space:nowrap;position:sticky;left:0;z-index:2;height:24px;text-align:left;padding:0 var(--fv-space-3);font-size:var(--t-body);line-height:1.5;font-weight:var(--fw-bold);color:var(--c-text-muted);background:var(--c-surface-muted)}.shift-table .group td{background:var(--c-surface-muted)}.shift-table .total{position:sticky;right:0;z-index:2;min-width:var(--app-total-w);padding:0 var(--fv-space-3);border-left:1px solid var(--c-border)}.total-line{line-height:1.3;white-space:nowrap;color:var(--c-text)}.bar{position:relative;height:6px;margin-top:4px;background:var(--c-surface-muted);border-radius:3px;overflow:hidden}.bar>span{position:absolute;inset:0 auto 0 0;background:var(--c-line)}.bar.warn>span{background:var(--c-warning)}.bar.over>span{background:var(--c-danger)}.cell{position:relative;width:var(--app-cell-w);min-width:var(--app-cell-w);height:var(--app-cell-h);text-align:center;vertical-align:middle}.cell-btn{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;border:0;background:transparent;padding:0;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.cell-btn:focus-visible{outline:4px solid var(--c-focus);outline-offset:-4px;box-shadow:inset 0 0 0 6px var(--c-focus-ring);z-index:3}.table-scroll.ro .cell-btn{cursor:default}.cell-btn:hover{background-color:color-mix(in srgb,var(--c-accent) 8%,transparent)}.cell .chip{pointer-events:none}.cell.out .cell-btn{background-image:var(--app-hatch)}.cell.out .chip{outline:1px solid var(--c-line)}.cell.err .cell-btn{outline:3px solid var(--c-danger);outline-offset:-3px}.cell.warn .cell-btn{outline:3px solid var(--c-warning);outline-offset:-3px}.mark{position:absolute;top:2px;right:2px;display:inline-flex;pointer-events:none}.cell.err .mark{color:var(--c-danger-text)}.cell.warn .mark{color:var(--c-warning-text)}.pin{position:absolute;bottom:2px;right:2px;color:var(--c-accent-deep);pointer-events:none}.wish-off{font-size:var(--t-body);color:var(--c-text-muted);pointer-events:none}.wish-dot{display:inline-block;width:8px;height:8px;border-radius:50%;border:2px solid var(--c-line);pointer-events:none}.cell.dim .chip{background:transparent;color:var(--c-text-muted);outline:1px dashed var(--c-border)}.cell.dragging .chip{background:transparent;color:var(--c-text-muted);outline:2px dashed var(--c-text)}.cell.drop-better .cell-btn{background-color:var(--c-success-soft);outline:3px solid var(--c-success);outline-offset:-3px}.cell.drop-same .cell-btn{background-color:var(--c-accent-soft2);outline:1px solid var(--c-accent);outline-offset:-1px}.cell.drop-worse .cell-btn{background-color:var(--c-danger-soft);outline:3px dashed var(--c-danger);outline-offset:-3px}.cell.over .cell-btn{outline:3px solid var(--c-accent-deep);outline-offset:-3px}.cell.flash .cell-btn,.shift-table td.flash{animation:flash 1.4s ease-out 1}@keyframes flash{0%,40%{background-color:color-mix(in srgb,var(--c-yellow) 55%,transparent)}to{background-color:transparent}}@media(prefers-reduced-motion:reduce){.cell.flash .cell-btn,.shift-table td.flash{animation:none;outline:3px solid var(--c-yellow);outline-offset:-3px}}.drag-chip{min-width:42px;height:36px;box-shadow:var(--elevation-4);cursor:grabbing}.shift-table tfoot th,.shift-table tfoot td{position:sticky;z-index:3;background:var(--c-surface);height:28px;line-height:1.5}.shift-table tfoot tr:nth-last-child(3)>*{bottom:58px}.shift-table tfoot tr:nth-last-child(2)>*{bottom:29px}.shift-table tfoot tr:nth-last-child(1)>*{bottom:0}.shift-table tfoot th{left:0;z-index:4;text-align:left;padding:0 var(--fv-space-3);font-size:var(--t-body);font-weight:var(--fw-bold);color:var(--c-text-muted);white-space:nowrap}.shift-table tfoot td.total{right:0;z-index:4;font-size:var(--t-body);white-space:nowrap;color:var(--c-text-muted)}.sum{text-align:center;font-variant-numeric:tabular-nums;color:var(--c-text-muted);white-space:nowrap}.shift-table tfoot td.sum.short{color:var(--c-danger-text);font-weight:var(--fw-bold);background:var(--c-danger-soft)}.sum.over{color:var(--c-warning-text);font-weight:var(--fw-bold)}.sum svg{vertical-align:-2px;margin-right:1px}.side{border-left:1px solid var(--c-border);background:var(--c-surface);overflow-y:auto;min-width:0}.side-head{position:sticky;top:0;z-index:1;background:var(--c-surface);padding:var(--fv-space-4);border-bottom:1px solid var(--c-border)}.side-head h2{font-size:var(--t-h2);display:flex;align-items:center;gap:var(--fv-space-2)}.counts{display:flex;gap:var(--fv-space-6);margin-top:var(--fv-space-2)}.counts>span{display:inline-flex;align-items:center;gap:6px}.counts strong{font-size:var(--t-h1);font-variant-numeric:tabular-nums}.counts .e{color:var(--c-danger-text)}.counts .w{color:var(--c-warning-text)}.issue-list{list-style:none;margin:0;padding:0}.issue{border-bottom:1px solid var(--c-border)}.issue-btn{display:grid;grid-template-columns:auto 1fr;gap:4px var(--fv-space-3);width:100%;min-height:var(--app-target);text-align:left;padding:var(--fv-space-3) var(--fv-space-4);border:0;background:none;cursor:pointer;line-height:1.6}.issue-btn:hover{background:var(--c-surface-muted)}.issue-btn:focus-visible{outline:4px solid var(--c-focus);outline-offset:-4px;box-shadow:inset 0 0 0 6px var(--c-focus-ring);z-index:3}.issue.selected .issue-btn{background:var(--c-accent-soft2)}.issue-rule{grid-column:2;font-size:var(--t-body);color:var(--c-text-muted)}.issue-msg{grid-column:2;color:var(--c-text)}.issue-body{padding:0 var(--fv-space-4) var(--fv-space-4);background:var(--c-accent-soft2)}.issue-body h3{font-size:var(--t-body);color:var(--c-text-muted);padding-top:var(--fv-space-2);margin-bottom:var(--fv-space-1)}.cand{display:flex;align-items:center;gap:var(--fv-space-2);padding:6px 0;border-top:1px solid color-mix(in srgb,var(--c-accent) 18%,transparent)}.cand .who{flex:1;min-width:0;color:var(--c-text)}.cand .who small,.person .who small{display:block;color:var(--c-text-muted);font-size:var(--t-body);line-height:1.4}.cand .who small.bad{color:var(--c-danger-text)}.empty-note{padding:var(--fv-space-6) var(--fv-space-4);color:var(--c-text-muted)}.popover{position:fixed;z-index:100;width:360px;max-width:calc(100vw - 16px);max-height:min(560px,calc(100vh - 24px));overflow-y:auto;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);box-shadow:var(--elevation-3);padding:var(--fv-space-2) 0}.popover-head{padding:var(--fv-space-1) var(--fv-space-4) var(--fv-space-2);border-bottom:1px solid var(--c-border);margin-bottom:var(--fv-space-1)}.popover-head strong{color:var(--c-text);font-size:var(--t-body)}.popover-head .small{display:block;color:var(--c-text-muted)}.popover-sep{font-size:var(--t-body);font-weight:var(--fw-bold);color:var(--c-text-muted);padding:var(--fv-space-2) var(--fv-space-4) 2px}.opt{display:flex;align-items:center;gap:var(--fv-space-2);width:100%;min-height:var(--app-target);padding:6px var(--fv-space-4);border:0;background:none;text-align:left;cursor:pointer}.opt:hover{background:var(--c-surface-muted)}.opt:focus-visible{background:var(--c-surface-muted);outline:4px solid var(--c-focus);outline-offset:-4px;box-shadow:inset 0 0 0 6px var(--c-focus-ring);z-index:3}.opt[aria-current=true]{background:var(--c-accent-soft)}.opt .txt{flex:1;min-width:0;line-height:1.4;color:var(--c-text)}.opt .txt small{display:block;color:var(--c-text-muted);font-size:var(--t-body)}.opt .txt small.why{color:var(--c-danger-text)}.popover-foot{border-top:1px solid var(--c-border);margin-top:var(--fv-space-1);padding-top:var(--fv-space-1)}.cal{flex:1;overflow:auto}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));border-top:1px solid var(--c-border);border-left:1px solid var(--c-border);background:var(--c-surface);border-radius:var(--r-sm);overflow:hidden;min-width:784px}.cal-wd{padding:6px var(--fv-space-2);font-size:var(--t-body);font-weight:var(--fw-bold);color:var(--c-text-muted);border-right:1px solid var(--c-border);border-bottom:1px solid var(--c-border);background:var(--c-surface-muted)}.cal-day{min-height:132px;padding:var(--fv-space-2);border:0;border-right:1px solid var(--c-border);border-bottom:1px solid var(--c-border);background:var(--c-surface);text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px}.cal-day:hover{background:var(--c-surface-muted)}.cal-day:focus-visible{outline:4px solid var(--c-focus);outline-offset:-4px;box-shadow:inset 0 0 0 6px var(--c-focus-ring);z-index:3}.cal-day.we{background:var(--app-weekend-bg)}.cal-day.closed{background:var(--app-closed-bg)}.cal-day[aria-pressed=true]{outline:3px solid var(--c-accent-deep);outline-offset:-3px}.cal-day.blank{cursor:default;background:var(--c-background)}.cal-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px}.cal-top .d{font-weight:var(--fw-bold);color:var(--c-text);font-variant-numeric:tabular-nums}.cal-day.hol .cal-top .d{color:var(--c-danger-text)}.cal-top .sp{font-size:var(--t-body);color:var(--c-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.fill{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:6px;font-size:var(--t-body);color:var(--c-text-muted);line-height:1.3}.fill .track{height:8px;border-radius:4px;background:var(--c-surface-muted);overflow:hidden;position:relative}.fill .track>span{position:absolute;inset:0 auto 0 0;background:var(--c-success)}.fill.short .track>span{background:var(--c-danger)}.fill .n{display:inline-flex;align-items:center;gap:2px;text-align:right;font-variant-numeric:tabular-nums}.fill.short .n{color:var(--c-danger-text);font-weight:var(--fw-bold)}.day-detail .band{padding:var(--fv-space-3) var(--fv-space-4);border-bottom:1px solid var(--c-border)}.band-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px var(--fv-space-2);margin-bottom:var(--fv-space-2)}.band-head .n{margin-left:auto;font-variant-numeric:tabular-nums}.person{display:flex;align-items:center;gap:var(--fv-space-2);padding:4px 0}.person .who{flex:1;min-width:0;color:var(--c-text)}.person .select{width:196px;flex:none}.type-btns{display:flex;gap:4px;flex-wrap:wrap}.type-btn{min-width:var(--app-target);height:var(--app-target);border:1px solid transparent;cursor:pointer}.type-btn:hover{border-color:var(--c-line)}.type-btn.worse{border:2px dashed var(--c-danger)}.summary-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--fv-space-2) var(--fv-space-6);margin-bottom:var(--fv-space-4)}.wish-grid td{text-align:center;min-width:56px;padding:6px 4px;white-space:nowrap;color:var(--c-text)}.wish-grid thead th{text-align:center;padding:6px 4px;min-width:56px}.wish-grid thead th .d{display:block;color:var(--c-text);font-size:var(--t-body)}.wish-grid .we{background:var(--app-weekend-bg)}.wish-grid thead th.we{background:var(--color-primitive-blue-100)}.wish-grid .closed{background:var(--app-closed-bg)}.wish-grid td.off{color:var(--c-danger-text);font-weight:var(--fw-bold)}.wish-grid tr.unsubmitted td{color:var(--c-text-muted)}.day-grid td{padding:4px 8px}.avail-btn{display:flex;align-items:center;justify-content:space-between;gap:var(--fv-space-2);width:100%;min-height:var(--app-target);padding:0 var(--fv-space-3);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface);cursor:pointer;text-align:left}.avail-btn:hover{border-color:var(--c-line)}.avail-btn[aria-pressed=true]{border:3px solid var(--c-accent-deep)}.avail-btn .nums{font-variant-numeric:tabular-nums;color:var(--c-text)}.who-list{margin-top:var(--fv-space-4);padding:var(--fv-space-4) var(--fv-space-6)}.who-list ul{margin:var(--fv-space-2) 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--fv-space-2) var(--fv-space-6)}.shift-table th,.shift-table td,.data-table th,.data-table td{border-right-color:var(--c-divider);border-bottom-color:var(--c-divider)}.shift-table thead th,.data-table thead th{color:var(--c-text);font-weight:var(--fw-bold);border-bottom:2px solid var(--c-text)}.shift-table thead th .w{font-weight:var(--fw-regular)}.shift-table tfoot tr:nth-child(1)>*{border-top:2px solid var(--c-text)}[data-more-left] .edge-left{box-shadow:10px 0 10px -8px var(--app-edge-shadow)}[data-more-right] .edge-right{box-shadow:-10px 0 10px -8px var(--app-edge-shadow)}.scroll-frame{position:relative}.scroll-frame:before,.scroll-frame:after{content:"";position:absolute;top:1px;bottom:1px;width:16px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:4}.scroll-frame:after{right:1px;background:linear-gradient(to left,var(--app-edge-shadow),transparent);border-radius:0 var(--r-sm) var(--r-sm) 0}.scroll-frame:before{left:1px;background:linear-gradient(to right,var(--app-edge-shadow),transparent)}.scroll-frame[data-more-right]:after,.scroll-frame[data-more-left].no-sticky-left:before{opacity:1}.toasts{position:fixed;left:50%;bottom:var(--fv-space-6);transform:translate(-50%);z-index:200;display:grid;gap:var(--fv-space-2);pointer-events:none}.toast{background:var(--c-text);color:var(--c-text-on-dark);padding:12px var(--fv-space-4);border-radius:var(--r-sm);box-shadow:var(--elevation-4);max-width:calc(100vw - 32px)}.confirm-box{padding:var(--fv-space-6);max-width:760px}.confirm-box .row{display:flex;flex-wrap:wrap;gap:var(--fv-space-3);margin-top:var(--fv-space-4)}@media(max-width:1279px){:root{--app-panel-w: 320px}}@media(max-width:1023px){.shell,.shell.collapsed{display:block}.shell .sidebar{position:fixed;left:0;top:var(--app-banner-h);z-index:60;width:var(--app-sidebar-w);box-shadow:var(--elevation-3)}.shell.collapsed .sidebar{visibility:hidden}.shell:not(.collapsed) .sidebar{visibility:visible}}@media(max-width:767px){.shift-page{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;height:auto}.table-scroll{max-height:70vh}.side{border-left:0;border-top:1px solid var(--c-border)}.grid-2{grid-template-columns:minmax(0,1fr)}}@media(max-width:767px){.main{padding:var(--fv-space-4)}.shift-main{padding:var(--fv-space-3)}.banner{padding:6px 8px;gap:6px}.banner-store{display:none}.banner{position:static}.shell{position:relative}.shell .sidebar{position:absolute;top:0;height:auto;min-height:100%}}@media print{.banner,.sidebar{display:none}}.banner-note{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--fv-space-3) var(--fv-space-4);padding:var(--fv-space-4);border:2px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface)}.banner-icon{flex:none;display:inline-flex;margin-top:2px}.banner-body{flex:1;min-width:220px}.banner-title{font-weight:var(--fw-bold);color:var(--c-text)}.banner-text{margin-top:4px;color:var(--c-text-body)}.banner-actions{display:flex;flex-wrap:wrap;gap:var(--fv-space-2);align-items:center}.banner-info{border-color:var(--c-accent);background:var(--c-accent-soft)}.banner-info .banner-icon{color:var(--c-accent)}.banner-ok{border-color:var(--c-success);background:var(--c-success-soft)}.banner-ok .banner-icon{color:var(--c-success-text)}.banner-warn{border-color:var(--c-warning);background:var(--c-warning-soft)}.banner-warn .banner-icon{color:var(--c-warning-text)}.banner-error{border-color:var(--c-danger);background:var(--c-danger-soft)}.banner-error .banner-icon{color:var(--c-danger-text)}.level-info{background:var(--c-accent-soft);color:var(--c-accent)}.modal{width:min(560px,calc(100vw - 32px));border:0;border-radius:var(--r-md);padding:var(--fv-space-6);box-shadow:var(--elevation-5);color:var(--c-text-body)}.modal::backdrop{background:var(--color-neutral-opacity-gray-500)}.modal h2{margin-bottom:var(--fv-space-3)}.modal-actions{display:flex;justify-content:space-between;gap:var(--fv-space-3);margin-top:var(--fv-space-6)}.btn-danger-solid{background:var(--c-danger-text);border-color:var(--c-danger-text);color:var(--c-text-on-accent)}.btn-danger-solid:hover{background:var(--color-primitive-red-1000)}.nav-count.ok{color:var(--c-success-text)}.tabs{display:inline-flex;gap:0;border-bottom:1px solid var(--c-border)}.tabs [role=tab]{min-height:var(--app-target);padding:0 var(--fv-space-4);border:0;border-bottom:4px solid transparent;background:transparent;color:var(--c-text-body);cursor:pointer;font-size:var(--t-body)}.tabs [role=tab][aria-selected=true]{color:var(--c-accent);font-weight:var(--fw-bold);border-bottom-color:var(--c-accent)}.tabs [role=tab]:hover{background:var(--c-accent-soft)}.tabpanel{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--fv-space-2)}.day-grid tr.we>*{background:var(--app-weekend-bg)}.day-grid tr.closed>*{background:var(--app-closed-bg)}.day-grid td{min-width:220px}.radio-row{display:flex;flex-wrap:wrap;gap:0 var(--fv-space-4);border:0;margin:0;padding:0}input[type=radio]{width:22px;height:22px;accent-color:var(--c-accent)}.hc-edit{display:grid;gap:var(--fv-space-2)}.hc-fields{display:flex;gap:var(--fv-space-3)}.add-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--fv-space-3);margin-top:var(--fv-space-4)}.exam-edit{display:inline-flex;align-items:center;gap:var(--fv-space-2)}.field-error{margin-top:var(--fv-space-2);color:var(--c-danger-text);font-weight:var(--fw-bold)}.field label,.field>span{color:var(--c-text);font-weight:var(--fw-bold)}.wish-day-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--fv-space-6);align-items:start}.wish-day-layout .who-list{position:sticky;top:calc(var(--app-banner-h) + 16px);margin-top:0}.who-list ul{grid-template-columns:minmax(0,1fr)}@media(max-width:1023px){.wish-day-layout{grid-template-columns:minmax(0,1fr)}}.scroll-frame.tall .data-table-wrap{max-height:75vh}.day-grid td{min-width:176px}.check-cell{display:inline-flex;align-items:center;justify-content:center;min-width:var(--app-target);min-height:var(--app-target);cursor:pointer}.opt-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 8px}.hint.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subbar .btn-tertiary{align-self:flex-end}.field label{line-height:1.5}.wcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--c-border);border-left:1px solid var(--c-border);background:var(--c-surface)}.wcal-wd{padding:4px var(--fv-space-2);font-weight:var(--fw-bold);color:var(--c-text);background:var(--c-surface-muted);border-right:1px solid var(--c-border);border-bottom:2px solid var(--c-text)}.wcal-blank{background:var(--c-background);border-right:1px solid var(--c-divider);border-bottom:1px solid var(--c-divider)}.wcal-item{display:contents}.wcal-week{display:none}.wcal-day{min-height:112px;padding:var(--fv-space-2);border:0;border-right:1px solid var(--c-divider);border-bottom:1px solid var(--c-divider);background:var(--c-surface);text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:2px;color:var(--c-text-muted)}.wcal-day:hover{background:var(--c-surface-muted)}.wcal-day:focus-visible{outline:4px solid var(--c-focus);outline-offset:-4px;box-shadow:inset 0 0 0 6px var(--c-focus-ring);z-index:3}.wcal-day.we{background:var(--app-weekend-bg)}.wcal-day.closed{background:var(--app-closed-bg)}.wcal-day.short{background:var(--c-danger-soft)}.wcal-day.tight{background:var(--c-warning-soft)}.wcal-day[aria-pressed=true]{outline:3px solid var(--c-accent-deep);outline-offset:-3px}.wcal-top{display:flex;flex-wrap:wrap;gap:0 6px}.wcal-top .d{font-weight:var(--fw-bold);color:var(--c-text)}.wcal-top .sp{color:var(--c-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.wline{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;line-height:1.4;color:var(--c-text-muted)}.wline .bl{min-width:1em}.wline.short{color:var(--c-danger-text);font-weight:var(--fw-bold)}.wline.tight{color:var(--c-warning-text);font-weight:var(--fw-bold)}.wline .flag{display:inline-flex;align-items:center;gap:2px}.who-band{margin-top:var(--fv-space-3);padding-top:var(--fv-space-3);border-top:1px solid var(--c-divider)}.who-band h4{margin:0;font-size:var(--t-body);color:var(--c-text)}.who-band ul{margin:4px 0 0;padding:0;list-style:none}@media(max-width:767px){.wcal{grid-template-columns:minmax(0,1fr)}.wcal-wd,.wcal-blank{display:none}.wcal-week{display:block;margin:0;padding:var(--fv-space-2) var(--fv-space-3);font-weight:var(--fw-bold);color:var(--c-text);background:var(--c-surface-muted);border-right:1px solid var(--c-border);border-bottom:1px solid var(--c-border)}.wcal-day{min-height:0}}.cell-btn:focus-visible,.cal-day:focus-visible,.wcal-day:focus-visible,.issue-btn:focus-visible,.opt:focus-visible,.seg button:focus-visible,.tabs [role=tab]:focus-visible{outline:4px solid var(--c-focus)!important;outline-offset:-4px!important;box-shadow:inset 0 0 0 6px var(--c-focus-ring)!important;z-index:3}.avail-btn:focus-visible,.btn:focus-visible,.select:focus-visible,.nav a:focus-visible{outline:4px solid var(--c-focus)!important;outline-offset:2px!important;box-shadow:0 0 0 2px var(--c-focus-ring)!important}.wd-narrow{display:none}@media(max-width:767px){.wd-narrow{display:inline}}.ai-mark{display:inline-flex;align-items:center;justify-content:center;min-width:2.2em;padding:0 6px;border:2px solid var(--c-accent);border-radius:var(--r-sm);color:var(--c-accent);font-weight:var(--fw-bold);line-height:1.4;margin-right:4px}.ai-notice{display:flex;align-items:flex-start;gap:6px;margin-top:var(--fv-space-3);color:var(--c-text-body)}.ai-notice svg{flex:none;margin-top:4px;color:var(--c-accent)}.ai-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--fv-space-3);margin-top:var(--fv-space-3)}.ai-actions.split{justify-content:space-between}.ai-status{display:inline-flex;align-items:center;gap:8px;color:var(--c-text);min-height:1.7em}.ai-spinner{width:18px;height:18px;border:3px solid var(--c-accent-soft);border-top-color:var(--c-accent);border-radius:50%;animation:ai-spin .9s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ai-spinner{animation:none}}.textarea{width:100%;min-height:96px;padding:10px 12px;border:1px solid var(--c-line);border-radius:var(--r-sm);background:var(--c-surface);font-size:var(--t-body);line-height:1.7;resize:vertical}.textarea:focus-visible{outline:4px solid var(--c-focus)!important;outline-offset:2px!important;box-shadow:0 0 0 2px var(--c-focus-ring)!important}.ai-field .desc{color:var(--c-text-muted)}.ai-examples{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--fv-space-2);margin-top:var(--fv-space-2)}.ai-examples .btn-tertiary{padding:0 6px}.ai-proposal{margin-top:var(--fv-space-4);padding:var(--fv-space-4);border:2px dashed var(--c-accent);border-radius:var(--r-md);background:var(--c-surface)}.ai-proposal-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--fv-space-2);margin-bottom:var(--fv-space-2)}.ai-proposal h3{display:flex;align-items:center;font-size:var(--t-body)}.ai-diff{border:0;margin:0;padding:0}.ai-diff .check-row strong{color:var(--c-text)}.ai-unparsed{margin-top:var(--fv-space-3);padding:var(--fv-space-3);border-left:4px solid var(--c-warning);background:var(--c-warning-soft)}.ai-unparsed h4{margin:0;font-size:var(--t-body);color:var(--c-text)}.ai-unparsed ul{margin:4px 0 0;padding-left:1.2em}.ai-total{margin-top:var(--fv-space-3);font-weight:var(--fw-bold);color:var(--c-text)}.ai-memo-row{display:flex;flex-wrap:wrap;gap:var(--fv-space-3) var(--fv-space-4);align-items:flex-start}.ai-fix{padding-top:var(--fv-space-2)}.ai-fix .ai-proposal{margin-top:var(--fv-space-2);padding:var(--fv-space-3)}.ai-recs{margin:0;padding:0;list-style:none}.ai-field{display:flex;width:100%;max-width:760px}.panel>.ai-notice:first-child{margin-top:0;margin-bottom:var(--fv-space-3)}.ai-group{border-bottom:1px solid var(--c-divider)}.ai-group .check-row{border-bottom:0}.ai-days{margin:0 0 var(--fv-space-2) 36px}.ai-days summary{min-height:var(--app-target);display:flex;align-items:center;cursor:pointer;color:var(--c-accent);text-decoration:underline}.ai-days summary:focus-visible{outline:4px solid var(--c-focus);outline-offset:2px;box-shadow:0 0 0 2px var(--c-focus-ring)}
