:root{--ink: #1f2937;--muted: #6b7280;--line: #e5e7eb;--bg: #f8fafc;--white: #ffffff;--accent: #db2777;--accent-dark: #be185d;--danger: #b91c1c;--radius: 12px;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0}h1{margin:0 0 .25rem;font-size:1.5rem}.muted{color:var(--muted)}.center{text-align:center;padding:3rem 1rem}.container{max-width:1100px;margin:0 auto;padding:2rem 1rem}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:2rem}button{min-height:44px;padding:.6rem 1.2rem;border:0;border-radius:8px;background:var(--accent);color:var(--white);font:inherit;font-weight:600;cursor:pointer}button:hover{background:var(--accent-dark)}button:disabled{opacity:.6;cursor:wait}button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}input,select{width:100%;min-height:44px;margin-top:.35rem;padding:.5rem .75rem;border:1px solid var(--line);border-radius:8px;font:inherit}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.error{margin:0;color:var(--danger)}.success{margin:0;color:var(--success)}.form-link{color:var(--accent-dark);font-size:.9rem;text-align:center;text-decoration:none}.form-link:hover{text-decoration:underline}.login-signup{margin:0;color:var(--muted);font-size:.8125rem;text-align:center}.login-signup .form-link{font-weight:600}.profile-card{display:grid;gap:1rem;max-width:620px}.profile-card form{display:grid;gap:1rem}.profile-card label{font-weight:500}.form-actions{display:flex;gap:.6rem}.metric-action:hover:not(:disabled){color:var(--ink)}.status{margin-left:auto;padding:.3rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600}.status.active{background:var(--green-soft);color:var(--success)}.status.locked{background:var(--pink-soft);color:var(--accent-dark)}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:var(--white);border-bottom:1px solid var(--line)}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr);background:#fffaf7;color:#3a2e48;font-family:Segoe UI,system-ui,sans-serif}.sidebar{display:flex;flex-direction:column;padding:1.5rem 1rem;background:#fff;border-right:1px solid #f1e6ee}.brand{display:flex;align-items:center;gap:.65rem;padding:.25rem .55rem 2.1rem;font-size:1.35rem;line-height:1;color:var(--accent)}.brand b{color:#3dae6b}.brand small{display:block;margin-top:.25rem;color:#76698a;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.sidebar nav{display:grid;gap:.35rem}.nav-item{display:flex;align-items:center;gap:.8rem;width:100%;min-height:46px;padding:.65rem .8rem;background:transparent;color:#76698a;text-align:left;font-weight:600}.nav-item:hover{background:var(--pink-tint);color:var(--accent)}.nav-item.active{color:var(--accent);background:var(--pink-soft)}.nav-icon{width:25px;height:25px;object-fit:contain;border-radius:7px}.avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#ece8fb;color:#6553b3;font-size:.75rem;font-weight:800}.workspace,.admin-content{min-width:0}.admin-content>.container{max-width:1280px;padding:clamp(1.25rem,3vw,2.5rem)}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem clamp(1.25rem,4vw,3.5rem);background:#fff;border-bottom:1px solid #f1e6ee}.workspace-header h1{font-size:1.65rem}.icon-button{min-height:40px;padding:.35rem .65rem;background:transparent;color:#3a2e48;border:1px solid #f1e6ee}.icon-button{position:relative;display:grid;place-items:center;width:40px;font-size:1.2rem}.icon-button img{width:18px;height:18px;object-fit:contain}.icon-button i{position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:#f08a24}button.secondary:hover{background:var(--pink-tint);color:var(--accent)}.page-content{max-width:1280px;margin:0 auto;padding:clamp(1.25rem,3vw,2.5rem)}.welcome{display:flex;justify-content:space-between;overflow:hidden;min-height:215px;padding:2rem clamp(1.5rem,4vw,3.25rem);border-radius:24px;background:linear-gradient(120deg,var(--pink-soft),#fff2da);position:relative}.welcome p{margin:0 0 .45rem;color:var(--accent);font-weight:700}.welcome h2{margin:0 0 1.35rem;font-size:clamp(1.2rem,2.3vw,1.8rem);line-height:1.35}.welcome button{background:var(--accent)}.welcome button span{margin-left:.5rem}.welcome-art{position:relative;width:250px;color:var(--accent);font-size:3rem}.welcome-art>span{position:absolute}.welcome-art>span:nth-child(1){right:18px;top:2px}.welcome-art>span:nth-child(2){left:28px;top:55px;color:#f08a24;font-size:1.8rem}.welcome-art>span:nth-child(3){right:85px;top:75px;color:#f8b54d;font-size:2rem}.book{position:absolute;right:45px;bottom:-35px;width:100px;height:135px;display:grid;place-items:center;border-radius:12px 12px 3px 3px;background:#3dae6b;box-shadow:10px 10px #e3f6ea;color:#fff;font-size:3.5rem;transform:rotate(8deg)}.more{min-height:32px;margin-left:auto;padding:0 .4rem;background:transparent;color:#76698a}.more:hover{background:var(--pink-tint);color:var(--accent)}.quick-icon{display:grid;place-items:center;flex:0 0 35px;width:35px;height:35px;padding:.35rem;border-radius:9px;object-fit:contain;font-weight:800}@media(max-width:960px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding-inline:.6rem}.brand{justify-content:center;padding-inline:0}.brand>span:last-child,.nav-item{font-size:0}.nav-item{justify-content:center;padding-inline:0}.nav-icon{width:22px;height:22px}}@media(max-width:620px){.app-shell{display:block}.sidebar{position:sticky;bottom:0;z-index:2;display:block;padding:.3rem .5rem;border-top:1px solid #f1e6ee;border-right:0}.brand{display:none}.sidebar nav{display:flex;justify-content:space-around}.nav-item{width:auto;min-height:47px;padding:.45rem .55rem}.nav-icon{width:20px;height:20px}.workspace-header{padding:1rem}.workspace-header h1{font-size:1.25rem}.welcome{min-height:225px;padding:1.5rem}.welcome-art{position:absolute;right:-45px;bottom:-15px;opacity:.45}.quick-icon{flex-basis:30px;width:30px;height:30px;padding:.2rem}}:root{--ink: #17191c;--muted: #6f737b;--line: #e9eaec;--bg: #f6f7f8;--white: #ffffff;--accent: #d93272;--accent-dark: #aa1d57;--accent-soft: #fff0f6;--danger: #b4233c;--radius: 16px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:-.012em}body{background:var(--bg)}button,input,select{font-family:inherit}button{border-radius:10px;background:var(--ink);box-shadow:0 8px 18px #17191c1a;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease}button:hover:not(:disabled){background:#2e3237;box-shadow:0 12px 26px #17191c29;transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(0) scale(.98);box-shadow:0 4px 10px #17191c1a}button.secondary{border:0;background:#eff0f2;color:var(--ink);box-shadow:none}button.secondary:hover:not(:disabled){background:#e2e4e7;color:var(--ink)}button.danger-button:hover:not(:disabled){background:var(--danger-dark)}input,select{border:0;border-radius:10px;background:#f0f1f3;color:var(--ink);transition:background .16s ease,box-shadow .16s ease}input:hover,select:hover{background:#e8eaed}input:focus,select:focus{background:var(--white);box-shadow:0 0 0 3px #d9327229;outline:0}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.card{border:0;border-radius:var(--radius);box-shadow:0 16px 36px #17191c0d}.container{max-width:1320px;position:relative}.app-shell{grid-template-columns:238px minmax(0,1fr);background:var(--bg);color:var(--ink)}.sidebar{padding:1.6rem .85rem 1.25rem;border:0;background:var(--white)}.brand{padding:.35rem .65rem 2.75rem;color:var(--ink);font-size:1.25rem;letter-spacing:-.06em}.brand b{color:var(--accent)}.brand small{color:var(--muted);font-size:.61rem;letter-spacing:.14em}.sidebar nav{gap:.22rem}.nav-item{min-height:44px;padding:.55rem .72rem;border-radius:9px;color:#777b83;font-size:.82rem;font-weight:650;box-shadow:none;transition:background .15s ease,color .15s ease,transform .15s ease}.nav-item:hover{background:#f5f5f6;color:var(--ink);box-shadow:none;transform:translate(3px)}.nav-item.active{background:var(--ink);color:#fff;box-shadow:0 9px 18px #17191c24}.nav-item.active:hover{background:var(--ink);color:#fff}.nav-icon{width:20px;height:20px;border-radius:5px}.avatar{width:32px;height:32px;background:#ebedf0;color:var(--ink);font-size:.67rem}.workspace-header{min-height:72px;padding:.75rem clamp(1.25rem,4.4vw,4.6rem);border:0;background:transparent}.workspace-header h1{min-width:0;margin:0;font-size:clamp(1.35rem,2.2vw,1.75rem);font-weight:760;letter-spacing:-.045em;line-height:1.15;overflow-wrap:anywhere}.icon-button{border:0;background:var(--white);box-shadow:0 5px 18px #17191c0d}.icon-button:hover{background:var(--white);color:var(--ink)}.admin-content>.container{padding-top:1rem}.page-content{max-width:1400px;padding:clamp(1rem,2vw,2rem) clamp(1.5rem,4.4vw,4.6rem) 4rem}.welcome{align-items:flex-end;min-height:280px;padding:clamp(2rem,5vw,4.5rem);border-radius:22px;background:var(--ink);color:var(--white);box-shadow:0 22px 45px #17191c21}.welcome:after{content:"";position:absolute;width:38%;height:140%;right:11%;bottom:-72%;border-radius:50%;background:var(--accent);opacity:.9;transform:rotate(-22deg)}.welcome p{color:#ffb5d2;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase}.welcome h2{max-width:620px;font-size:clamp(2.15rem,5vw,5rem);font-weight:720;letter-spacing:-.08em;line-height:.9}.welcome h2 strong{color:#ff83b3;font-weight:520}.welcome button{position:relative;z-index:2;background:var(--white);color:var(--ink);box-shadow:none}.welcome button:hover{background:#f4f4f5;color:var(--ink)}.welcome-art{z-index:1;width:285px}.welcome-art>img{position:absolute;width:88px;height:88px;padding:.7rem;border-radius:22px;object-fit:contain;background:#fff;box-shadow:0 14px 28px #0000002e}.welcome-art>img:first-child{top:16px;right:25px;transform:rotate(12deg)}.welcome-art>img:nth-child(2){top:108px;left:34px;transform:rotate(-14deg)}.book{right:70px;bottom:-32px;display:grid;width:106px;height:125px;border-radius:22px;background:var(--accent);box-shadow:none;transform:rotate(8deg)}.book img{width:63px;height:63px;object-fit:contain}.dashboard-page{display:grid;gap:clamp(1.75rem,4vw,3.5rem)}.dashboard-actions h2{margin:0;font-size:1.2rem;letter-spacing:-.04em}.dashboard-actions>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:1rem}.dashboard-actions button{display:flex;min-height:112px;align-items:center;gap:.85rem;padding:1rem;background:var(--white);color:var(--ink);text-align:left;box-shadow:0 8px 22px #17191c0d}.dashboard-actions button:hover:not(:disabled){background:var(--white);color:var(--ink)}.dashboard-actions button>span{display:grid;gap:.25rem}.dashboard-actions button small{color:var(--muted);font-weight:400;line-height:1.4}.dashboard-actions button>.app-icon:last-child{margin-left:auto;color:var(--accent)}.profile-card{max-width:700px;margin-bottom:1.5rem}.profile-page{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1.5rem}.profile-page .profile-card{width:100%;margin:0}.profile-card fieldset{display:grid;gap:1rem;min-width:0;margin:0;padding:0;border:0}input[aria-invalid=true],select[aria-invalid=true]{box-shadow:0 0 0 2px #b4233c47}.status{background:var(--surface-muted);border-radius:7px}.status.active{background:var(--green-soft)}.status.locked{background:var(--accent-soft)}.form-link{color:var(--accent-dark);font-weight:650}@media(max-width:960px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.brand{padding-bottom:2.4rem}.brand>span:last-child,.nav-item>span{display:none}.nav-item{justify-content:center}}@media(max-width:720px){.workspace-header{padding:.7rem 1.25rem;min-height:60px}.page-content{padding:1rem 1.25rem 5.75rem}.welcome{min-height:300px;padding:2rem}.welcome-art{opacity:.55;right:-54px;bottom:-12px}}@media(max-width:620px){.sidebar{background:#fffffff0;box-shadow:0 -8px 26px #17191c14;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar nav{overflow-x:auto;justify-content:flex-start;scrollbar-width:thin}.nav-item{flex:1 0 48px}.nav-item{min-width:43px}.workspace-header{min-height:58px}.workspace-header h1{font-size:1.25rem}.welcome h2{font-size:clamp(2.1rem,11vw,3.3rem)}.profile-page{grid-template-columns:1fr}.dashboard-actions>div{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.container>.page-title:has(>div:first-child):has(>:is(button,.row-menu)){justify-content:flex-end}.container>.page-title:not(:has(>button)):not(:has(>.row-menu)):not(:has(>.page-title-actions)){display:none}textarea{resize:vertical}.container>.page-title:has(>:is(button,.row-menu)){position:absolute;top:20px;right:24px;z-index:1;margin:0}.container:has(>.filter-bar)>.filter-bar{padding-right:200px}.filter-search:has(input:not(:placeholder-shown))>.app-icon{display:none}.filter-more>summary>span:not(.filter-date-label){display:grid;place-items:center;min-width:18px;height:18px;padding:0 .2rem;border-radius:999px;background:var(--accent);color:var(--white);font-size:.65rem}.filter-combobox,.date-picker{position:relative;display:grid;gap:.3rem}.form-combobox .date-picker-trigger,.form-combobox .date-picker-trigger:hover,.form-combobox .filter-combobox-trigger,.form-combobox .filter-combobox-trigger:hover{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;margin:0;padding:0 .75rem;border:1px solid var(--line-strong);background:var(--white);color:var(--ink);font-weight:500;text-align:left;transform:none}.form-combobox .filter-combobox-popover input{flex:none;width:100%;min-height:36px;margin:0}.form-combobox .filter-combobox-trigger,.form-combobox .date-picker-trigger{min-height:40px}.form-combobox .filter-combobox-trigger:disabled{background:var(--surface-hover);color:var(--muted);cursor:not-allowed}.login-field .filter-combobox-label{color:var(--ink);font-size:.8125rem;font-weight:600}.login-field .filter-combobox-trigger,.login-field .filter-combobox-trigger:hover{min-height:44px;padding:.625rem .875rem;font-size:.9375rem;font-weight:400}.filter-combobox-popover li.active{background:var(--pink-tint)}.folder-picker-enter:hover:not(:disabled){display:inline-flex;flex:none;align-items:center;gap:2px;min-height:28px;margin:-.25rem -.3rem -.25rem 0;padding:0 .3rem;border-radius:6px;background:transparent;color:var(--muted);box-shadow:none;transform:none}.folder-picker-enter:hover:not(:disabled){background:var(--pink-soft);color:var(--ink)}@keyframes filter-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.filter-combobox-popover{animation:filter-pop-in .16s ease-out}@media(prefers-reduced-motion:reduce){.filter-combobox-popover{animation:none}}.assistant-trigger:hover:not(:disabled){background:var(--accent);color:var(--white);transform:translateY(-50%)}@media(max-width:768px){.container>.page-title:has(>:is(button,.row-menu)){position:static;margin-bottom:12px}.container:has(>.filter-bar)>.filter-bar{padding-right:0}}.welcome button .app-icon{width:20px;height:20px}.dashboard-actions button>.app-icon:last-child{width:20px;height:20px}:root[data-theme=dark] .notification-count:not(.none){background:#4a2229;color:#f0929e}.tasks-page:has(.task-links){gap:var(--space-3)}.tasks-page:has(.task-links)>.card{padding:var(--space-4)}.tasks-page:has(.task-links) .task-links{gap:var(--space-2)}.tasks-page:has(.task-links) .card h2{margin:0 0 var(--space-2);font-size:1.0625rem}.tasks-page:has(.task-links) .card h3{margin:var(--space-3) 0 var(--space-1);font-size:.9375rem}.tasks-page:has(.task-links) .card p{margin:var(--space-2) 0}.tasks-page:has(.task-links) .task-progress-row{padding:var(--space-2) 0}.tasks-page:has(.task-links) .task-files li{padding:var(--space-1) 0}.tasks-page[aria-busy=true]>:not(.task-links){opacity:.55;pointer-events:none;transition:opacity .15s}.task-progress-table .task-file-lines li:not(:only-child){max-width:260px}.task-progress-table td:has(>.task-file-lines:not(.task-file-actions)){max-width:260px}.task-icon-button:hover:not(:disabled){display:inline-grid;flex:none;place-items:center;width:26px;height:26px;min-height:0;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);box-shadow:none;transform:none;cursor:pointer;text-decoration:none}.task-icon-button:hover:not(:disabled){background:var(--pink-tint, var(--surface-muted));color:var(--ink)}.notification-count:not(.none){background:#dc2626;color:#fff}.notice-read-all:hover:not(:disabled){display:inline-flex;align-items:center;gap:.3rem;min-height:32px;padding:0 .6rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--white);color:var(--accent-dark);font-size:.75rem;font-weight:600;box-shadow:none;transform:none}.notice-actions button:hover:not(:disabled){display:inline-flex;align-items:center;gap:.25rem;min-height:28px;padding:0;border:0;background:transparent;color:var(--accent-dark);font-size:.75rem;font-weight:600;text-decoration:none;box-shadow:none;transform:none}.notice-actions button:hover:not(:disabled){padding:0 .5rem;border:1px solid var(--line-strong);border-radius:8px;background:var(--white);color:var(--muted)}.notice-actions button:hover:not(:disabled){background:var(--pink-tint);color:var(--ink)}.admin-content>.container:has(>.page-nav:first-child){padding-top:var(--space-2)}@media(max-width:620px){.workspace-header-inner:has(.topbar-class) .topbar-logo{margin-right:0}}.data-table .equipment-table :is(th,td){padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;overflow:visible;text-overflow:clip;background:var(--white);font-weight:400}.data-table .equipment-table thead :is(.eq-stt,.eq-code,.eq-name){z-index:5;background:var(--surface-muted)}@media(max-width:640px){.data-table .equipment-table :is(th,td):is(.eq-stt,.eq-code){position:static;width:auto;min-width:0;padding-inline:6px}.data-table .equipment-table :is(th,td).eq-name{left:0;width:40vw;min-width:0;max-width:40vw;white-space:normal;overflow-wrap:anywhere}}@media(max-width:640px){.equipment-title .filter-bar>:is(.filter-search,.filter-combobox){flex:1 1 100%}}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/QdVPSTAyLFyeg_IDWvOJmVES_Hw4BXoKZA.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/QdVPSTAyLFyeg_IDWvOJmVES_Hw5BXoKZA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/QdVPSTAyLFyeg_IDWvOJmVES_Hw3BXo.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/QdVMSTAyLFyeg_IDWvOJmVES_HTEJm86Rb0bcw.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/QdVMSTAyLFyeg_IDWvOJmVES_HTEJm87Rb0bcw.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/QdVMSTAyLFyeg_IDWvOJmVES_HTEJm81Rb0.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/QdVMSTAyLFyeg_IDWvOJmVES_HToIW86Rb0bcw.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/QdVMSTAyLFyeg_IDWvOJmVES_HToIW87Rb0bcw.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/QdVMSTAyLFyeg_IDWvOJmVES_HToIW81Rb0.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/QdVMSTAyLFyeg_IDWvOJmVES_HSMIG86Rb0bcw.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/QdVMSTAyLFyeg_IDWvOJmVES_HSMIG87Rb0bcw.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/QdVMSTAyLFyeg_IDWvOJmVES_HSMIG81Rb0.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #1f2f3d;--muted: #5d7080;--line: #dfeaf1;--bg: #f7fbfd;--white: #fff;--accent: #0a6fa8;--accent-dark: #07557f;--accent-soft: #dcf0fa;--pink-soft: #dcf0fa;--pink-tint: #f0f8fc;--line-strong: #c3d3de;--surface-hover: #f5fafd;--surface-muted: #eef3f7;--green-ink: #287e4b;--sun-ink: #a65208;--sky-ink: #177a92;--success: #258551;--success-solid: #258551;--danger-dark: #941b31;--shadow-rgb: 31 47 61;--shadow-accent-rgb: 10 111 168;--backdrop: rgb(31 47 61 / 38%);--green-soft: #e3f6ea;--sun-soft: #fff0df;--sky-soft: #dcf2f9;--rose-ink: #b8325c;--rose-soft: #fde8ee;--radius: 18px;--workspace-max: 1320px;--workspace-padding-x: 32px;--sidebar-width: 248px;--folder-tree-width: 280px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;font-family:Be Vietnam Pro,system-ui,sans-serif;letter-spacing:0}.app-shell{min-height:100dvh;font-family:inherit}b,strong{font-weight:600}button{border-radius:14px;background:var(--accent);box-shadow:none}button:hover:not(:disabled){background:var(--accent-dark);box-shadow:none;transform:translateY(-1px)}button.secondary{background:var(--pink-tint);color:var(--accent);border:1px solid var(--line)}button.secondary:hover:not(:disabled){background:var(--pink-soft);color:var(--accent-dark)}input,select{border:1px solid var(--line-strong);border-radius:14px;background:var(--white)}input:hover,select:hover{background:var(--surface-hover)}input::placeholder{color:var(--muted);opacity:1}.card{border:1px solid var(--line);box-shadow:0 6px 22px rgb(var(--shadow-rgb) / 4%)}.workspace-header h1{letter-spacing:-.035em;line-height:1.25}.workspace-header h1{font-size:1.5rem;font-weight:600}.workspace-page-title h1,.dashboard-actions h2{font-weight:500}.sidebar{border-right:1px solid var(--line)}.brand{color:var(--accent);letter-spacing:-.025em;padding-bottom:2rem}.brand b{color:var(--green-ink)}.brand small{letter-spacing:.04em}.nav-item{color:var(--muted);border-radius:14px;min-height:48px;font-weight:400}.nav-icon{width:21px;height:21px;border-radius:0}.nav-item:hover:not(:disabled),.nav-item.active:hover:not(:disabled){background:var(--pink-tint);color:var(--accent-dark);transform:none}.nav-item.active{background:var(--pink-soft);color:var(--accent);box-shadow:none;font-weight:600}.tone-pink{--tone: var(--rose-ink);--tone-soft: var(--rose-soft)}.tone-green{--tone: var(--green-ink);--tone-soft: var(--green-soft)}.tone-sun{--tone: var(--sun-ink);--tone-soft: var(--sun-soft)}.tone-sky{--tone: var(--sky-ink);--tone-soft: var(--sky-soft)}.tone-danger{--tone: var(--danger);--tone-soft: color-mix(in srgb, var(--danger) 12%, var(--white))}.avatar{background:var(--green-soft);color:var(--green-ink)}.icon-button{background:var(--white);color:var(--ink);border:1px solid var(--line);box-shadow:none}.icon-button:hover:not(:disabled){background:var(--pink-soft);color:var(--accent)}.app-toast{position:fixed;top:calc(20px + env(safe-area-inset-top));right:var(--workspace-padding-x);z-index:100;display:flex;align-items:center;gap:var(--space-2);width:min(360px,calc(100vw - (2 * var(--workspace-padding-x))));margin:0;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);font-size:.875rem;font-weight:600;line-height:1.4;box-shadow:0 12px 32px rgb(var(--shadow-rgb) / 18%)}.app-toast.success{border-color:var(--success-solid);background:var(--success-solid);color:#fff;box-shadow:0 12px 32px color-mix(in srgb,var(--success-solid) 32%,transparent)}.app-toast.error{border-color:color-mix(in srgb,var(--danger) 35%,var(--line));color:var(--danger)}.app-toast .app-icon{flex:none}.welcome{align-items:center;min-height:148px;padding:1rem 1.25rem;border-radius:var(--radius);background:var(--pink-soft);color:var(--ink)}.welcome:after{content:none}.welcome{box-shadow:0 8px 24px rgb(var(--shadow-accent-rgb) / 6%)}.welcome>div:first-child{position:relative;z-index:1}.welcome p{color:var(--accent);font-size:.72rem;letter-spacing:0;text-transform:none}.welcome h2{margin-bottom:.5rem;font-size:1.4rem;line-height:1.15;letter-spacing:-.025em;font-weight:600}.welcome h2 strong{color:var(--accent);font-weight:600}.welcome button{background:var(--accent);color:var(--white)}.welcome button:hover:not(:disabled){background:var(--accent-dark);color:var(--white)}.welcome button .app-icon{margin-left:.6rem;width:20px}.welcome-art{position:relative;flex:0 0 104px;height:88px;width:104px}.welcome-art>.app-icon{position:absolute;width:36px;height:36px;padding:8px;border-radius:10px}.welcome-art>.app-icon:first-child{top:0;right:6px;background:var(--sun-soft);color:var(--sun-ink);transform:rotate(10deg)}.welcome-art>.app-icon:nth-child(2){top:42px;left:0;background:var(--sky-soft);color:var(--sky-ink);transform:rotate(-10deg)}.book{right:6px;bottom:0;width:44px;height:44px;border-radius:12px;background:var(--green-soft);color:var(--green-ink);transform:rotate(6deg)}.book .app-icon{width:26px;height:26px}.quick-icon{width:40px;height:40px;flex-basis:40px;padding:8px;border-radius:14px;background:var(--tone-soft, var(--pink-soft));color:var(--tone, var(--accent))}.more{background:transparent;color:var(--accent);box-shadow:none}.text-button:hover:not(:disabled),.more:hover:not(:disabled){background:var(--pink-soft);color:var(--accent-dark);transform:none}.status{border-radius:999px}@media(max-width:720px){.welcome{padding:1.25rem;min-height:0}.welcome-art{display:none}}@media(max-width:620px){.sidebar{position:fixed;bottom:0;left:0;right:0;padding-bottom:max(.4rem,env(safe-area-inset-bottom));background:var(--white);box-shadow:0 -4px 20px rgb(var(--shadow-rgb) / 5%)}.workspace{padding-bottom:80px}.nav-item{min-width:44px}.workspace-header h1{font-size:1.25rem}}.form-modal .form-actions{justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--line)}@media(max-width:620px){.form-modal .form-actions>button{flex:1}}body{font-size:.875rem}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.workspace{min-width:0}.workspace-container{width:100%;max-width:var(--workspace-max);margin-inline:auto;padding-left:var(--workspace-padding-x);padding-right:var(--workspace-padding-x)}.workspace-header{min-height:72px;padding:0;border-bottom:1px solid var(--line);background:var(--white)}.workspace-header-inner{display:flex;min-width:0;min-height:72px;align-items:center;justify-content:space-between;gap:var(--space-4)}.workspace-page-title{padding-top:var(--space-5);padding-bottom:0}.workspace-page-title h1{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:1.5rem;line-height:1.25}.workspace-header h1{overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.topbar-search-clear:hover:not(:disabled),.topbar-search-clear:active:not(:disabled){position:absolute;top:50%;left:4px;z-index:2;display:grid;place-items:center;width:34px;min-height:34px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);box-shadow:none;transform:translateY(-50%)}.topbar-search-clear:hover:not(:disabled){background:var(--pink-tint);color:var(--accent);transform:translateY(-50%)}.topbar-search-results :is(a,.topbar-search-result)>span:last-child{min-width:0}.topbar-search-results .topbar-search-all:hover:not(:disabled){background:var(--pink-tint);color:var(--accent-dark);transform:none}.topbar-meta{display:flex;flex-shrink:0;align-items:center;gap:var(--space-3);margin-left:auto}.topbar-greeting{position:relative}.topbar-greeting-trigger{display:grid;margin:0;padding:0;border:0;background:none;box-shadow:none;text-align:right;line-height:1.35;border-radius:8px;min-height:0;transform:none}.topbar-greeting-trigger:hover:not(:disabled){background:none;transform:none}.topbar-greeting-trigger[aria-expanded=true]{outline:2px solid var(--accent);outline-offset:2px}.topbar-greeting-label{display:inline-flex;align-items:center;justify-content:flex-end;gap:.4rem}.vietnam-flag{display:block;width:21px;height:14px;flex:0 0 auto;border-radius:2px;box-shadow:0 0 0 1px #0000001a}.topbar-greeting-trigger b{font-size:.8125rem;color:var(--ink)}.topbar-greeting-trigger time{display:block;color:var(--muted);font-size:.75rem;font-variant-numeric:tabular-nums}.topbar-calendar{position:absolute;top:calc(100% + .5rem);right:0;z-index:20;width:min(280px,calc(100vw - 2rem));padding:.85rem;border:1px solid var(--line);border-radius:14px;background:var(--white);box-shadow:0 12px 28px rgb(var(--shadow-rgb) / 12%);animation:filter-pop-in .16s ease-out}@media(prefers-reduced-motion:reduce){.topbar-calendar{animation:none}}.calendar-grid span.muted{color:var(--muted);opacity:.55}.calendar-grid .today{box-shadow:inset 0 0 0 1px var(--accent);font-weight:650}.calendar-grid .endpoint{background:var(--accent);color:var(--white);font-weight:650}.calendar-grid .endpoint:hover:not(:disabled){background:var(--accent-dark);color:var(--white)}button,input,select{min-height:40px;border-radius:10px;font-size:.875rem}button{padding:.5rem .875rem}.icon-button{width:40px;padding:.5rem}.icon-button .app-icon{width:20px;height:20px}.avatar{width:28px;height:28px;flex-shrink:0;font-size:.625rem}.sidebar{position:sticky;top:0;height:100dvh;padding:1.25rem .75rem}.brand{padding:0 .5rem 1.5rem;font-size:1.125rem}.brand{position:relative;gap:var(--space-3)}.brand:after{content:"";position:absolute;right:.5rem;bottom:.75rem;left:.5rem;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--green-ink),var(--accent));opacity:.4}.brand>span:last-child{font-size:1rem;line-height:1.15;white-space:nowrap}.brand-logo{flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--white);object-fit:cover;box-shadow:0 2px 8px rgb(var(--shadow-accent-rgb) / 16%)}.nav-item{min-height:42px;padding:.5rem .625rem;border-radius:10px;font-size:.8125rem;gap:.625rem}.nav-icon{width:21px;height:21px}.sidebar .sidebar-primary{display:block;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.nav-group{display:grid;gap:.22rem}.sidebar-footer{flex:none;margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--line)}.sidebar-footer nav{display:block}.sidebar-footer .sidebar-account{border-top:0}.sidebar-account{position:relative;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--line)}.account-trigger{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:10px;background:transparent;color:var(--ink);text-align:left;font-weight:600}.account-trigger:hover:not(:disabled),.account-trigger[aria-expanded=true]{background:var(--pink-soft);color:var(--accent-dark);transform:none}.account-trigger>.app-icon{color:var(--muted)}.account-text,.account-menu-head{display:grid;min-width:0}.account-text{flex:1}.account-text b,.account-text small,.account-menu-head b,.account-menu-head small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-text b,.account-menu-head b{font-size:.8125rem}.account-text small,.account-menu-head small{color:var(--muted);font-size:.6875rem;font-weight:500}.account-menu{position:absolute;bottom:calc(100% + var(--space-2));left:0;z-index:30;display:grid;gap:2px;width:max(100%,220px);padding:var(--space-1);border:1px solid var(--line);border-radius:14px;background:var(--white);box-shadow:0 12px 32px rgb(var(--shadow-rgb) / 14%)}.account-menu-head{display:none;padding:var(--space-2)}.account-menu [role=menuitem]{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:38px;padding:var(--space-2);border-radius:10px;background:transparent;color:var(--ink);font-weight:500;text-align:left}.account-menu [role=menuitem] .app-icon{color:var(--muted)}.account-menu [role=menuitem]:hover:not(:disabled),.account-menu [role=menuitem]:focus-visible{background:var(--pink-soft);color:var(--accent-dark);transform:none}.account-menu .account-menu-danger,.account-menu .account-menu-danger .app-icon{color:var(--danger)}.account-menu .account-menu-danger:hover:not(:disabled),.account-menu .account-menu-danger:focus-visible{background:color-mix(in srgb,var(--danger) 10%,var(--white));color:var(--danger)}.account-menu-separator{height:1px;margin:2px var(--space-1);background:var(--line)}.page-content,.admin-content>.container{width:100%;max-width:var(--workspace-max);margin-inline:auto;padding-top:var(--space-5);padding-right:var(--workspace-padding-x);padding-bottom:32px;padding-left:var(--workspace-padding-x)}.card{padding:var(--space-5)}.quick-icon{width:34px;height:34px;padding:7px;border-radius:10px}.quick-icon{flex-basis:34px}.profile-card h1,.profile-card h2{margin:0;font-size:1.125rem;line-height:1.4}.data-table{overflow:auto;padding:0}.data-table table{min-width:720px;table-layout:fixed}.data-table th,.data-table td{white-space:nowrap}:is(.data-table,.metrics-table,.task-progress-table,.incident-table-wrap,.daily-day-table) table{width:100%;border-collapse:collapse;font-size:.8125rem}:is(.data-table,.metrics-table,.task-progress-table,.incident-table-wrap,.daily-day-table) :is(th,td){padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}:is(.data-table,.metrics-table,.task-progress-table,.incident-table-wrap,.daily-day-table) th{background:var(--surface-muted);border-bottom-color:var(--line-strong);color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:.03em;white-space:nowrap}:is(.data-table,.metrics-table,.task-progress-table,.incident-table-wrap,.daily-day-table) tbody tr:last-child td{border-bottom:0}:is(.data-table,.metrics-table,.task-progress-table,.incident-table-wrap,.daily-day-table) tbody tr:hover>td{background:var(--surface-hover)}.data-table .col-id{width:64px}.data-table .col-name{width:auto;min-width:200px;white-space:normal;overflow:hidden;text-overflow:ellipsis}.data-table .col-date{width:130px}.data-table .col-actions{width:108px;text-align:right}.data-table-action-group{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--space-1)}.data-table-action-group .icon-button{width:34px;min-height:34px;padding:0;border-radius:8px}input,select{margin-top:0}label>input,label>select{margin-top:var(--space-2)}.form-actions{gap:var(--space-2)}.form-modal .form-actions{padding-top:var(--space-4)}.profile-page{gap:var(--space-5)}.profile-card{gap:var(--space-4)}.profile-card p{margin:0}.dashboard-page{gap:var(--space-5)}.welcome p{margin-bottom:var(--space-1)}.welcome h2{margin-bottom:var(--space-2)}.dashboard-actions{display:grid;gap:var(--space-3)}.dashboard-actions>div{gap:var(--space-4)}.dashboard-actions button{min-height:0;gap:var(--space-3);padding:var(--space-4)}@media(max-width:1024px){:root{--workspace-padding-x: 24px}.app-shell{grid-template-columns:72px minmax(0,1fr)}.brand{justify-content:center;padding-inline:0}.brand-logo{flex-basis:40px;width:40px;height:40px}.brand>span:last-child,.nav-item>span,.account-text,.account-trigger>.app-icon{display:none}.nav-item,.account-trigger{justify-content:center;padding-inline:0}.account-menu{left:calc(100% + var(--space-2));bottom:0;width:220px}.account-menu-head{display:grid}}@media(max-width:768px){.workspace-header,.workspace-header-inner{min-height:64px}.workspace-page-title h1{font-size:1.25rem}.page-content,.admin-content>.container{padding-top:var(--space-4);padding-bottom:var(--space-6)}.welcome h2{font-size:1.5rem}.welcome-art{display:none}.profile-page,.dashboard-page,.dashboard-actions>div{gap:var(--space-4)}button,input,select,.nav-item,.more{min-height:44px}.form-actions{flex-wrap:wrap}}@media(max-width:620px){:root{--workspace-padding-x: 16px}input,select,textarea{font-size:1rem}.app-shell{display:block}.sidebar{padding:.375rem .5rem max(.375rem,env(safe-area-inset-bottom))}.workspace{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.workspace-header-inner{gap:.5rem;flex-wrap:wrap}.topbar-greeting{display:none}.sidebar{display:block;height:auto}.sidebar-primary{min-width:0;overflow:visible}.nav-group{display:contents}.sidebar-footer{display:none}.account-trigger{padding-inline:var(--space-2)}.account-menu{left:auto;right:0;bottom:calc(100% + var(--space-3))}.welcome{padding:1.125rem}.welcome h2{font-size:1.375rem}.welcome p{font-size:.75rem}.card{padding:var(--space-4)}}.metrics-table .metric-tree-toggle:hover:not(:disabled){background:var(--accent-soft);color:var(--accent);box-shadow:none;transform:none}.metric-edit-reset:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 8%,var(--white));color:var(--danger);box-shadow:none;transform:none}.metric-edit-reset.is-selected:hover:not(:disabled){background:var(--sun-soft);color:var(--sun-ink)}.welcome{isolation:isolate;overflow:hidden;min-height:190px;background:radial-gradient(circle at 82% 18%,rgb(119 205 235 / 25%),transparent 28%),radial-gradient(circle at 62% 100%,rgb(255 186 214 / 24%),transparent 42%),linear-gradient(118deg,#75415f,color-mix(in srgb,var(--accent) 82%,white) 48%,#64809a);color:var(--white);box-shadow:0 18px 38px #17191c1a}.welcome:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.18;background-image:radial-gradient(circle at 12% 22%,rgb(255 255 255 / 70%) 0 1px,transparent 1.5px),radial-gradient(circle at 38% 72%,rgb(255 255 255 / 45%) 0 1px,transparent 1.5px),radial-gradient(circle at 74% 38%,rgb(255 255 255 / 55%) 0 1px,transparent 1.5px),radial-gradient(circle at 92% 76%,rgb(255 255 255 / 45%) 0 1px,transparent 1.5px);background-size:170px 130px,210px 160px,240px 190px,190px 150px;pointer-events:none}.welcome:after{content:"";position:absolute;z-index:-1;width:48%;height:180%;right:-10%;bottom:-92%;border-radius:50%;background:linear-gradient(145deg,#9ae1f42e,#ffbad63d);filter:blur(2px);transform:rotate(-18deg)}.welcome>div:first-child{z-index:1}.welcome p{color:#ffd1e4}.welcome h2{color:var(--white)}.welcome button{background:var(--white);color:#202044}.welcome button:hover:not(:disabled){background:#e9e8ff;color:#202044}.welcome-art{z-index:1}@media(max-width:720px){.welcome{min-height:170px}.welcome:after{right:-28%}}@media(max-width:480px){.workspace-header-inner{padding-block:var(--space-3)}.topbar-meta{margin-left:auto}.page-content,.admin-content>.container{padding-top:var(--space-4);padding-right:var(--workspace-padding-x);padding-bottom:calc(var(--space-6) + 48px);padding-left:var(--workspace-padding-x)}.welcome{align-items:flex-start;min-height:0;padding:var(--space-5)}.welcome h2{font-size:1.5rem}.welcome button{width:100%;justify-content:center}.dashboard-actions>div{grid-template-columns:1fr}}@media(max-width:620px){html,body,#root{max-width:100%;overflow-x:hidden}.app-shell,.workspace,.admin-content,.page-content,.workspace-page-title{width:100%;min-width:0}.workspace-page-title h1{min-width:0;overflow-wrap:anywhere}.welcome>div:first-child{min-width:0;max-width:100%}.welcome h2{max-width:100%;overflow-wrap:anywhere}.dashboard-page{min-width:0}}@media(max-width:1024px){.app-shell{grid-template-columns:72px minmax(0,1fr)}.sidebar{min-width:0;padding-inline:.5rem;overflow:visible}.sidebar-primary{overflow-y:auto;scrollbar-width:none}.sidebar-primary::-webkit-scrollbar{display:none}.nav-item{min-width:44px;min-height:44px}.account-menu{max-width:min(220px,calc(100vw - 84px))}}.nav-item.nav-more,.nav-short{display:none}@media(max-width:620px){.app-shell{display:block}.sidebar{position:fixed;inset:auto 0 0;z-index:40;display:block;height:auto;padding:.25rem .25rem max(.25rem,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--white);box-shadow:0 -4px 16px rgb(var(--shadow-rgb) / 6%);-webkit-backdrop-filter:none;backdrop-filter:none}.sidebar .sidebar-primary{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:0;overflow:visible}.nav-group{display:contents}.sidebar .nav-item.nav-secondary,.sidebar .nav-label,.sidebar .sidebar-account{display:none}.sidebar .nav-item,.sidebar .nav-more{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:auto;min-width:0;min-height:56px;padding:.25rem 0;border-radius:12px;background:transparent;color:var(--muted);font-size:.6875rem;font-weight:500;line-height:1.2}.sidebar .nav-item>.nav-short{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar .nav-icon{box-sizing:content-box;width:22px;height:22px;padding:3px 14px;border-radius:999px}.sidebar .nav-item:hover:not(:disabled),.sidebar .nav-item.active:hover:not(:disabled){background:transparent;color:var(--ink)}.sidebar .nav-item.active,.sidebar .nav-item.active:hover:not(:disabled){background:transparent;color:var(--accent);font-weight:600}.sidebar .nav-item.active .nav-icon{background:var(--pink-soft)}.workspace{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.more-sheet{width:100%;max-width:none;max-height:80dvh;margin:auto 0 0;padding:0;overflow-y:auto;border:0;border-radius:18px 18px 0 0;background:var(--white);color:var(--ink);box-shadow:0 -12px 40px rgb(var(--shadow-rgb) / 16%)}.more-sheet-body{padding:var(--space-3) var(--space-3) max(var(--space-3),env(safe-area-inset-bottom))}.more-sheet::backdrop{background:var(--backdrop)}.more-sheet-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-3);border-bottom:1px solid var(--line)}.more-sheet-head>div{display:grid;flex:1;min-width:0}.more-sheet-head b{overflow:hidden;font-size:.875rem;text-overflow:ellipsis;white-space:nowrap}.more-sheet-head small{color:var(--muted);font-size:.75rem}.more-sheet-head .avatar{width:36px;height:36px;font-size:.75rem}.more-sheet-head .icon-button{background:transparent;color:var(--muted)}.more-sheet ul{display:grid;gap:2px;margin:0;padding:var(--space-2) 0;list-style:none}.more-sheet ul+ul{border-top:1px solid var(--line)}.more-sheet li button{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:0 var(--space-3);border-radius:12px;background:transparent;color:var(--ink);font-weight:500;text-align:left}.more-sheet li button .app-icon{color:var(--muted)}.more-sheet li button:hover:not(:disabled),.more-sheet li button[aria-current=page]{background:var(--pink-soft);color:var(--accent-dark);transform:none}.more-sheet li button[aria-current=page] .app-icon{color:var(--accent)}.more-sheet li .more-sheet-danger,.more-sheet li .more-sheet-danger .app-icon{color:var(--danger)}}@media(max-width:620px){.workspace-header,.workspace-page-title,.page-content{max-width:100%}.workspace-header{min-width:0}.topbar-meta{min-width:0;max-width:100%}.dashboard-page{width:100%;max-width:100%;overflow:clip}.welcome{display:block;width:100%;max-width:100%;min-width:0;padding:var(--space-4)}.welcome>div:first-child{display:block;min-width:0;max-width:100%}.welcome h2,.welcome p{overflow-wrap:anywhere}}.topbar-logo{display:none}@media(max-width:620px){.topbar-logo{display:block;order:0;flex:0 0 36px;width:36px;height:36px;margin:0 auto 0 0;border:1px solid var(--line);border-radius:50%;background:var(--white);object-fit:cover;box-shadow:0 2px 8px rgb(var(--shadow-accent-rgb) / 14%)}.topbar-meta{order:1}}.list-row:has(.row-menu-list){position:relative;z-index:2}.list-row-lead>.avatar{height:37px;font-size:.75rem}.list-row-title .status{margin-left:0}.list-row.has-select{grid-template-columns:20px 37px minmax(0,1fr) auto;grid-template-areas:"select lead title actions" "select lead tags actions"}@keyframes bulk-bar-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.list-row-actions>button:not(.icon-button){min-height:36px;padding:0 var(--space-3);font-size:.75rem}.list-row-actions .icon-button,.row-menu>.icon-button{width:36px;min-height:36px;padding:0;background:transparent;border-color:transparent;color:var(--muted)}.list-row-actions .icon-button:hover:not(:disabled),.row-menu>.icon-button:hover:not(:disabled),.row-menu>.icon-button[aria-expanded=true]{background:var(--pink-soft);color:var(--accent)}@media(max-width:768px){.list-row-actions .icon-button,.list-row-actions>button,.row-menu>.icon-button{min-height:44px}.list-row-actions .icon-button,.row-menu>.icon-button{width:44px}}@media(max-width:620px){.list-row.has-select{grid-template-areas:"select lead title actions" "select lead tags tags"}}.login{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:100dvh;background:var(--white)}.login-brand{position:relative;display:grid;align-content:center;justify-items:start;gap:var(--space-2);overflow:hidden;padding:clamp(2rem,7vw,6rem);background:var(--pink-tint);color:var(--ink)}.login-brand:before{content:"";position:absolute;inset:0;background:url(/brand/decor/sticker-songbird.svg) right 10% top 12% / 132px auto no-repeat,url(/brand/decor/sticker-daisies.svg) right 6% bottom -12px / 150px auto no-repeat,url(/brand/decor/sticker-flower.svg) left 5% bottom -24px / 104px auto no-repeat;opacity:.45;pointer-events:none}.login-brand>*{position:relative;margin:0}.login-logo{width:80px;height:80px;margin-bottom:var(--space-4);border:3px solid var(--white);border-radius:50%;background:var(--white);object-fit:cover;box-shadow:0 10px 24px rgb(var(--shadow-accent-rgb) / 14%)}.login-kicker,.login-heading p{margin:0;color:var(--accent);font-size:.8125rem;font-weight:700}.login-brand h1{font-size:clamp(2rem,3.2vw,2.75rem);letter-spacing:-.02em;line-height:1.25}.login-intro{max-width:36ch;color:var(--muted);font-size:1rem;line-height:1.6}.login-card{display:grid;gap:var(--space-4);align-self:center;justify-self:center;width:min(100% - 48px,400px);padding-block:var(--space-6)}.login-heading{display:grid;gap:var(--space-1);margin-bottom:var(--space-2)}.login-heading h1,.login-heading h2{margin:0;font-size:1.625rem;letter-spacing:-.01em;line-height:1.3}.login-heading span{color:var(--muted);font-size:.875rem;line-height:1.5}.login-field{display:grid;gap:6px;color:var(--ink);font-size:.8125rem;font-weight:600}.login-field input{width:100%;min-height:44px;margin:0;padding:.625rem .875rem;border:1px solid var(--line-strong);border-radius:10px;background:var(--white);color:var(--ink);font-size:.9375rem;font-weight:400;line-height:1.4;box-shadow:none;transition:border-color .15s ease,box-shadow .15s ease}.login-field input:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line-strong));background:var(--white)}.login-field input:focus,.login-field input:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--pink-soft)}.login-field input:-webkit-autofill{-webkit-text-fill-color:var(--ink);caret-color:var(--ink);box-shadow:0 0 0 1000px var(--white) inset}.login-field input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--white) inset,0 0 0 3px var(--pink-soft)}.password-input{position:relative;display:flex;align-items:center}.password-input input{padding-right:48px}label:not(.login-field)>.password-input{margin-top:var(--space-2)}.password-toggle{position:absolute;top:50%;right:4px;display:grid;place-items:center;width:40px;height:40px;min-height:40px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);box-shadow:none;transform:translateY(-50%)}.password-toggle:hover:not(:disabled),.password-toggle:active:not(:disabled){background:transparent;color:var(--ink);box-shadow:none;transform:translateY(-50%)}.login-card>.form-link{font-size:.8125rem;font-weight:600}.login-card>.form-link{justify-self:center}.login-submit{width:100%;min-height:46px;margin-top:var(--space-1);font-size:.9375rem;font-weight:600;transition:background-color .15s ease,transform .1s ease}.login-submit:hover:not(:disabled){background:var(--accent-dark)}.login-submit:active:not(:disabled){transform:translateY(0) scale(.98)}.login-submit:disabled{opacity:.75;cursor:progress}@media(max-width:1023px){.login{grid-template-columns:minmax(0,400px);justify-content:center;align-content:center;gap:var(--space-5);padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:var(--pink-tint)}.login-brand{justify-items:center;gap:0;padding:0;overflow:visible;background:none;text-align:center}.login-brand:before,.login-intro{display:none}.login-brand h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.login-logo{width:56px;height:56px;margin-bottom:var(--space-2)}.login-kicker{font-size:.9375rem}.login-card{width:100%;padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius);background:var(--white);box-shadow:0 12px 32px rgb(var(--shadow-rgb) / 8%)}}@media(max-width:480px){.login{align-content:start;padding:max(32px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.login-card{padding:var(--space-5)}}@media(prefers-reduced-motion:reduce){.login-field input,.login-submit{transition:none}.login-submit:active:not(:disabled){transform:none}}.topics-parent:hover:not(:disabled),.topics-parent:active:not(:disabled){transform:none;box-shadow:none}.topics-parent:hover:not(:disabled){background:var(--pink-tint);color:var(--ink)}.topics-parent.active:hover:not(:disabled){background:var(--pink-soft);color:var(--accent-dark);font-weight:600}.topics-toolbar .topics-status button:hover:not(:disabled){background:var(--pink-tint);color:var(--ink);transform:none}.row-menu>.icon-button.row-menu-text-trigger{display:inline-flex;width:auto;min-width:0;align-items:center;gap:var(--space-1);padding-inline:var(--space-3);white-space:nowrap}.folder-tree-trigger:hover:not(:disabled){background:var(--accent);color:var(--white);box-shadow:none;transform:none}.folder-tree-trigger:active:not(:disabled){background:var(--accent-dark);color:var(--white);transform:scale(.98)}.folder-tree-toggle:hover:not(:disabled),.folder-tree-node:hover:not(:disabled),.folder-tree-toggle:active:not(:disabled),.folder-tree-node:active:not(:disabled){box-shadow:none;transform:none}.folder-tree-toggle:hover:not(:disabled){background:var(--pink-tint);color:var(--ink)}.folder-tree-up:hover:not(:disabled),.folder-tree-up:active:not(:disabled){box-shadow:none;transform:none}.folder-tree-up:hover:not(:disabled){background:var(--pink-tint);color:var(--ink)}.folder-tree-node:hover:not(:disabled){background:var(--pink-tint);color:var(--ink)}.folder-tree-node.active:hover:not(:disabled){background:var(--pink-soft);color:var(--accent-dark);font-weight:600}.folder-breadcrumb .folder-breadcrumb-menu button:hover:not(:disabled){display:flex;align-items:center;gap:var(--space-2);width:100%;max-width:none;color:var(--ink);text-align:left;text-decoration:none}.folder-breadcrumb .folder-breadcrumb-menu button:hover:not(:disabled){background:var(--pink-tint)}.folder-breadcrumb button:hover:not(:disabled){min-height:32px;padding:0 var(--space-1);border-radius:8px;background:transparent;color:var(--muted);font-size:.8125rem;font-weight:500;box-shadow:none;transform:none}.folder-breadcrumb button:hover:not(:disabled){color:var(--accent);text-decoration:underline}.filter-icon-trigger>span:not(.filter-date-label){position:absolute;top:-7px;right:-7px}.filter-date-fields .date-picker-trigger:hover:not(:disabled){display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:40px;margin:0;padding:0 .75rem;border:1px solid var(--line-strong);border-radius:10px;background:var(--white);color:var(--ink);font-size:.875rem;font-weight:500;text-align:left;transform:none}.view-toggle.scope-toggle button:hover:not(:disabled){width:auto;padding-inline:var(--space-3);white-space:nowrap}.folder-tile:hover:not(:disabled),.folder-tile:active:not(:disabled){box-shadow:none;transform:none}.folder-tile:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--pink-tint);color:var(--ink)}.doc-tile:has(.row-menu-list){z-index:2}.folder-section-toggle:hover:not(:disabled){display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;min-height:36px;padding:0 var(--space-3);border:1px solid var(--accent);border-radius:999px;background:var(--pink-soft);color:var(--accent-dark);font-size:.875rem;font-weight:700;box-shadow:none;transform:none}.folder-section-toggle:hover:not(:disabled){background:var(--accent);color:var(--white)}.folder-tile-item:has(.doc-tile-select) .folder-tile{padding-left:calc(var(--space-2) + 44px)}.doc-tile:hover :is(.doc-tile-select,.doc-tile-menu),.doc-tile:focus-within :is(.doc-tile-select,.doc-tile-menu),.doc-tile:has(.row-menu-list) .doc-tile-menu{opacity:1}@media(max-width:1199px){.folder-tree-backdrop:hover:not(:disabled){background:var(--backdrop);transform:none}}@media(prefers-reduced-motion:reduce){.page-back-link,.page-back-link .app-icon{transition:none}}.welcome{min-height:0;padding:.75rem 1.25rem}.welcome p,.welcome h2{color:var(--white)}.welcome>div:first-child{min-width:0}.welcome h2{margin-bottom:.25rem}.welcome-art{height:56px}.welcome-art>.app-icon{width:30px;height:30px;padding:6px}.welcome-art>.app-icon:nth-child(2){top:26px}.task-tile-progress b:not(.task-overview-late){font-weight:500}.welcome-art{display:flex;flex:none;align-items:center;justify-content:flex-end;gap:var(--space-3);width:auto;height:auto}.welcome-art>.app-icon,.welcome-art>.book{position:static;inset:auto;display:grid;place-items:center;width:32px;height:32px;padding:7px;border-radius:10px;box-shadow:0 4px 10px #0000001a}.welcome-art>.app-icon:first-child{transform:rotate(-6deg)}.welcome-art>.app-icon:nth-child(2){transform:rotate(4deg)}.welcome-art>.book{padding:0;transform:rotate(-3deg)}.welcome-art>.book .app-icon{width:18px;height:18px;padding:0;background:none;box-shadow:none}@media(max-width:620px){.welcome-art{gap:var(--space-2)}.welcome-art>.app-icon,.welcome-art>.book{width:26px;height:26px;padding:5px;border-radius:8px}.welcome-art>.book .app-icon{width:15px;height:15px}}.notice-page{min-height:100dvh;padding:var(--space-4);background:var(--pink-tint)}.data-notice-card{max-width:760px;margin-inline:auto;padding:clamp(1rem,4vw,2rem);border-radius:var(--radius);background:var(--white);line-height:1.65;overflow-wrap:anywhere}.data-notice-card h1{margin:var(--space-3) 0 var(--space-1);font-size:1.5rem;line-height:1.3}.data-notice-card h2{margin:var(--space-6) 0 var(--space-2);font-size:1.125rem}.data-notice-card p,.data-notice-card ul{margin:0 0 var(--space-3)}.data-notice-card ul{padding-left:1.25rem}:root[data-theme=dark]{color-scheme:dark;--bg: #121a22;--white: #1a242e;--surface-hover: #212d38;--surface-muted: #26333f;--line: #2d3b48;--line-strong: #41515f;--ink: #eaf2f8;--muted: #9fb2c1;--accent: #5cc0ee;--accent-dark: #8dd3f5;--accent-soft: #16384c;--pink-soft: #16384c;--pink-tint: #152a38;--rose-ink: #f08fa9;--rose-soft: #3d2530;--green-soft: #1f3a2b;--sun-soft: #3e2c18;--sky-soft: #1c3440;--green-ink: #7fd3a0;--sun-ink: #f0b36a;--sky-ink: #7ccbe0;--success: #7fd3a0;--danger: #f0929e;--danger-dark: #f5abb4;--shadow-rgb: 3 8 12;--shadow-accent-rgb: 3 8 12;--backdrop: rgb(4 9 13 / 68%)}:root[data-theme=dark] .welcome{background:radial-gradient(circle at 82% 18%,rgb(124 207 232 / 22%),transparent 28%),radial-gradient(circle at 62% 100%,rgb(236 121 167 / 24%),transparent 42%),linear-gradient(118deg,#39243d,#81425f 48%,#29465d);color:var(--ink);box-shadow:0 18px 38px #08050c59}:root[data-theme=dark] .welcome h2{color:var(--ink)}:root[data-theme=dark] .welcome p{color:#a9dcf5}:root[data-theme=dark] .welcome button{background:var(--accent);color:#0d1a24}:root[data-theme=dark] .welcome button:hover:not(:disabled){background:var(--accent-dark);color:#0d1a24}.class-summary{display:grid;gap:var(--space-3)}.class-summary h2{margin:0;font-size:1rem;font-weight:500}.class-summary p{margin:0}.class-summary-list{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.class-summary-list li{display:flex;align-items:center;gap:var(--space-3)}.class-summary-list .app-icon{flex:none;width:34px;height:34px;padding:7px;border-radius:10px;background:var(--tone-soft);color:var(--tone)}.class-summary-list span{display:grid;min-width:0}.class-summary-list small{color:var(--muted);font-size:.8125rem}.section{display:grid;gap:var(--space-4);align-content:start}.section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.section-head h2{margin:0;font-size:1rem;font-weight:500}.section-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.section p{margin:0}.stack{display:grid;gap:var(--space-4);align-content:start}a.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.6rem 1.2rem;border-radius:8px;background:var(--accent);color:var(--white);font-weight:600;text-decoration:none}a.button.secondary{border:1px solid var(--line-strong);background:var(--white);color:var(--ink)}a.button:hover{text-decoration:none}.table-note{color:var(--muted);font-size:.8125rem}.row-error>td{background:color-mix(in srgb,var(--danger) 10%,var(--white))}.row-warn>td{background:var(--sun-soft)}.empty-note{margin:0;padding:var(--space-4) 0;color:var(--muted);text-align:center}.import-preview{max-height:40vh;border:1px solid var(--line);border-radius:12px}.import-preview table{min-width:560px}.list{display:grid;margin:0;padding:0;list-style:none}.list>li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.list>li:last-child{border-bottom:0}.list .link-text{min-width:0;overflow-wrap:anywhere}.list .link-text a{color:var(--accent-dark);text-decoration:underline}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.inline{display:flex;flex-wrap:wrap;gap:var(--space-2)}.inline>input,.inline>select{flex:1 1 10rem;min-width:0}.error{margin:0;color:var(--danger);font-size:.875rem}.ok{margin:0;color:var(--success);font-size:.875rem}button.danger,button.secondary.danger{color:var(--danger)}.grow{flex:1 1 10rem;min-width:0}.chips{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-2);scrollbar-width:thin}button.chip{display:inline-flex;flex:0 0 auto;align-items:center;gap:.4rem;min-height:38px;padding:0 var(--space-4);border:1px solid var(--line-strong);border-radius:999px;background:var(--white);color:var(--ink);font-size:.8125rem;font-weight:500}button.chip:hover:not(:disabled){background:var(--pink-tint);color:var(--accent-dark)}button.chip.active,button.chip.active:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:var(--white)}.badge{min-width:1.4rem;padding:0 .4rem;border-radius:999px;background:var(--surface-muted);color:var(--ink);font-size:.75rem;line-height:1.4rem;text-align:center}.badge.now{background:var(--sun-soft);color:var(--sun-ink)}button.chip.active .badge{background:#ffffff3d;color:var(--white)}.topic-bar .section-head h2{display:flex;align-items:center;gap:var(--space-2);font-size:.9375rem}.topic-bar .section-actions{align-items:center}.topic-bar .section-actions>button{min-height:32px;padding:0 var(--space-3);font-size:.8125rem}.topic-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--space-2)}button.topic-item{display:flex;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);font-size:.8125rem;font-weight:500;text-align:left}button.topic-item:hover:not(:disabled){background:var(--pink-tint);color:var(--accent-dark)}button.topic-item.active,button.topic-item.active:hover:not(:disabled){border-color:var(--accent);background:var(--pink-tint);color:var(--accent-dark);font-weight:700}.topic-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-select{max-width:320px}.month-select .filter-combobox{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem}.month-select .filter-combobox-label{color:var(--muted);font-size:.875rem;font-weight:600;white-space:nowrap}.month-select .filter-combobox-trigger,.month-select .filter-combobox-trigger:hover{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:40px;margin:0;padding:0 .75rem;border:1px solid var(--line-strong);border-radius:10px;background:var(--white);color:var(--ink);font-size:.875rem;font-weight:500;text-align:left;transform:none}.month-select .filter-combobox-popover{min-width:100%}.week-picker{display:grid;gap:var(--space-2);max-width:420px}.week-picker-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.week-rows{position:relative;display:grid;gap:2px;max-height:340px;overflow-y:auto;padding:2px;scrollbar-width:thin}button.week-row{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:40px;padding:0 var(--space-3);border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink);font-size:.8125rem;font-weight:400;text-align:left}button.week-row:hover:not(:disabled){background:var(--pink-tint);color:var(--accent-dark)}button.week-row.active,button.week-row.active:hover:not(:disabled){border-color:var(--accent);background:var(--pink-tint);color:var(--accent-dark);font-weight:600}.week-row-name{min-width:4.5rem;font-weight:600}.week-row-range{flex:1;color:var(--muted);font-variant-numeric:tabular-nums}button.week-row.active .week-row-range{color:inherit}.day-split{display:grid;gap:var(--space-4);align-items:start}@media(min-width:900px){.day-split{grid-template-columns:minmax(300px,420px) minmax(0,1fr)}.day-split>.section:last-child{max-height:calc(100vh - 160px);overflow:auto}}.day-picker{display:grid;gap:var(--space-2);max-width:420px}.day-picker-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.day-grid .weekday{padding:var(--space-1) 0;color:var(--muted);font-size:.75rem;text-align:center}button.day{position:relative;width:100%;min-height:44px;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);font-weight:500}button.day:hover:not(:disabled){background:var(--pink-tint);color:var(--accent-dark)}button.day.today-mark{box-shadow:inset 0 0 0 1px var(--accent)}button.day.active,button.day.active:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:var(--white)}button.day:disabled{background:var(--surface-muted);color:var(--muted);opacity:.6}.day .dot{position:absolute;top:2px;right:4px;color:var(--accent);font-size:.65rem;font-weight:700}.day.active .dot{color:var(--white)}.month-nav{display:flex;align-items:center;gap:var(--space-2)}.month-nav h2{display:flex;align-items:center;gap:.4rem;min-width:7.5rem;font-size:.9375rem;justify-content:center;white-space:nowrap}.attendance-head{gap:var(--space-2)}.attendance-head .table-note{margin:0 0 0 auto;font-size:.75rem}.attendance-head .icon-button{display:inline-grid;place-items:center;width:32px;min-width:32px;height:32px;min-height:32px;padding:0}.attendance-head .icon-button .app-icon{width:18px;height:18px}.attendance-head .button{min-height:32px;padding:0 .75rem;font-size:.8125rem}.today-stats{display:grid;gap:2px}.today-label{color:var(--muted);font-size:.625rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.today-stats .stat-tiles{gap:var(--space-1)}.today-stats .stat-tile{gap:.25rem;padding:.1rem .5rem;font-size:.75rem}.today-stats .stat-tile strong{font-size:.8125rem}.today-stats .stat-tile em{font-size:.6875rem}.today-stats .stat-tile .app-icon{width:14px;height:14px}.stat-tiles{display:flex;flex-wrap:wrap;gap:var(--space-2)}.stat-tile{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border:1px solid var(--pink-soft);border-radius:999px;background:var(--pink-tint);color:var(--muted);font-size:.8125rem;white-space:nowrap}.stat-tile strong{color:var(--ink);font-size:.9375rem}.stat-date{border-color:var(--sun-ink);background:var(--sun-soft);color:var(--sun-ink)}.stat-date strong{color:var(--sun-ink)}.stat-total{border-color:var(--accent);background:var(--pink-soft);color:var(--accent)}.stat-total strong{color:var(--accent)}.stat-present{border-color:var(--success);background:var(--green-soft);color:var(--success)}.stat-present strong,.stat-present em{color:var(--success)}.stat-absent{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--white));color:var(--danger)}.stat-absent strong{color:var(--danger)}.stat-tile em{color:var(--muted);font-size:.75rem;font-style:normal}label.check{display:flex;flex-direction:row;align-items:center;gap:var(--space-2)}label.check input{width:1.25rem;min-height:0;height:1.25rem;accent-color:var(--accent)}.grid-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;cursor:grab}.grid-scroll.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.grid-scroll.dragging :is(button,a){cursor:grabbing}table.attendance{width:auto;border-collapse:collapse;font-size:.8125rem}table.attendance th,table.attendance td{padding:.125rem .15rem;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}table.attendance thead th{background:var(--surface-muted);color:var(--muted);font-size:.75rem;font-weight:600}table.attendance th.future{opacity:.55}table.attendance thead th.sat,table.attendance td.sat{background:var(--sun-soft)}table.attendance thead th.sun,table.attendance td.sun{background:color-mix(in srgb,var(--danger) 12%,var(--white))}table.attendance thead th.sat{color:var(--sun-ink)}table.attendance thead th.sun{color:var(--danger)}.cell-button.off{border-style:dashed;border-color:transparent;background:transparent}table.attendance .stt{position:sticky;left:0;z-index:1;width:2.25rem;min-width:2.25rem;max-width:2.25rem;background:var(--white);color:var(--muted)}table.attendance thead .stt{background:var(--surface-muted)}table.attendance .tail{min-width:3.5rem;padding:.125rem .4rem;border-left:1px solid var(--line)}table.attendance thead th.tail{min-width:4.75rem;white-space:normal}table.attendance tfoot :is(th,td){background:var(--surface-muted);font-weight:600}table.attendance tfoot tr.first :is(th,td){border-top:2px solid var(--line-strong)}table.attendance tfoot :is(.stt,.sticky,.tail.total){background:var(--surface-muted)}table.attendance .tail.total{position:sticky;right:0;z-index:1;background:var(--white);font-weight:700;box-shadow:-1px 0 0 var(--line)}table.attendance thead th.tail.total{background:var(--surface-muted)}table.attendance .sticky{position:sticky;left:2.25rem;z-index:1;min-width:8.5rem;max-width:10rem;overflow:hidden;padding:.125rem var(--space-2);background:var(--white);text-align:left;text-overflow:ellipsis;font-weight:500}table.attendance thead .sticky{background:var(--surface-muted)}.cell-button{display:inline-block;width:30px;height:30px;min-height:30px;font-size:.8125rem;line-height:1;padding:0;border:1px solid var(--line-strong);border-radius:8px;background:var(--white)}button.cell-button:hover:not(:disabled){background:var(--pink-soft)}button.cell-button.absent,button.cell-button.absent:hover:not(:disabled){border-color:var(--danger);background:var(--danger);color:var(--white);font-weight:700}button.cell-button:disabled{opacity:1;cursor:default}.file-name{white-space:normal;word-break:break-word}.preview{display:grid;place-items:center;margin-bottom:var(--space-3)}.preview img,.preview video{max-width:100%;max-height:65dvh;border-radius:12px}.preview iframe{width:100%;height:65dvh;border:1px solid var(--line);border-radius:12px}.preview audio{width:100%}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3);margin:0;padding:0;list-style:none}.gallery li{display:grid;gap:var(--space-1);align-content:start;font-size:.8125rem}.gallery li>span.muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.thumb,a.thumb{position:relative;display:block;width:100%;height:120px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted)}button.thumb img,button.thumb video{width:100%;height:100%;object-fit:cover;pointer-events:none}.thumb .file-ext{display:grid;place-items:center;width:100%;height:100%;color:var(--muted);font-size:1.25rem;font-weight:700;letter-spacing:.04em}.thumb .play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:1.5rem;text-shadow:0 0 6px rgb(0 0 0 / 60%)}.qr{display:grid;gap:var(--space-2);justify-items:center}.qr img{max-width:100%;height:auto;border-radius:12px}.qr input{width:100%}fieldset.choices{display:grid;gap:var(--space-2);min-width:0;margin:0;padding:0;border:0}fieldset.choices legend{margin-bottom:var(--space-2);padding:0;font-weight:600}:is(.modal-fields,dialog) label.choice{display:flex;align-items:center;gap:.625rem;padding:.55rem .75rem;border:1px solid var(--line-strong);border-radius:12px;background:var(--white);font-weight:500;cursor:pointer}:is(.modal-fields,dialog) label.choice:hover{border-color:var(--accent)}:is(.modal-fields,dialog) label.choice:has(input:checked){border-color:var(--accent);background:var(--pink-tint)}:is(.modal-fields,dialog) label.choice:has(input:disabled){opacity:.55;cursor:not-allowed}:is(.modal-fields,dialog) label.choice input{flex:none;width:18px;min-width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:var(--accent)}.share-page{max-width:960px;margin:0 auto;padding:var(--space-6) var(--space-4)}h3{margin:0;font-size:.9375rem;font-weight:600}a.icon-button{display:inline-grid;place-items:center;min-height:40px;border-radius:8px;text-decoration:none}.gallery .data-table-action-group{justify-content:flex-start;flex-wrap:wrap}.section>input[type=search]{width:100%}.files-table{overflow:visible}.files-table table{min-width:0;table-layout:auto}.files-table :is(th,td){white-space:normal;overflow-wrap:anywhere;padding-inline:var(--space-2)}.files-table .col-name{min-width:0;width:38%}.files-table .col-date{width:84px}.files-table .col-actions{width:48px}.supplies-table table{min-width:1180px;table-layout:auto}.supplies-table,.handmade-table,.growth-table{cursor:grab}.data-table.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none;scroll-behavior:auto}.data-table.is-dragging :is(button,a){cursor:grabbing}.supplies-table :is(th,td):nth-child(-n+2){position:sticky;z-index:2;background:var(--white)}.supplies-table th:nth-child(-n+2){z-index:3;background:var(--surface-muted)}.supplies-table :is(th,td):nth-child(1){left:0;width:56px;min-width:56px}.supplies-table :is(th,td):nth-child(2){left:56px;box-shadow:1px 0 0 var(--line-strong)}.supplies-table tbody tr:hover>td:nth-child(-n+2){background:var(--surface-hover)}.supplies-table .col-name{min-width:140px}.supplies-table .stock-input{width:100%;min-height:32px;margin:0;padding:0 .4rem;font-size:.8125rem}.supplies-table .stock-number{min-width:72px}.supplies-table .stock-date{min-width:128px}.supplies-table .stock-text{min-width:120px}.growth-table :is(thead tr:first-child th,tbody td):nth-child(-n+2){position:sticky;z-index:2;background:var(--white)}.growth-table thead tr:first-child th:nth-child(-n+2){z-index:3;background:var(--surface-muted)}.growth-table :is(thead tr:first-child th,tbody td):nth-child(1){left:0;width:56px;min-width:56px}.growth-table :is(thead tr:first-child th,tbody td):nth-child(2){left:56px;box-shadow:1px 0 0 var(--line-strong)}.growth-table.growth-table tbody tr:hover>td{background:var(--growth-row-hover)}.growth-table{--growth-row-hover: color-mix(in srgb, var(--accent) 12%, var(--white));--growth-cell-hover: color-mix(in srgb, var(--accent) 28%, var(--white))}.growth-table table{min-width:1700px;table-layout:auto}.growth-table :is(th,td){padding:.125rem .15rem}.growth-table thead th{white-space:normal;line-height:1.25}.growth-table .growth-period-head{white-space:pre-line}.growth-table.growth-quarters table{min-width:1000px}.growth-table tbody td{height:34px}.growth-table :is(th,td){text-align:center;border:1px solid var(--line-strong)}.growth-table thead th{background:var(--surface-muted)}.growth-table tbody tr:last-child td{border-bottom:1px solid var(--line-strong)}.growth-table .col-name{min-width:160px;text-align:center}.growth-table .growth-cell{display:block;width:100%;min-width:64px;min-height:30px;margin:0;padding:0 .4rem;border:0;border-radius:0;background:transparent;color:inherit;font-size:.8125rem;font-weight:400;text-align:center}.growth-table .growth-cell:hover:not(:disabled){background:var(--growth-cell-hover)}.growth-table :is(th.growth-note-head,td.growth-note){position:sticky;right:0;width:150px;min-width:150px;max-width:150px;box-shadow:-1px 0 0 var(--line-strong);background:var(--white)}.growth-table th.growth-note-head{z-index:3;background:var(--surface-muted);text-align:center}.growth-table td.growth-note{z-index:2}.growth-table .growth-cell.is-empty{color:var(--muted)}.growth-table .growth-cell-text{min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.growth-table :is(thead tr:first-child th,tbody td):nth-child(1){display:none}.growth-table :is(thead tr:first-child th,tbody td):nth-child(2){left:0;min-width:110px}.growth-table :is(th.growth-note-head,td.growth-note){position:static;box-shadow:none}.growth-table .growth-cell{min-height:36px}}.supplies-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-4)}.supplies-toolbar .tabs-bar{flex:0 1 auto;min-width:0;margin:0}.supplies-toolbar>button{display:inline-flex;align-items:center;gap:.4rem}.classrooms-card{grid-column:1 / -1;max-width:none}.class-block{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--line);border-radius:14px}.class-block-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.class-block-head h3{margin:0;font-size:1rem;font-weight:600}.profile-card form{display:grid;gap:var(--space-4)}.profile-card label{display:grid;gap:var(--space-1);font-weight:500}.form-actions{display:flex;flex-wrap:wrap;justify-content:flex-end}.modal-fields .date-picker-trigger,.modal-fields .date-picker-trigger:hover:not(:disabled){display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:40px;margin:0;padding:0 .75rem;border:1px solid var(--line-strong);background:var(--white);color:var(--ink);font-weight:500;text-align:left;transform:none}.modal-fields .date-picker-trigger:hover:not(:disabled){border-color:var(--accent)}.modal-fields label.check{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);font-weight:400}@media(min-width:1024px){.login-logo{width:120px;height:120px}}.topbar-class{display:flex;align-items:center;gap:4px}.topbar-class .filter-combobox{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem}.topbar-class .filter-combobox-label{color:var(--muted);font-size:.875rem;font-weight:600;white-space:nowrap}.topbar-class .filter-combobox-trigger,.topbar-class .filter-combobox-trigger:hover{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:auto;min-width:0;max-width:100%;min-height:36px;margin:0;padding:0 .75rem;border:1px solid var(--line-strong);border-radius:10px;background:var(--white);color:var(--ink);font-size:.875rem;font-weight:400;text-align:left;transform:none}.topbar-class-other .filter-combobox-trigger,.topbar-class-other .filter-combobox-trigger:hover{border-color:var(--sun-ink);color:var(--sun-ink);font-weight:600}.brand small.brand-class{display:block;max-width:11rem;overflow:hidden;color:var(--accent);font-size:.8125rem;font-weight:700;letter-spacing:.02em;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.brand small.brand-class-other{color:var(--sun-ink)}.topbar-class .filter-combobox-popover{min-width:100%}.topbar-class .filter-combobox-popover input{flex:none;width:100%;min-height:36px;margin:0}@media(max-width:640px){.topbar-class .filter-combobox-trigger,.topbar-class .filter-combobox-trigger:hover{max-width:100px}.topbar-class .filter-combobox:first-child .filter-combobox-trigger,.topbar-class .filter-combobox:first-child .filter-combobox-trigger:hover{max-width:170px}}@media(max-width:620px){.topbar-class{margin-right:auto}}@media(max-width:480px){.topbar-class .filter-combobox-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}.weeks-toolbar .filter-combobox-trigger,.weeks-toolbar .filter-combobox-trigger:hover{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:44px;margin:0;padding:0 .75rem;border:1px solid var(--line-strong);border-radius:10px;background:var(--white);color:var(--ink);font-size:.875rem;font-weight:400;text-align:left;transform:none}.weeks-toolbar .filter-combobox-popover input{flex:none;width:100%;min-height:36px;margin:0}.class-pick-list{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.class-pick,.class-pick:hover{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:56px;margin:0;padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);text-align:left;transform:none}.class-pick:hover{border-color:var(--accent)}.class-pick>span{flex:1;min-width:0;display:grid}.class-pick small{color:var(--muted);font-weight:400}:is(.modal-fields,dialog) label.filter-checkbox{display:flex;align-items:center;gap:.625rem;font-weight:500}:is(.modal-fields,dialog) label.filter-checkbox input[type=checkbox]{flex:none;width:18px;min-width:18px;height:18px;min-height:0;margin:0;padding:0}.profile-page>.error{grid-column:1 / -1;margin:0}.cell-button.present,button.cell-button.present{color:var(--success, #1f7a4d);font-weight:700}@media(max-width:640px){table.attendance .stt{display:none}table.attendance .sticky{left:0;min-width:5.5rem;max-width:6.5rem}table.attendance .tail.total{position:static;box-shadow:none}.cell-button{width:28px;height:28px;min-height:28px}table.attendance th,table.attendance td{padding:.1rem}}.app-icon{display:inline-block;flex-shrink:0;vertical-align:middle}.calendar{display:grid;gap:.5rem;text-align:left}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8125rem}.calendar-head b{text-transform:capitalize}.calendar-head button{min-height:28px;min-width:28px;padding:0}.calendar-jump{display:flex;flex:1;justify-content:center;gap:.35rem;min-width:0}.calendar-jump select{width:auto;min-width:0;min-height:32px;padding:.2rem .5rem;font-size:.8125rem}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.calendar-weekdays span{color:var(--muted);font-size:.7rem;font-weight:650}.calendar-grid span,.calendar-grid button{display:grid;place-items:center;aspect-ratio:1;margin:0;padding:0;min-height:0;border:0;border-radius:8px;background:none;color:var(--ink);font-size:.78125rem;font-weight:400;box-shadow:none;transform:none}.calendar-grid button{cursor:pointer}.calendar-grid button:hover:not(:disabled){background:var(--pink-tint);color:var(--accent)}.calendar-grid button:disabled{color:var(--muted);opacity:.4;cursor:not-allowed}.calendar-grid .in-range{background:var(--pink-tint)}.filter-combobox-label{color:var(--muted);font-size:.75rem;font-weight:650}.filter-combobox-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-combobox-trigger[aria-expanded=true]{border-color:var(--accent)}.filter-combobox-popover{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:6;display:grid;gap:.35rem;padding:.5rem;border:1px solid var(--line);border-radius:10px;background:var(--white);box-shadow:0 12px 28px rgb(var(--shadow-rgb) / 14%)}.filter-combobox-popover.is-scrollable ul{max-height:min(50vh,18rem);overflow-y:auto;overscroll-behavior:contain}.filter-combobox-popover ul{display:grid;gap:2px;margin:0;padding:0;list-style:none}.filter-combobox-popover li{padding:.45rem .6rem;border-radius:8px;color:var(--ink);font-size:.8125rem;overflow-wrap:anywhere;cursor:pointer}.filter-combobox-popover li[aria-selected=true]{color:var(--accent);font-weight:650}.filter-combobox-popover p{margin:0;padding:.2rem .6rem;font-size:.75rem}.filter-combobox-trigger>.app-icon{flex-shrink:0;color:var(--muted);transition:transform .15s ease}.filter-combobox-trigger[aria-expanded=true]>.app-icon{transform:rotate(180deg)}@media(pointer:coarse){.filter-combobox-popover ul{max-height:min(50vh,18rem);overflow-y:auto;overscroll-behavior:contain}.filter-combobox-popover li{display:flex;align-items:center;min-height:40px}}.page-title-row{display:flex;align-items:center;gap:.15rem;min-width:0}.page-info{position:relative;display:inline-flex}.page-info:has(.page-info-tip:empty){display:none}.page-info-trigger,.page-info-trigger:hover:not(:disabled){display:inline-grid;place-items:center;width:22px;height:22px;min-height:0;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted);line-height:1;box-shadow:none;transform:none;cursor:help}.page-info-trigger:hover:not(:disabled),.page-info-trigger:active:not(:disabled){box-shadow:none;transform:none}.page-info-trigger:hover:not(:disabled),.page-info.open .page-info-trigger{background:var(--pink-tint);color:var(--accent-dark)}.page-info-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page-info-tip{position:absolute;top:calc(100% + 6px);left:0;z-index:40;display:none;width:max-content;max-width:min(380px,calc(100vw - 32px));padding:.6rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);font-size:.8125rem;font-weight:400;line-height:1.5;box-shadow:0 12px 28px rgb(var(--shadow-rgb) / 14%);white-space:normal}.page-info-tip>p{display:block;margin:0}.page-info-tip>p+p{margin-top:.4rem}.page-info:hover .page-info-tip,.page-info:focus-within .page-info-tip,.page-info.open .page-info-tip{display:block}@media(max-width:620px){.page-info-tip{position:fixed;top:auto;left:16px;right:16px;width:auto;max-width:none;margin-top:6px}}.modal-fields textarea{width:100%;min-height:88px;margin-top:var(--space-2);padding:.5rem .75rem;border:1px solid var(--line-strong);border-radius:14px;background:var(--white);color:var(--ink);font:inherit}.modal-fields textarea:focus{box-shadow:0 0 0 3px #d9327229;outline:0}.form-modal{width:min(540px,calc(100% - 2rem));max-height:calc(100dvh - 2rem);margin:auto;padding:1.5rem;overflow-y:auto;border:1px solid var(--line);border-radius:18px;background:var(--white);color:var(--ink);box-shadow:0 20px 60px rgb(var(--shadow-rgb) / 18%)}.form-modal::backdrop{background:var(--backdrop)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.modal-heading h2{margin:0;font-size:1.125rem;line-height:1.4}.form-modal form,.modal-fields{display:grid;gap:1rem}.modal-fields{min-width:0;margin:0;padding:0;border:0}.modal-fields label{display:grid;gap:.25rem;font-weight:500}.modal-fields input,.modal-fields select{min-width:0;max-width:100%}.modal-fields p{margin:0;overflow-wrap:anywhere}@media(max-width:620px){.form-modal{padding:1rem}}.modal-fields label{gap:0}@media(max-width:480px){.form-modal{width:calc(100% - 1rem);max-height:calc(100dvh - 1rem);padding:var(--space-4)}}.modal-fields .modal-field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.modal-fields .modal-option:has(input:disabled){background:var(--surface-muted);opacity:.65;cursor:not-allowed}.form-modal.form-modal-roomy{width:min(640px,calc(100% - 2rem));min-height:min(600px,calc(100dvh - 2rem))}.page-back-link{display:inline-flex;align-items:center;justify-self:start;gap:var(--space-1);min-height:38px;padding:.4rem .7rem .4rem .55rem;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);font-size:.8125rem;font-weight:650;line-height:1;text-decoration:none;box-shadow:0 2px 8px rgb(var(--shadow-rgb) / 5%);transition:color .15s ease,border-color .15s ease,background .15s ease,transform .15s ease}.page-back-link:hover,button.page-back-link:hover:not(:disabled){border-color:var(--accent);background:var(--pink-tint);color:var(--accent-dark);box-shadow:0 2px 8px rgb(var(--shadow-rgb) / 5%);transform:translate(-2px)}.page-back-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page-nav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.page-back-link .app-icon{flex:0 0 auto;color:var(--accent);transition:transform .15s ease}.page-back-link:hover .app-icon{transform:translate(-1px)}.date-picker-popover{position:absolute;top:calc(100% + .25rem);left:0;z-index:6;width:min(280px,calc(100vw - 2rem));padding:.85rem;border:1px solid var(--line);border-radius:14px;background:var(--white);box-shadow:0 12px 28px rgb(var(--shadow-rgb) / 14%)}.date-picker-popover.upward{top:auto;bottom:calc(100% + .25rem)}.date-picker-popover.floating{position:fixed;max-height:calc(100dvh - 16px);overflow-y:auto}.date-picker-trigger>.app-icon{flex:0 0 auto;color:var(--muted)}.calendar-grid.month-picker-grid{grid-template-columns:repeat(3,1fr);gap:.25rem}.calendar-grid.month-picker-grid button{aspect-ratio:auto;min-height:40px}.row-menu{position:relative;flex-shrink:0}.row-menu-list{position:absolute;top:calc(100% + var(--space-1));right:0;z-index:30;display:grid;gap:2px;min-width:180px;padding:var(--space-1);border:1px solid var(--line);border-radius:14px;background:var(--white);box-shadow:0 12px 32px rgb(var(--shadow-rgb) / 14%)}.row-menu-list [role=menuitem]{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:38px;padding:var(--space-2);border-radius:10px;background:transparent;color:var(--ink);font-size:.875rem;font-weight:500;text-align:left;white-space:nowrap}.row-menu-list [role=menuitem]:hover:not(:disabled),.row-menu-list [role=menuitem]:focus-visible{background:var(--pink-soft);color:var(--accent-dark);transform:none}@media(max-width:768px){.row-menu-list [role=menuitem]{min-height:44px}}.row-menu-list [role=menuitem] .app-icon{color:var(--muted)}.row-menu-list .row-menu-danger,.row-menu-list .row-menu-danger .app-icon{color:var(--danger)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-4)}.pagination-total{color:var(--muted);font-size:.8125rem}.pagination-size{display:flex;align-items:center;gap:var(--space-2);color:var(--muted);font-size:.8125rem}.pagination-size select{width:auto;margin:0}.pagination-controls{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.pagination-status{min-width:3.5rem;font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums;text-align:center}@media(max-width:620px){.pagination-total{display:none}.pagination{flex-wrap:wrap}}.preview-modal{width:min(1100px,calc(100% - 2rem));max-height:calc(100dvh - 2rem);margin:auto;padding:1.5rem;overflow-y:auto;border:1px solid var(--line);border-radius:18px;background:var(--white);color:var(--ink);box-shadow:0 20px 60px rgb(var(--shadow-rgb) / 18%)}.preview-modal::backdrop{background:var(--backdrop)}.preview-modal{overflow-x:hidden}.preview-modal .modal-heading h2{min-width:0;overflow-wrap:anywhere}.preview-modal .modal-heading>button{flex:none}@media(max-width:480px){.preview-modal{width:calc(100% - 1rem);max-height:calc(100dvh - 1rem);padding:var(--space-4)}}.tabs-bar{display:flex;gap:.25rem;width:fit-content;max-width:100%;margin:0 0 var(--space-4);padding:.25rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted);overflow-x:auto;scrollbar-width:none}.tabs-bar button{display:inline-flex;flex:0 0 auto;align-items:center;gap:.45rem;min-height:38px;padding:0 1rem;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:.875rem;font-weight:600;white-space:nowrap}.tabs-bar button:hover:not(:disabled){background:transparent;color:var(--ink);transform:none}.tabs-bar button[aria-selected=true],.tabs-bar button[aria-selected=true]:hover:not(:disabled){background:var(--white);color:var(--accent-dark);box-shadow:0 1px 3px #0000001f}@media(max-width:620px){.tabs-bar{width:100%}.tabs-bar button{padding:0 .8rem}}.tabs-bar.tabs-center{margin:0 auto calc(var(--space-2) * -1)}.week-strip{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--pink-soft);border-left:4px solid var(--accent);border-radius:12px;background:var(--pink-tint);color:var(--accent-dark);font-size:1rem}.week-strip>.app-icon{flex:0 0 auto}.week-strip b{font-weight:700;overflow-wrap:anywhere}.week-strip-note{font-weight:600;color:var(--ink)}:root[data-theme=dark] .week-strip{border-color:var(--line-strong);border-left-color:var(--accent);background:var(--surface-muted);color:var(--ink)}.form-modal.school-weeks-modal{display:flex;flex-direction:column;width:min(960px,calc(100% - 2rem));max-width:calc(100% - 2rem);height:min(820px,calc(100dvh - 2rem));max-height:calc(100dvh - 2rem);overflow:hidden}.school-weeks-modal .modal-heading{flex:none;margin-bottom:var(--space-3)}.school-weeks-modal form,.school-weeks-modal .modal-fields{display:flex;flex:1;flex-direction:column;min-height:0;gap:var(--space-3)}.school-weeks-modal .form-actions{flex:none;align-items:center;margin:0}.school-weeks-modal .form-actions>button{min-height:44px;white-space:nowrap}.weeks-help{flex:none;color:var(--muted);font-size:.8125rem;line-height:1.55}.weeks-help summary{width:fit-content;cursor:pointer;color:var(--accent-dark)}.weeks-help[open]{max-height:120px;overflow-y:auto}.weeks-help p{padding-top:var(--space-1)}.weeks-save-state{margin-right:auto;color:var(--muted);font-size:.8125rem}.weeks-toolbar{display:flex;flex:none;flex-wrap:wrap;align-items:end;gap:var(--space-2) var(--space-3)}.weeks-toolbar>label,.weeks-toolbar>.filter-combobox{width:min(220px,100%);font-size:.8125rem}.weeks-toolbar select{width:100%;min-height:44px;margin-top:var(--space-1)}.weeks-toolbar .weeks-current-button,.weeks-editor-actions>button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;font-size:.8125rem}.weeks-count{align-self:center;margin-left:auto;font-size:.8125rem;white-space:nowrap}.weeks-editor-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:12px;scrollbar-gutter:stable}.weeks-editor-head,.weeks-editor-row{display:grid;grid-template-columns:5rem minmax(9rem,1fr) minmax(9rem,1fr) minmax(9rem,1.6fr);align-items:center;gap:var(--space-2);padding:var(--space-3)}.weeks-editor-head{position:sticky;top:0;z-index:1;border-bottom:1px solid var(--line);background:var(--surface-muted);color:var(--muted);font-size:.75rem;font-weight:600}.weeks-editor{margin:0;padding:0;list-style:none}.weeks-editor-row{scroll-margin-top:3rem;border-bottom:1px solid var(--line)}.weeks-editor-row:last-child{border-bottom:0}.weeks-editor-row:focus{outline:2px solid var(--accent);outline-offset:-2px}.weeks-editor-row.is-current{background:var(--pink-tint)}.weeks-editor-row.has-error{box-shadow:inset 3px 0 0 var(--danger, #b91c1c)}.weeks-editor-number{display:grid;gap:var(--space-1);font-size:.8125rem}.weeks-current-badge{width:fit-content;padding:2px 6px;border-radius:6px;background:var(--pink-soft);color:var(--accent-dark);font-size:.6875rem;font-weight:600}.school-weeks-modal .weeks-editor input{width:100%;min-width:0;height:40px;min-height:40px;margin:0;padding:.5rem;font-size:.8125rem}.week-field-label,.week-date-field .filter-combobox-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.school-weeks-modal .week-date-field .date-picker-trigger{width:100%;min-width:0;min-height:40px;padding:.5rem;font-size:.8125rem}.week-date-field{min-width:0}.week-errors{grid-column:1 / -1;margin:0;padding-left:1.25rem;color:var(--danger, #b91c1c);font-size:.8125rem}.weeks-error-summary{display:flex;flex:none;flex-wrap:wrap;align-items:center;gap:var(--space-2);color:var(--danger, #b91c1c);font-size:.8125rem}.weeks-error-summary .form-link{padding:0;border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;box-shadow:none}.weeks-editor-actions{display:flex;flex:none;flex-wrap:wrap;gap:var(--space-2)}.weeks-editor-actions .weeks-delete-button{margin-left:auto;color:var(--danger, #b91c1c)}.weeks-empty{padding:var(--space-5);color:var(--muted);text-align:center}.weeks-load-error{display:grid;justify-items:start;gap:var(--space-2)}@media(max-width:820px){.weeks-editor-head{display:none}.weeks-editor-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3) var(--space-2);scroll-margin-top:0}.weeks-editor-number{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between}.week-field-label,.week-date-field .filter-combobox-label{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;margin-bottom:var(--space-1);font-size:.8125rem}.week-note-field{grid-column:1 / -1}.school-weeks-modal .weeks-editor input,.school-weeks-modal .week-date-field .date-picker-trigger{height:44px;min-height:44px}}@media(max-width:620px){.form-modal.school-weeks-modal{width:calc(100% - 1rem);max-width:calc(100% - 1rem);height:calc(100dvh - 1rem);max-height:calc(100dvh - 1rem);padding:var(--space-3)}.school-weeks-modal .modal-heading h2{font-size:1rem}.school-weeks-modal .modal-heading>button{min-height:44px}.weeks-toolbar>label,.weeks-toolbar>.filter-combobox{width:100%}.weeks-editor-scroll{scrollbar-gutter:auto}.weeks-toolbar .weeks-current-button{padding-inline:var(--space-2)}.weeks-save-state{flex-basis:100%}.school-weeks-modal .form-actions{flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-2)}.weeks-editor-actions>button{padding-inline:var(--space-2)}.weeks-help summary{min-height:32px;display:list-item;align-content:center}}.list-rows{padding:0 var(--space-5)}.list-rows>p{margin:0;padding-block:var(--space-5)}.list-row{display:grid;grid-template-columns:37px minmax(0,1fr) auto;grid-template-areas:"lead title actions" "lead tags actions";column-gap:var(--space-3);row-gap:var(--space-1);align-items:center;padding:var(--space-3) 0;border-top:1px solid var(--line)}.list-row:first-child{border-top:0}.list-row-lead{grid-area:lead;align-self:start}.list-row-lead>*{width:37px}.list-row-title{grid-area:title;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);min-width:0;font-size:.875rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.list-row-title a{color:var(--ink);text-decoration:none}.list-row-title a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.list-row-tags{grid-area:tags;display:flex;flex-wrap:wrap;gap:var(--space-1);min-width:0;margin:0;padding:0;list-style:none}.list-row-tags li{max-width:100%;padding:2px var(--space-2);overflow:hidden;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:.6875rem;font-weight:500;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.list-row-actions{grid-area:actions;display:flex;flex-wrap:nowrap;align-items:center;gap:var(--space-1)}.list-row-select{grid-area:select;align-self:center;display:flex}@media(max-width:620px){.list-rows{padding:0 var(--space-4)}.list-row{grid-template-areas:"lead title actions" "lead tags tags";align-items:start}.list-row-select{align-self:start;padding-top:10px}.list-row-actions{margin-top:-6px;margin-right:-6px}}.list-row-tags .tag-short{display:none}.list-row-tags .list-row-tag-leader{background:var(--pink-soft);color:var(--accent-dark);font-weight:700}@media(max-width:620px){.list-row-desktop-only,.list-row-tag-extra,.list-row-tags .tag-full{display:none}.list-row-tags .tag-short{display:inline}}.list-row-tags li>a{color:inherit;text-decoration:none}.list-row-tags li>a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.list-row-title .folder-row-open:hover:not(:disabled){min-height:0;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;box-shadow:none;transform:none;overflow-wrap:anywhere}.list-row-title .folder-row-open:hover:not(:disabled){color:var(--accent);text-decoration:underline;text-underline-offset:3px}.public-share-card{max-width:860px;line-height:1.5}.public-share-head{display:flex;align-items:center;gap:.75rem}.public-share-head img{border-radius:12px}.public-share-head .login-kicker{margin:0;font-weight:700}.public-share-meta{margin-top:0}.public-share-empty{padding:2rem 0 1rem;text-align:center}.public-share-card .list{padding-left:0}.public-share-card .shared-supplies table{min-width:960px;table-layout:auto}.public-share-card .shared-supplies .col-name{min-width:180px}
