@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-ext-wght-normal.1zrieox9119mb.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-wght-normal.2whpih27xg_2r.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-ext-wght-normal.1xlj4-0oa5zql.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-wght-normal.1fxkn-ggzj93z.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-vietnamese-wght-normal.1ahvy37o8m5gt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-ext-wght-normal.2ktx6yqc-sbf1.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-wght-normal.0rpdhg_4ubdtf.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--c-bg:#f7f9fc;--c-surface:#fff;--c-primary-900:#183153;--c-primary-800:#22406a;--c-primary-600:#3d5a82;--c-primary-300:#aebfd6;--c-primary-200:#d3deec;--c-primary-100:#e8eef7;--c-primary-50:#f1f5fb;--c-accent:#007f78;--c-accent-hover:#00665f;--c-accent-soft:#e2f3f1;--c-on-accent:#fff;--c-text:#1b2b42;--c-text-muted:#4e5f77;--c-text-subtle:#5f6f85;--c-border:#d6dfeb;--c-border-strong:#b5c3d6;--c-success:#1c6b37;--c-success-soft:#e5f3ea;--c-warning:#8a4b00;--c-warning-soft:#fff1dc;--c-danger:#b3261e;--c-danger-soft:#fdecea;--c-info-soft:#e8eef7;--c-focus:#007f78;--c-overlay:#18315373;--font:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-xs:.8125rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--lh-tight:1.25;--lh:1.5;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-pill:999px;--shadow-1:0 1px 2px #1831530f;--shadow-2:0 8px 24px #1831531f;--tap:44px;--sidebar-w:248px;--content-max:1440px;--bottom-nav-h:64px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--fs-md);line-height:var(--lh);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{line-height:var(--lh-tight);color:var(--c-primary-900);margin:0;font-weight:650}h1{font-size:var(--fs-2xl);letter-spacing:-.01em}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:var(--c-accent-hover)}button,input,select,textarea{font:inherit;color:inherit}svg{flex-shrink:0}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--sp-4);z-index:100;background:var(--c-primary-900);color:#fff;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);position:absolute;top:-100px}.skip-link:focus{top:var(--sp-2)}.muted{color:var(--c-text-muted)}.small{font-size:var(--fs-sm)}.xsmall{font-size:var(--fs-xs)}.strong{font-weight:600}.nowrap{white-space:nowrap}.pre{white-space:pre-line;overflow-wrap:anywhere}.stack>*+*{margin-top:var(--sp-4)}.stack-sm>*+*{margin-top:var(--sp-2)}.stack-lg>*+*{margin-top:var(--sp-5)}.row-flex{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.spacer{flex:1}.text-danger{color:var(--c-danger)}.text-success{color:var(--c-success)}.text-warning{color:var(--c-warning)}.env-ribbon{z-index:40;justify-content:center;align-items:center;gap:var(--sp-2);min-height:30px;padding:3px var(--sp-4);color:#fff;font-size:var(--fs-xs);text-align:center;background:#8a4b00;font-weight:650;display:flex;position:sticky;top:0}.shell{min-height:100vh}.sidebar{display:none}.shell__main{min-width:0}.topbar{z-index:20;align-items:center;gap:var(--sp-3);min-height:60px;padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--c-border);background:#f7f9fcf7;display:flex;position:sticky;top:0}.topbar__title{font-size:var(--fs-lg);color:var(--c-primary-900);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:650;overflow:hidden}.topbar__brand{align-items:center;gap:var(--sp-2);color:var(--c-primary-900);font-weight:700;text-decoration:none;display:flex}.topbar__actions{gap:var(--sp-1);align-items:center;margin-left:auto;display:flex}.env-ribbon+.shell .topbar{top:30px}.icon-btn{width:var(--tap);height:var(--tap);border-radius:var(--r-md);color:var(--c-primary-900);cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid;position:relative}.icon-btn:hover{background:var(--c-primary-100)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn--danger:hover,.icon-btn--danger:focus-visible{background:var(--c-danger-soft);color:var(--c-danger)}.page{width:100%;max-width:var(--content-max);padding:var(--sp-4) var(--sp-4) calc(var(--bottom-nav-h) + var(--sp-7));margin:0 auto}.bottom-nav{z-index:25;height:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--c-surface);border-top:1px solid var(--c-border);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--c-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:500;text-decoration:none;display:flex}.bottom-nav a svg{box-sizing:content-box;border-radius:999px;padding:4px 18px}.bottom-nav a[aria-current=page]{color:var(--c-accent-hover);font-weight:700}.bottom-nav a[aria-current=page] svg{background:var(--c-accent-soft);stroke-width:2.4px}.sidebar__brand{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3) var(--sp-5);flex-direction:column;display:flex}.sidebar__logo{width:112px;height:auto}.topbar__logo{width:64px;height:auto;display:block}.sidebar__brand strong{font-size:var(--fs-lg);line-height:1.2;display:block}.sidebar__brand span{font-size:var(--fs-xs);opacity:.8;margin-top:2px;line-height:1.35;display:block}.sidebar__nav{flex-direction:column;gap:2px;display:flex}.sidebar__foot{padding:var(--sp-3);font-size:var(--fs-xs);color:#c3d0e3;margin-top:auto;line-height:1.4}@media (min-width:1024px){.shell{grid-template-columns:var(--sidebar-w) 1fr;display:grid}.sidebar{gap:var(--sp-1);height:100vh;padding:var(--sp-4) var(--sp-3);background:var(--c-primary-900);color:#fff;flex-direction:column;display:flex;position:sticky;top:0}.env-ribbon+.shell .sidebar{height:calc(100vh - 30px);top:30px}.sidebar a{align-items:center;gap:var(--sp-3);min-height:var(--tap);padding:0 var(--sp-3);border-radius:var(--r-md);color:#dbe5f3;font-weight:500;text-decoration:none;display:flex}.sidebar a:hover{color:#fff;background:#ffffff14}.sidebar a[aria-current=page]{color:var(--c-primary-900);background:#fff;font-weight:650}.sidebar a[aria-current=page] svg{color:var(--c-accent)}.sidebar :focus-visible{outline-color:#7fe0d8}.bottom-nav{display:none}.topbar{padding:var(--sp-2) var(--sp-5)}.topbar__brand{display:none}.page{padding:var(--sp-5) var(--sp-5) var(--sp-7)}}.mobile-only{display:inline-flex}.desktop-only{display:none}@media (min-width:1024px){.mobile-only{display:none!important}.desktop-only{display:inline-flex}}.user-menu{position:relative}.user-menu__btn{align-items:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-2) 0 4px;border-radius:var(--r-pill);cursor:pointer;color:var(--c-primary-900);background:0 0;border:1px solid #0000;font-weight:600;display:inline-flex}.user-menu__btn:hover{background:var(--c-primary-100)}.user-menu__pop{z-index:50;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);min-width:240px;box-shadow:var(--shadow-2);padding:var(--sp-2);position:absolute;top:calc(100% + 6px);right:0}.user-menu__who{padding:var(--sp-2) var(--sp-3) var(--sp-3);border-bottom:1px solid var(--c-border);margin-bottom:var(--sp-2)}.user-menu__item{align-items:center;gap:var(--sp-3);width:100%;min-height:var(--tap);padding:0 var(--sp-3);border-radius:var(--r-sm);color:var(--c-text);cursor:pointer;text-align:left;background:0 0;border:0;font-weight:500;text-decoration:none;display:flex}.user-menu__item:hover{background:var(--c-primary-50)}.avatar{color:#fff;width:34px;height:34px;font-weight:700;font-size:var(--fs-xs);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.swatch{border:1px solid #00000026;border-radius:4px;flex-shrink:0;width:14px;height:14px;display:inline-block}.page-head{align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.page-head__text{flex:240px;min-width:0}.page-head__eyebrow{font-size:var(--fs-sm);color:var(--c-text-muted);margin-bottom:var(--sp-1);font-weight:500}.page-head__sub{color:var(--c-text-muted);margin-top:var(--sp-1)}.back-link{align-items:center;gap:var(--sp-1);min-height:var(--tap);color:var(--c-primary-800);margin-bottom:var(--sp-1);border-radius:var(--r-sm);margin-left:-6px;padding:0 6px;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{background:var(--c-primary-100)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-4);border-radius:var(--r-md);font-weight:600;font-size:var(--fs-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;text-decoration:none;display:inline-flex}.btn--block{width:100%}.btn--sm{min-height:38px;padding:0 var(--sp-3);font-size:var(--fs-sm)}.btn--primary{background:var(--c-accent);color:var(--c-on-accent)}.btn--primary:hover{background:var(--c-accent-hover)}.btn--secondary{background:var(--c-surface);color:var(--c-primary-900);border-color:var(--c-border-strong)}.btn--secondary:hover{background:var(--c-primary-50);border-color:var(--c-primary-600)}.btn--ghost{color:var(--c-primary-800);background:0 0}.btn--ghost:hover{background:var(--c-primary-100)}.btn--danger{background:var(--c-surface);color:var(--c-danger);border-color:#e7b4ae}.btn--danger:hover{background:var(--c-danger-soft)}.btn--success{background:var(--c-success);color:#fff}.btn--success:hover{background:#155a2d}.btn[disabled]{opacity:.55;cursor:not-allowed}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--shadow-1);min-width:0}.card--flush{padding:0;overflow:hidden}.card--tint{background:var(--c-primary-50);box-shadow:none}.card__head{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.card__head h2{font-size:var(--fs-lg);flex:1}.card--flush .card__head{padding:var(--sp-4) var(--sp-4) 0}.section-title{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--c-text-muted);margin:var(--sp-4) 0 var(--sp-2);font-weight:650}.badge{border-radius:var(--r-pill);font-size:var(--fs-xs);white-space:nowrap;background:var(--c-primary-100);color:var(--c-primary-800);align-items:center;gap:4px;padding:2px 8px;font-weight:600;line-height:20px;display:inline-flex}.badge--success{background:var(--c-success-soft);color:var(--c-success)}.badge--warning{background:var(--c-warning-soft);color:var(--c-warning)}.badge--danger{background:var(--c-danger-soft);color:var(--c-danger)}.badge--accent{background:var(--c-accent-soft);color:var(--c-accent-hover)}.badge--neutral{color:var(--c-text-muted);background:#eef1f5}.badge--outline{border:1px solid var(--c-border-strong);color:var(--c-text-muted);background:0 0;line-height:18px}.type-tag{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--c-primary-800);align-items:center;gap:4px;font-weight:700;display:inline-flex}.dl{gap:var(--sp-2) var(--sp-4);margin-bottom:0;grid-template-columns:minmax(120px,auto) 1fr;margin-inline:0;display:grid}.dl dt{color:var(--c-text-muted);font-size:var(--fs-sm);padding-top:1px}.dl dd{overflow-wrap:anywhere;margin:0;font-weight:500}@media (max-width:480px){.dl{grid-template-columns:1fr;gap:2px}.dl dd{margin-bottom:var(--sp-2)}}.alert{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--c-info-soft);color:var(--c-primary-900);border:1px solid var(--c-primary-200);display:flex}.alert svg{margin-top:2px}.alert__body{flex:1;min-width:0}.alert__title{font-weight:650}.alert--warning{background:var(--c-warning-soft);border-color:#f0cf9c}.alert--warning>svg{color:var(--c-warning)}.alert--danger{background:var(--c-danger-soft);border-color:#efbdb7}.alert--danger>svg{color:var(--c-danger)}.alert--success{background:var(--c-success-soft);border-color:#b8dcc3}.alert--success>svg{color:var(--c-success)}.state{text-align:center;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);flex-direction:column;display:flex}.state__icon{background:var(--c-primary-100);width:56px;height:56px;color:var(--c-primary-800);margin-bottom:var(--sp-2);border-radius:50%;place-items:center;display:grid}.state__text{color:var(--c-text-muted);max-width:46ch}.state--danger .state__icon{background:var(--c-danger-soft);color:var(--c-danger)}.skel{border-radius:var(--r-sm);background:#e9eef5}.segmented{border-radius:var(--r-md);background:var(--c-primary-100);gap:4px;max-width:100%;padding:4px;display:inline-flex;overflow-x:auto}.segmented button{min-height:36px;padding:0 var(--sp-3);font-weight:600;font-size:var(--fs-sm);color:var(--c-primary-800);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px}.segmented button[aria-pressed=true]{background:var(--c-surface);color:var(--c-primary-900);box-shadow:var(--shadow-1)}.chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.chip{min-height:38px;padding:0 var(--sp-3);border-radius:var(--r-pill);border:1px solid var(--c-border-strong);background:var(--c-surface);font-size:var(--fs-sm);color:var(--c-primary-800);cursor:pointer;align-items:center;gap:6px;font-weight:600;display:inline-flex}.chip[aria-pressed=true]{background:var(--c-primary-900);border-color:var(--c-primary-900);color:#fff}.chip--warning{background:var(--c-warning-soft);color:var(--c-warning);border-color:#f0cf9c}.chip--warning[aria-pressed=true]{background:var(--c-warning);border-color:var(--c-warning);color:#fff}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field__label{color:var(--c-primary-900);font-weight:600}.field__label .opt{color:var(--c-text-muted);font-weight:500;font-size:var(--fs-sm)}.field__hint{font-size:var(--fs-sm);color:var(--c-text-muted)}.field__error{font-size:var(--fs-sm);color:var(--c-danger);align-items:flex-start;gap:6px;font-weight:600;display:flex}.input,.select,.textarea{width:100%;min-height:var(--tap);padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--c-border-strong);background:var(--c-surface)}.textarea{padding:10px var(--sp-3);resize:vertical;min-height:88px}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline-offset:0}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--c-danger);border-width:2px}.input[readonly]{background:var(--c-primary-50)}.search{position:relative}.search>svg{color:var(--c-text-subtle);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search .input{padding-left:40px}.check{align-items:flex-start;gap:var(--sp-3);min-height:var(--tap);padding:var(--sp-2) 0;cursor:pointer;display:flex}.check input{width:22px;height:22px;accent-color:var(--c-accent);flex-shrink:0;margin:1px 0 0}.check--disabled{cursor:not-allowed;color:var(--c-text-muted)}.form-grid{gap:var(--sp-4);display:grid}@media (min-width:640px){.form-grid--2{grid-template-columns:1fr 1fr}.form-grid--3{grid-template-columns:repeat(3,1fr)}.form-grid .span-2{grid-column:span 2}.form-grid .span-all{grid-column:1/-1}}fieldset.fs{border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-4);background:var(--c-surface);min-width:0;margin:0}fieldset.fs>legend{color:var(--c-primary-900);padding:0 var(--sp-2);font-weight:700;font-size:var(--fs-lg)}.reminder-row{align-items:flex-start;gap:var(--sp-2) var(--sp-5);flex-wrap:wrap;display:flex}.reminder-row>:first-child{flex:260px}.fs__sub{font-size:var(--fs-md);color:var(--c-primary-900);margin:0;font-weight:700}.radio-card{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);cursor:pointer;align-items:flex-start;display:flex}.radio-card:has(input:checked){border:2px solid var(--c-accent);padding:calc(var(--sp-3) - 1px) calc(var(--sp-4) - 1px);background:#f6fbfa}.radio-card input{width:20px;height:20px;accent-color:var(--c-accent);flex-shrink:0;margin-top:2px}.color-grid{gap:var(--sp-2);flex-wrap:wrap;display:flex}.color-opt{border-radius:var(--r-md);cursor:pointer;color:#fff;border:3px solid #0000;place-items:center;width:40px;height:40px;display:grid}.color-opt[aria-pressed=true]{border-color:var(--c-primary-900);box-shadow:inset 0 0 0 2px #fff}.combo{position:relative}.combo__list{z-index:30;background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-md);max-height:300px;box-shadow:var(--shadow-2);padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.combo__opt{text-align:left;width:100%;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);cursor:pointer;min-height:var(--tap);background:0 0;border:0;flex-direction:column;justify-content:center;display:flex}.combo__opt:hover,.combo__opt[aria-selected=true]{background:var(--c-primary-100)}.combo__opt small{color:var(--c-text-muted)}.picked{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--c-primary-200);background:var(--c-primary-50);border-radius:var(--r-md);display:flex}.picked__main{flex:1;min-width:0}.modal-backdrop{z-index:60;background:var(--c-overlay);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--c-surface);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:94vh;padding:var(--sp-5) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom));box-shadow:var(--shadow-2);overflow-y:auto}.modal__head{align-items:flex-start;gap:var(--sp-2);margin-bottom:var(--sp-4);display:flex}.modal__head h2{font-size:var(--fs-xl);flex:1}.modal__head .icon-btn{margin:-8px -8px 0 0}.modal__actions{gap:var(--sp-2);margin-top:var(--sp-5);flex-direction:column-reverse;display:flex}@media (min-width:640px){.modal-backdrop{padding:var(--sp-4);align-items:center}.modal{border-radius:var(--r-lg);max-width:560px;padding:var(--sp-5)}.modal--wide{max-width:760px}.modal__actions{flex-flow:wrap;justify-content:flex-end}}.toasts{z-index:70;left:var(--sp-4);right:var(--sp-4);bottom:calc(var(--bottom-nav-h) + var(--sp-3) + env(safe-area-inset-bottom));gap:var(--sp-2);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{pointer-events:auto;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--c-primary-900);color:#fff;box-shadow:var(--shadow-2);align-items:flex-start;width:100%;max-width:480px;margin:0 auto;display:flex}.toast--danger{background:#7a1a14}.toast button{color:#fff;cursor:pointer;background:0 0;border:0;min-width:32px;min-height:32px;margin-left:auto}@media (min-width:1024px){.toasts{left:auto;right:var(--sp-6);bottom:var(--sp-6);width:420px}}.grid-2{gap:var(--sp-4);display:grid}@media (min-width:900px){.grid-2{grid-template-columns:1fr 1fr}}.detail-grid{gap:var(--sp-4);display:grid}@media (min-width:1100px){.detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);align-items:start}}.toolbar{align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.toolbar .field{flex:0 220px;min-width:170px}.toolbar__grow{flex:260px!important}.table-wrap{border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.data-table th{text-align:left;color:var(--c-text-muted);font-weight:650;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;padding:10px var(--sp-3);background:var(--c-primary-50);border-bottom:1px solid var(--c-border);white-space:nowrap}.data-table td{padding:10px var(--sp-3);border-bottom:1px solid var(--c-border);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tr.is-clickable{cursor:pointer}.data-table tr.is-clickable:hover td{background:var(--c-primary-50)}.data-table tr.is-flagged td:first-child{box-shadow:inset 4px 0 0 var(--c-warning)}.th-sort{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:4px;padding:4px 2px;display:inline-flex}.row-title{color:var(--c-primary-900);font-weight:650;text-decoration:none}a.row-title:hover{text-decoration:underline}.row-sub{font-size:var(--fs-xs);color:var(--c-text-muted);display:block}@media (max-width:759px){.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{width:100%;display:block}.data-table tr{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}.data-table td{gap:var(--sp-3);border:0;padding:3px 0;display:flex}.data-table td:before{content:attr(data-label);font-size:var(--fs-xs);color:var(--c-text-muted);flex:0 0 38%;font-weight:600}.data-table td:first-child:before{display:none}.data-table td:first-child{font-size:var(--fs-md)}.data-table tr.is-flagged td:first-child{box-shadow:none}.data-table tr.is-flagged{box-shadow:inset 4px 0 0 var(--c-warning)}}.cal-toolbar{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.cal-toolbar__period{font-size:var(--fs-xl);color:var(--c-primary-900);margin:0 var(--sp-2);min-width:0;font-weight:700}.cal-nav{align-items:center;gap:2px;display:inline-flex}.cal-date-input{width:auto;min-width:150px}.cal-filters{align-items:flex-end;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);flex-wrap:wrap;display:flex}.cal-filters .field{flex:0 200px;min-width:160px}.cal-filters .field--grow{flex:240px}.cal-filters .field--fixed{flex:none;min-width:0}.ev__row .ev__flag{margin-left:auto}.people-pop{z-index:30;background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-md);width:min(340px,92vw);max-height:420px;box-shadow:var(--shadow-2);padding:var(--sp-3);position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.people-pop .check{align-items:center;min-height:40px;padding:4px 0}.legend{gap:var(--sp-2) var(--sp-4);font-size:var(--fs-xs);color:var(--c-text-muted);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.tg-scroll{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-surface);overflow-x:auto}.tg{--hour:64px;min-width:100%;display:grid}.tg__head,.tg__allday,.tg__body{grid-template-columns:58px repeat(var(--days), minmax(var(--colmin,130px), 1fr));display:grid}.tg__head{z-index:3;background:var(--c-primary-50);border-bottom:1px solid var(--c-border);position:sticky;top:0}.tg__dayhead{padding:var(--sp-2) var(--sp-2);border-left:1px solid var(--c-border);color:var(--c-primary-900);font-weight:650;font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;border-top:0;border-bottom:0;border-right:0}.tg__dayhead:hover{background:var(--c-primary-100)}.tg__dayhead span{font-size:var(--fs-xs);color:var(--c-text-muted);font-weight:500;display:block}.tg__dayhead--today{background:var(--c-primary-900);color:#fff}.tg__dayhead--today:hover{background:var(--c-primary-800)}.tg__dayhead--today span{color:#cdd8e8}.tg__allday{border-bottom:2px solid var(--c-border);background:#fbfcfe}.tg__allday-label{color:var(--c-text-muted);text-align:right;padding:6px;font-size:11px;font-weight:600;line-height:1.2}.tg__allday-cell{border-left:1px solid var(--c-border);flex-direction:column;gap:4px;min-height:36px;padding:4px;display:flex}.tg__times{position:relative}.tg__time{height:var(--hour);color:var(--c-text-subtle);text-align:right;font-variant-numeric:tabular-nums;padding:0 8px 0 0;font-size:12px;transform:translateY(-8px)}.tg__time:first-child{transform:none}.tg__col{border-left:1px solid var(--c-border);position:relative}.tg__col--today{background:#fbfdff}.tg__slot{width:100%;height:calc(var(--hour) / 2);cursor:pointer;background:0 0;border:0;border-bottom:1px dotted #e4eaf2;padding:0;display:block}.tg__slot:nth-child(2n){border-bottom:1px solid var(--c-border)}.tg__slot:hover{background:var(--c-accent-soft)}.tg__slot:focus-visible{outline-offset:-3px;background:var(--c-accent-soft)}.tg__slot--drop{background:var(--c-accent-soft);box-shadow:inset 0 0 0 2px var(--c-accent)}.tg__now{background:var(--c-danger);z-index:2;pointer-events:none;height:2px;position:absolute;left:0;right:0}.tg__now:before{content:"";background:var(--c-danger);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.ev{--ev-color:var(--c-primary-600);border-radius:var(--r-sm);color:var(--c-text);background:color-mix(in srgb, var(--ev-color) 12%, #fff);border:1px solid color-mix(in srgb, var(--ev-color) 35%, #fff);border-left:5px solid var(--ev-color);cursor:pointer;text-align:left;z-index:1;padding:3px 6px 3px 8px;font-size:12.5px;line-height:1.3;position:absolute;overflow:hidden}.ev:hover,.ev:focus-visible{box-shadow:0 0 0 2px var(--c-primary-900);z-index:4}.ev--static{width:100%;position:relative}.ev__row{align-items:center;gap:4px;min-width:0;display:flex}.ev__time{color:var(--c-primary-900);font-variant-numeric:tabular-nums;font-weight:700}.ev__type{text-transform:uppercase;letter-spacing:.03em;color:var(--c-primary-800);white-space:nowrap;align-items:center;gap:3px;font-size:10.5px;font-weight:700;display:inline-flex}.ev__patient{color:var(--c-primary-900);text-overflow:ellipsis;white-space:nowrap;font-weight:650;display:block;overflow:hidden}.ev__meta{color:var(--c-text-muted);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ev__flag{white-space:nowrap;align-items:center;gap:3px;font-size:11px;font-weight:700;display:inline-flex}.ev__flag--warn{color:var(--c-warning)}.ev__flag--done{color:var(--c-success)}.ev__flag--muted{color:var(--c-text-muted)}.ev--cancelled{color:var(--c-text-muted);background:#f5f7fa;border-left-style:dashed}.ev--cancelled .ev__patient{color:var(--c-text-muted);text-decoration:line-through}.ev--noshow{background:#f5f7fa}.ev--done{opacity:.85}.ev--attention{box-shadow:0 0 0 2px var(--c-warning)}.ev[draggable=true]{cursor:grab}.month{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-surface);overflow:hidden}.month__head,.month__week{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.month__head div{padding:var(--sp-2);font-size:var(--fs-xs);text-transform:uppercase;color:var(--c-text-muted);background:var(--c-primary-50);border-bottom:1px solid var(--c-border);font-weight:700}.month__cell{border-left:1px solid var(--c-border);border-bottom:1px solid var(--c-border);flex-direction:column;gap:3px;min-width:0;min-height:120px;padding:4px;display:flex}.month__cell:first-child{border-left:0}.month__cell--other{background:#fafbfd}.month__cell--other .month__num{color:var(--c-text-subtle);font-weight:500}.month__top{justify-content:space-between;align-items:center;gap:4px;display:flex}.month__num{min-width:32px;height:32px;color:var(--c-primary-900);cursor:pointer;background:0 0;border:0;border-radius:50%;font-weight:700}.month__num:hover{background:var(--c-primary-100)}.month__num--today{background:var(--c-primary-900);color:#fff}.month__num--today:hover{background:var(--c-primary-800)}.month__add{opacity:0;width:32px;height:32px}.month__cell:hover .month__add,.month__add:focus-visible{opacity:1}.month__item{border:0;border-left:4px solid var(--ev-color);background:color-mix(in srgb, var(--ev-color) 10%, #fff);text-align:left;cursor:pointer;white-space:nowrap;width:100%;min-height:24px;color:var(--c-text);border-radius:4px;align-items:center;gap:4px;padding:1px 4px 1px 6px;font-size:12px;display:flex;overflow:hidden}.month__item:hover{background:color-mix(in srgb, var(--ev-color) 20%, #fff)}.month__item--cancelled{color:var(--c-text-muted);border-left-style:dashed;text-decoration:line-through}.month__item span{text-overflow:ellipsis;overflow:hidden}.month__more{color:var(--c-accent-hover);text-align:left;cursor:pointer;background:0 0;border:0;min-height:24px;padding:2px 4px;font-size:12px;font-weight:650}@media (max-width:759px){.month__cell{min-height:64px;padding:2px}.month__item span:not(.month__dot-only){display:none}.month__item{background:var(--ev-color);border-left-width:0;border-radius:3px;height:10px;min-height:10px;padding:0}.month__add{display:none}}.agenda-day+.agenda-day{margin-top:var(--sp-4)}.agenda-day__head{align-items:center;gap:var(--sp-2);z-index:2;padding:var(--sp-2) 0;background:var(--c-bg);color:var(--c-primary-900);font-weight:700;display:flex;position:sticky;top:60px}.agenda-day__head--today{color:var(--c-accent-hover)}.agenda-list{gap:var(--sp-2);flex-direction:column;display:flex}.agenda-item{--ev-color:var(--c-primary-600);gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4) var(--sp-3) var(--sp-3);border:1px solid var(--c-border);border-left:6px solid var(--ev-color);border-radius:var(--r-md);background:var(--c-surface);text-align:left;cursor:pointer;color:inherit;grid-template-columns:76px 1fr auto;align-items:start;min-height:64px;display:grid}.agenda-item:hover{background:var(--c-primary-50)}.agenda-item__time{color:var(--c-primary-900);font-variant-numeric:tabular-nums;font-weight:700}.agenda-item__time span{font-weight:500;font-size:var(--fs-sm);color:var(--c-text-muted);display:block}.agenda-item__title{color:var(--c-primary-900);overflow-wrap:anywhere;font-weight:650}.agenda-item__meta{gap:2px var(--sp-3);font-size:var(--fs-sm);color:var(--c-text-muted);flex-wrap:wrap;margin-top:2px;display:flex}.agenda-item__meta span{align-items:center;gap:4px;display:inline-flex}.agenda-item--cancelled{background:#f5f7fa;border-left-style:dashed}.agenda-item--cancelled .agenda-item__title{color:var(--c-text-muted);text-decoration:line-through}@media (max-width:480px){.agenda-item{grid-template-columns:58px 1fr}.agenda-item>:last-child{grid-column:2}}.timeline{padding-left:36px;position:relative}.timeline>li{padding-bottom:var(--sp-4);position:relative}.timeline>li:last-child{padding-bottom:0}.timeline>li:before{content:"";background:var(--c-border);width:2px;position:absolute;top:30px;bottom:0;left:-23px}.timeline>li:last-child:before{display:none}.tl-dot{background:var(--c-surface);border:2px solid var(--c-border-strong);width:28px;height:28px;color:var(--c-primary-800);border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;left:-36px}.tl-dot--done{background:var(--c-success);border-color:var(--c-success);color:#fff}.tl-dot--planned{border-color:var(--c-accent);color:var(--c-accent-hover)}.tl-dot--warn{background:var(--c-warning-soft);border-color:var(--c-warning);color:var(--c-warning)}.tl-dot--muted{border-color:var(--c-border-strong);color:var(--c-text-subtle);background:#eef1f5}.tl-dot--handover{background:var(--c-primary-900);border-color:var(--c-primary-900);color:#fff}.tl-item{border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);background:var(--c-surface)}.tl-item--muted{background:#f7f8fa}.tl-item--muted .tl-title{color:var(--c-text-muted);text-decoration:line-through}.tl-item--handover{border:2px solid var(--c-primary-900);background:var(--c-primary-50)}.tl-item--note{background:#fffdf5;border-color:#efe3bf}.tl-head{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.tl-title{color:var(--c-primary-900);font-weight:700}.tl-when{color:var(--c-text-muted);font-size:var(--fs-sm)}.tl-body{margin-top:var(--sp-2);font-size:var(--fs-sm)}.tl-actions{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.next-steps{gap:var(--sp-2);flex-wrap:wrap;display:flex}.login{min-height:100vh;padding:var(--sp-5) var(--sp-4);place-items:center;display:grid}.login__card{width:100%;max-width:440px}.login__brand{text-align:center;align-items:center;gap:var(--sp-2);padding-bottom:var(--sp-4);margin-bottom:var(--sp-4);border-bottom:1px solid var(--c-border);flex-direction:column;display:flex}.login__logo{width:180px;max-width:70%;height:auto}.login__company{font-size:var(--fs-sm);letter-spacing:.04em;color:var(--c-primary-900);margin:0;font-weight:700}.history{font-size:var(--fs-sm)}.history li{padding:var(--sp-2) 0;border-top:1px solid var(--c-border)}.history li:first-child{border-top:0}.mail-list li{align-items:center;gap:var(--sp-2);border-top:1px solid var(--c-border);font-size:var(--fs-sm);flex-wrap:wrap;padding:6px 0;display:flex}.mail-list li:first-child{border-top:0}details.disclosure>summary{cursor:pointer;color:var(--c-primary-800);min-height:var(--tap);align-items:center;gap:var(--sp-2);font-weight:650;list-style:none;display:flex}details.disclosure>summary::-webkit-details-marker{display:none}details.disclosure>summary:after{content:"";border-bottom:2px solid;border-right:2px solid;width:8px;height:8px;margin-left:auto;margin-right:4px;transition:transform .15s;transform:translateY(-2px)rotate(45deg)}details.disclosure[open]>summary:after{transform:translateY(2px)rotate(-135deg)}@media print{.env-ribbon,.sidebar,.bottom-nav,.topbar,.btn,.cal-filters{display:none!important}body{background:#fff}}
