/* Buess UI 0.6.0: shared by Home, Time, Plan, Spray, Docs and 9 to 5. */
:root{color-scheme:dark;--bg:#000;--panel:#111;--glass:rgba(0,0,0,.8);--text:#f5f5f7;--muted:#999;--line:#2a2a2a;--field:#1b1b1b;--accent:#ededed;--accent-soft:#222;--on-accent:#111;--shadow:0 8px 30px #0003;--danger:#ffacac;--focus:0 0 0 3px #ffffff30;--radius:24px;--small-radius:13px;--header-height:78px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
:root[data-theme=light]{color-scheme:light;--bg:#f5f5f7;--panel:#fff;--glass:rgba(245,245,247,.85);--text:#1d1d1f;--muted:#6e6e73;--line:#dedee2;--field:#f1f1f3;--accent:#262626;--accent-soft:#e9e9ec;--on-accent:#fff;--shadow:0 8px 32px #00000008;--danger:#b23538;--focus:0 0 0 3px #22222225;}
@media(prefers-color-scheme:light){:root[data-theme=auto]{color-scheme:light;--bg:#f5f5f7;--panel:#fff;--glass:rgba(245,245,247,.85);--text:#1d1d1f;--muted:#6e6e73;--line:#dedee2;--field:#f1f1f3;--accent:#262626;--accent-soft:#e9e9ec;--on-accent:#fff;--shadow:0 8px 32px #00000008;--danger:#b23538;--focus:0 0 0 3px #22222225;}}
*{box-sizing:border-box}html{font-family:var(--font);font-size:16px;-webkit-text-size-adjust:100%;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);min-height:100dvh;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,3vw,42px);line-height:1.14;letter-spacing:-1.35px;font-weight:700;margin-bottom:12px}h2{font-size:20px;letter-spacing:-.45px;margin-bottom:20px}h3{font-size:16px;letter-spacing:-.15px;margin-bottom:8px}p{margin-bottom:16px}.muted{color:var(--muted)}.small{font-size:13px}.eyebrow{font-size:11px;font-weight:650;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin:0 0 12px}.icon{width:22px;height:22px;display:block;flex-shrink:0;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}.skip{position:fixed;left:10px;top:-100px;z-index:30;background:var(--panel);padding:12px}.skip:focus{top:8px}.appbar{height:var(--header-height);padding:0 max(24px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:15}.brand{display:flex;gap:11px;align-items:center;color:var(--text);font-size:20px;font-weight:650;letter-spacing:-.5px}.brand:hover{text-decoration:none}.brand img{width:31px;height:31px;border-radius:50%;background:#ebe8e0}.brand small{font-size:15px;font-weight:500;letter-spacing:0;color:var(--muted);padding-left:13px;border-left:1px solid var(--line);margin-left:4px}.bar-actions{display:flex;align-items:center;gap:12px}.icon-button{width:39px;height:39px;border:0;border-radius:50%;display:grid;place-items:center;background:transparent;color:var(--muted)}.icon-button:hover{background:var(--field);color:var(--text)}.avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:650}.account{position:relative}.account summary{list-style:none;cursor:pointer}.account summary::-webkit-details-marker{display:none}.popover{position:absolute;right:0;top:48px;min-width:230px;padding:8px;border:1px solid var(--line);border-radius:17px;background:var(--panel);box-shadow:0 16px 45px #0002;z-index:21}.popover a,.popover button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border:0;background:none;color:var(--text);border-radius:10px;text-align:left;font-size:14px}.popover a:hover,.popover button:hover{background:var(--field);text-decoration:none}.popover .rule{border-top:1px solid var(--line);margin:5px 0}.page{max-width:1224px;margin:0 auto;padding:48px 32px 100px}.page.narrow{max-width:820px}.page.home-page{max-width:1176px;padding-top:58px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px}.page-head p{margin-bottom:0;color:var(--muted);font-size:15px}.home-greeting{margin:0 0 40px}.home-greeting h1{font-size:42px;margin-bottom:10px}.home-greeting p{color:var(--muted);font-size:16px}.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.app-card{display:flex;flex-direction:column;align-items:flex-start;position:relative;padding:28px 28px 24px;min-height:205px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease}.app-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:0 10px 30px #00000010}.app-card .arrow{position:absolute;right:24px;top:31px;color:var(--muted)}.app-card .app-name{font-size:19px;font-weight:650;letter-spacing:-.45px;margin:18px 0 3px}.app-card .app-description{font-size:13px;color:var(--muted)}.app-symbol{width:56px;height:56px;border-radius:17px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 1px 0 #ffffff55}.app-symbol .icon{width:29px;height:29px;stroke-width:1.65}.app-card.disabled{box-shadow:none;opacity:.65;cursor:default}.app-card.disabled:hover{transform:none}.pill{display:inline-flex;align-items:center;font-size:11px;letter-spacing:.1px;font-weight:550;background:var(--field);color:var(--muted);padding:4px 9px;border-radius:20px}.app-card .pill{position:absolute;right:20px;top:28px}.quick-links{margin:28px 0 0;padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:13px}.quick-links a{color:var(--muted);display:flex;align-items:center;gap:8px}.quick-links .icon{width:16px;height:16px}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:28px;box-shadow:var(--shadow);margin-bottom:20px}.card:last-child{margin-bottom:0}.card.flat{box-shadow:none}.stack{display:grid;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid.address{grid-template-columns:minmax(0,3fr) minmax(100px,1fr)}.full{grid-column:1/-1}.field{display:flex;flex-direction:column;min-width:0;gap:7px}label,.label{font-size:13px;font-weight:550}input,select,textarea{background:var(--field);border:1px solid transparent;border-radius:10px;color:var(--text);padding:11px 13px;min-width:0;width:100%;min-height:46px;font-size:16px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus)}input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%}input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:var(--accent);flex-shrink:0}input[type=range]{padding:0}textarea{min-height:100px;resize:vertical}input:read-only{color:var(--muted)}input::placeholder{color:var(--muted);opacity:.75}.check{display:flex;align-items:center;gap:10px;font-weight:400}.check input{margin:0}.form-note{font-size:12px;line-height:1.6;color:var(--muted);margin:2px 0 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:12px;padding:11px 17px;min-height:44px;font-size:14px;font-weight:550;text-decoration:none;background:var(--accent);color:#fff}.button:hover{filter:brightness(.96);text-decoration:none}:root[data-theme=dark] .button:not(.secondary):not(.plain){color:#13213e}.button.secondary{background:var(--field);color:var(--text);border-color:var(--line)}.button.plain{background:transparent;color:var(--accent)}.button.wide{width:100%}.button .icon{width:18px;height:18px}.actions{display:flex;justify-content:flex-end;gap:10px;align-items:center;flex-wrap:wrap;margin-top:24px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.subnav{display:flex;gap:24px;margin:0 0 28px;border-bottom:1px solid var(--line);font-size:14px;overflow:auto;white-space:nowrap}.subnav a{padding:0 0 12px;color:var(--muted)}.subnav a.active{color:var(--text);border-bottom:2px solid var(--accent);font-weight:550}.split{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr);gap:24px;align-items:start}.split>.card{margin:0}.metrics{display:flex;gap:30px;justify-content:space-between}.metric span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.metric strong{font-size:24px;letter-spacing:-.5px}.metric.big strong{font-size:48px;line-height:1.1;letter-spacing:-2px}.result-card{background:var(--accent-soft);border-color:transparent}.result-card h2{color:var(--accent)}.result-card .metric.big{padding:13px 0}.result-detail{margin:22px 0 0;padding-top:15px;border-top:1px solid var(--line);display:grid;gap:9px;font-size:13px}.result-detail div{display:flex;justify-content:space-between;gap:12px}.result-detail span{color:var(--muted)}.segmented{display:flex;padding:4px;border-radius:12px;background:var(--field);gap:4px}.segmented button{flex:1;background:none;border:0;border-radius:9px;padding:8px 10px;color:var(--muted);font-size:13px}.segmented button[aria-pressed=true]{background:var(--panel);box-shadow:0 1px 4px #0000000f;color:var(--text)}.scenario-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.scenario-options button{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:13px;padding:13px;color:var(--text)}.scenario-options button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.scenario-options button span{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}.scenario-options button strong{font-size:13px;font-weight:550}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:var(--panel)}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{color:var(--muted);font-weight:500;background:var(--field)}th,td{padding:15px 18px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}.week-table{min-width:860px;table-layout:fixed}.week-table th:first-child{width:170px}.week-table th.weekend{width:45px}.week-table th{font-size:11px;padding:13px 10px}.week-table td{height:98px;border-right:1px solid var(--line);padding:8px;vertical-align:top}.week-table td:first-child{padding:15px 13px;vertical-align:middle;font-weight:550}.week-table td.weekend{background:var(--field)}.shift{display:block;background:var(--accent-soft);border-radius:9px;padding:10px 8px;font-size:11px;min-height:69px;line-height:1.35;color:var(--accent)}.shift small{display:block;margin-top:7px;font-size:10px;opacity:.8}.shift.alt{background:#ecf1e9;color:#657a4f}.shift.neutral{background:var(--field);color:var(--muted)}.staff-name{display:flex;align-items:center;gap:8px}.staff-name .avatar{width:27px;height:27px;font-size:9px}.pool-row{display:flex;gap:10px;align-items:center;margin:20px 0;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--panel);font-size:13px}.pool-row span:first-child{margin-right:auto}.pool-row .pill{font-size:12px}.app-foot{max-width:1160px;margin:0 auto;padding:0 32px 25px;display:flex;justify-content:space-between;color:var(--muted);font-size:11px;gap:20px}.previewbar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:18px;align-items:center;justify-content:center;border-top:1px solid var(--line);padding:10px 18px max(10px,env(safe-area-inset-bottom));background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);font-size:12px;color:var(--muted);z-index:20}.previewbar select{min-height:32px;padding:4px 10px;font-size:12px;width:auto;max-width:145px;border:1px solid var(--line)}.previewbar .preview-label{display:flex;align-items:center;gap:7px}.preview-dot{width:6px;height:6px;background:var(--accent);border-radius:50%}.previewbar a{font-size:12px}.login-page{display:grid;place-items:center;min-height:calc(100dvh - 130px);padding:32px 20px 90px}.login-box{width:100%;max-width:414px;text-align:center}.login-box .app-symbol{width:78px;height:78px;margin:0 auto 23px;border-radius:22px}.login-box .app-symbol .icon{width:39px;height:39px}.login-box h1{font-size:31px;letter-spacing:-1px;margin:0 0 9px}.login-box .login-subtitle{font-size:14px;color:var(--muted);margin-bottom:28px}.login-box form{text-align:left;padding:28px}.login-box .forgot{text-align:center;margin:20px 0 0;font-size:12px}.notice{background:var(--accent-soft);border-radius:12px;padding:14px 16px;font-size:13px;color:var(--accent);margin-bottom:20px}.notice.error{color:var(--danger);background:var(--field)}.empty{text-align:center;padding:50px 25px}.empty .app-symbol{margin:0 auto 20px}.empty p{max-width:450px;margin-left:auto;margin-right:auto;color:var(--muted);font-size:14px}.profile-title{display:flex;align-items:center;gap:20px;margin-bottom:25px}.profile-title .avatar{height:65px;width:65px;font-size:20px}.profile-title h2{margin:0 0 4px}.profile-title p{margin:0;font-size:13px;color:var(--muted)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border:0;padding-bottom:0}.setting-row:first-of-type{padding-top:0}.setting-row p{font-size:12px;margin:3px 0 0;color:var(--muted)}.setting-row select{max-width:155px}.counter{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.dialog{max-width:430px;width:calc(100% - 32px);padding:28px;border:1px solid var(--line);border-radius:22px;background:var(--panel);color:var(--text);box-shadow:0 20px 80px #0003}.dialog::backdrop{background:#11182755;backdrop-filter:blur(5px)}.dialog h2{margin-bottom:10px}.dialog p{font-size:14px;color:var(--muted)}.dialog .actions{margin-top:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.preview-scope{font-size:12px;color:var(--muted);margin:0 0 22px}.item-row{display:grid;grid-template-columns:1fr 115px;gap:12px;margin-bottom:12px}.mini-link{font-size:12px}.page.wide{max-width:1400px}.home-empty{padding:60px}.loading{padding:80px 32px;text-align:center}.readonly-preview{pointer-events:none}.mobile-text{display:none}
@media(max-width:900px){.app-grid{gap:15px}.app-card{padding:23px;min-height:195px}.split{grid-template-columns:1fr}.split .result-card{position:static}.page{padding:36px 24px 100px}.home-greeting h1{font-size:36px}.app-foot{padding-left:24px;padding-right:24px}.metrics{justify-content:flex-start;gap:44px}}
@media(max-width:640px){:root{--header-height:62px;--radius:20px}.appbar{padding:0 17px;gap:8px}.brand{font-size:18px;gap:8px}.brand img{width:28px;height:28px}.brand small{font-size:14px;padding-left:11px}.bar-actions{gap:5px}.page,.page.home-page{padding:30px 18px 108px}.home-greeting{margin-bottom:27px}.home-greeting h1{font-size:33px}.home-greeting p{font-size:14px}.app-grid{grid-template-columns:1fr 1fr;gap:12px}.app-card{padding:20px 16px;min-height:178px}.app-card .app-name{font-size:18px;margin-top:15px}.app-card .app-description{font-size:11px;line-height:1.4;max-width:120px}.app-symbol{width:47px;height:47px;border-radius:14px}.app-symbol .icon{width:26px;height:26px}.app-card .arrow{width:15px;height:15px;right:13px;top:23px}.app-card .pill{font-size:9px;right:10px;top:13px;padding:3px 6px}.quick-links{align-items:flex-start;font-size:11px;gap:12px}.quick-links a{font-size:12px}.quick-links>span{display:none}.card{padding:21px;margin-bottom:16px}.form-grid{gap:15px}.form-grid.address{grid-template-columns:minmax(0,2fr) minmax(88px,1fr)}.page-head{align-items:flex-start;flex-direction:column;margin-bottom:24px;gap:15px}h1{font-size:32px}h2{font-size:18px}.page-head .toolbar{width:100%;justify-content:space-between}.app-foot{display:none}.previewbar{gap:9px;justify-content:space-between;font-size:10px;padding-left:12px;padding-right:12px}.previewbar select{font-size:11px;max-width:114px}.previewbar .full-label{display:none}.mobile-text{display:inline}.previewbar a{font-size:11px}.login-box form{padding:23px}.login-box h1{font-size:29px}.login-page{padding-bottom:85px}.subnav{gap:21px}.scenario-options button{padding:11px}.scenario-options button strong{font-size:12px}.metrics{gap:25px;justify-content:space-between}.metric strong{font-size:21px}.metric.big strong{font-size:43px}.item-row{grid-template-columns:minmax(0,1fr) 84px}.setting-row{gap:12px}.setting-row select{max-width:120px}.pool-row{overflow:auto}.actions .button{flex:1}.profile-title{gap:14px}.profile-title .avatar{width:53px;height:53px}.notice{font-size:12px}.preview-scope{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.appbar,.previewbar,.app-foot,.actions,.subnav,.skip{display:none!important}body,html{background:white!important;color:black!important}.page{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid;background:white;border-color:#ddd}.page-head{margin-top:0}button{display:none!important}}

/* Home launcher: original artwork at full colour, one shared component set. */
body{isolation:isolate}
.ambient{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:-1;opacity:.38}
.ambient span{position:absolute;width:75vw;height:45vw;top:-34vw;left:-15vw;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.2),transparent 68%);animation:ambient-drift 22s ease-in-out infinite alternate}
.ambient span+span{left:auto;right:-35vw;top:5vh;width:60vw;height:55vw;opacity:.42;animation-delay:-11s;animation-duration:27s}
body:not([data-view=home]):not([data-view=login]):not([data-view=register-code]) .ambient{opacity:.12}
.appbar{height:78px;background:var(--glass);border-bottom:1px solid transparent;padding:0 max(30px,calc((100vw - 1240px)/2));backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.brand{gap:12px;font-weight:500;letter-spacing:.1px}
.brand-art{display:inline-grid;place-items:center;width:42px;height:42px;flex:none}
.brand .brand-art img,.brand-art img{width:100%;height:100%;object-fit:contain;background:none;border-radius:0}
.brand-art .brand-on-light{display:none}
:root[data-theme=light] .brand-art .brand-on-light{display:block}
:root[data-theme=light] .brand-art .brand-on-dark{display:none}
.brand .brand-word{font-size:16px;letter-spacing:2.4px;text-transform:uppercase}
.brand small{font-size:14px}
body[data-view=home] .brand small,body[data-view=login] .brand small{display:none}
.icon-button{width:40px;height:40px;color:var(--muted)}
.icon-button:hover{background:var(--field)}
.bar-actions{gap:8px}
.avatar{background:var(--field);color:var(--text);border:1px solid var(--line)}
.motion-button .icon{width:17px;height:17px}
.motion-button[aria-pressed=true]{opacity:.6}
.account summary{border-radius:50%}
.popover{background:var(--panel);box-shadow:0 22px 70px #0007}
.page.home-page{max-width:1160px;padding:44px 32px 106px;min-height:calc(100dvh - 110px)}
.home-greeting{margin:0 0 24px}
.home-greeting h1{font-size:clamp(42px,4.4vw,62px);letter-spacing:-2px;line-height:1.08;font-weight:650;margin:0 0 8px}
.home-greeting p{font-size:18px;letter-spacing:-.3px;margin:0;color:var(--muted)}
.app-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:32px 44px;max-width:930px;margin:0 auto;padding:10px 0 0}
.app-card{position:relative;display:flex;flex:0 0 252px;width:252px;flex-direction:column;align-items:center;text-align:center;padding:0 6px 8px;min-height:0;border:0;border-radius:30px;background:none;box-shadow:none;perspective:850px;animation:app-arrive .75s cubic-bezier(.2,.7,.2,1) both;transition:none;outline-offset:6px}
.app-card:nth-child(2){animation-delay:.07s}.app-card:nth-child(3){animation-delay:.14s}.app-card:nth-child(4){animation-delay:.21s}.app-card:nth-child(5){animation-delay:.28s}
.app-card:hover{box-shadow:none;transform:none;text-decoration:none}
.app-card .app-name{font-size:23px;letter-spacing:-.55px;font-weight:500;line-height:1.25;margin:12px 0 0;color:var(--text)}
.app-card .app-description{display:none}
.app-symbol,.app-symbol.time,.app-symbol.plan,.app-symbol.spray,.app-symbol.ninetofive,.app-symbol.docs,.app-symbol.home{display:block;width:64px;height:64px;background:none;box-shadow:none;filter:none!important;border-radius:24%;color:var(--text)}
.app-symbol .app-original{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;border-radius:24%}
.app-symbol.home .brand-art{width:100%;height:100%}
.app-card .app-symbol{width:240px;height:240px;transform:perspective(850px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--lift,0px));transition:transform .32s ease,box-shadow .35s ease;will-change:auto}
.app-card:not(.disabled):hover .app-symbol,.app-card:focus-visible .app-symbol{--lift:-5px;box-shadow:0 24px 40px -25px rgba(255,255,255,.2)}
.app-card:not(.disabled):active .app-symbol{transform:scale(.975);transition:transform .12s ease}
.app-card.disabled{opacity:1;box-shadow:none;cursor:default}
.app-card.disabled .app-name{color:var(--muted)}
.app-card .pill{position:static;order:4;display:block;padding:0;background:none;color:var(--muted);font-size:11px;font-weight:400;line-height:1.4;margin:6px 0 -21px}
.home-page .quick-links{justify-content:center;gap:30px;margin:36px 0 0;padding-top:0}
.home-page .quick-links a{font-size:12px;color:var(--muted)}
.home-page .quick-links a:hover{color:var(--text)}
.card{background:var(--panel);box-shadow:0 8px 36px #00000008}
.button{background:var(--accent);color:var(--on-accent)}
:root[data-theme=dark] .button:not(.secondary):not(.plain){color:var(--on-accent)}
.button.secondary{background:var(--field);color:var(--text)}
.button.plain{color:var(--accent);background:none}
input,select,textarea{border-color:var(--line)}
:root:not([data-theme=light]) .shift.alt{background:#19251e;color:#c0d2c4}
.result-card{background:var(--panel);border-color:var(--line)}
.result-card h2{color:var(--text)}
.login-page{padding-top:38px;min-height:calc(100dvh - 124px)}
.login-box .app-symbol.home{width:92px;height:92px;margin:0 auto 27px;background:transparent;border-radius:0}
.login-box h1{font-size:31px;font-weight:600}
.login-box form{border:1px solid var(--line);background:var(--panel);box-shadow:0 24px 90px #0002}
.login-box .forgot{margin:4px 0 0}
.app-foot{font-size:10px;opacity:.7;padding-bottom:78px}
.previewbar{padding-top:8px;padding-bottom:max(8px,env(safe-area-inset-bottom));background:var(--glass);font-size:11px;border-color:var(--line)}
.previewbar select{background:var(--field);font-size:12px}
.preview-dot{background:#8ea88e}
.dialog::backdrop{background:#0007}
body[data-motion=off] *,body[data-motion=off] *::before,body[data-motion=off] *::after{animation:none!important;transition:none!important}
body[data-motion=off] .app-card .app-symbol{transform:none!important}
body[data-page-hidden=true] *{animation-play-state:paused!important}
@keyframes ambient-drift{from{transform:translate3d(0,0,0) scale(1);opacity:.6}to{transform:translate3d(12vw,7vh,0) scale(1.15);opacity:1}}
@keyframes app-arrive{from{opacity:0;transform:translateY(13px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-color-scheme:light){:root[data-theme=auto] .brand-art .brand-on-light{display:block}:root[data-theme=auto] .brand-art .brand-on-dark{display:none}:root[data-theme=auto] .shift.alt{background:#edf2ee;color:#335540}}
@media(max-width:1000px){.page.home-page{padding-top:30px}.app-grid{gap:30px 22px;max-width:800px}.app-card{flex-basis:220px;width:220px}.app-card .app-symbol{width:208px;height:208px}.home-greeting{margin-bottom:26px}}
@media(max-width:740px){.app-grid{gap:32px 22px;max-width:510px}.app-card{flex-basis:206px;width:206px}.app-card .app-symbol{width:194px;height:194px}.appbar{padding:0 22px}.home-greeting h1{font-size:48px}.home-greeting p{font-size:16px}.brand .brand-word{font-size:14px}.page.home-page{padding:26px 22px 100px}.app-card .app-name{font-size:21px}}
@media(max-width:480px){.appbar{height:68px;padding:0 18px;gap:8px}.brand{gap:9px}.brand-art{width:34px;height:34px}.brand .brand-word{font-size:12px;letter-spacing:1.9px}.brand small{font-size:12px;padding-left:9px;margin-left:0}.bar-actions{gap:2px}.icon-button{width:34px;height:36px}.avatar{width:32px;height:32px}.page.home-page{padding:30px 18px 110px}.home-greeting{margin-bottom:24px}.home-greeting h1{font-size:45px;letter-spacing:-1.7px}.home-greeting p{font-size:16px}.app-grid{max-width:390px;gap:26px 16px;padding:0}.app-card{flex-basis:calc((100% - 16px)/2);width:calc((100% - 16px)/2);padding:0 3px 5px;border-radius:23px}.app-card .app-symbol{width:100%;height:auto;aspect-ratio:1}.app-card .app-name{font-size:20px;margin-top:9px}.app-card .pill{font-size:10px;margin-top:4px}.home-page .quick-links{gap:18px;margin-top:36px}.home-page .quick-links a{font-size:11px}.app-foot{display:none}.previewbar{gap:9px}.previewbar select{font-size:11px}.previewbar a{font-size:11px}.login-box .app-symbol.home{width:82px;height:82px}.login-box h1{font-size:29px}}
@media(max-width:359px){.brand .brand-word{display:none}.app-card .app-name{font-size:18px}.home-greeting h1{font-size:40px}.home-page .quick-links{gap:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.app-card .app-symbol{transform:none!important}.ambient{display:none}}
@media print{.ambient,.appbar,.previewbar,.app-foot,.actions,.subnav,.skip,.quick-links{display:none!important}body,html{background:#fff!important;color:#000!important}.page{padding:0;max-width:none}.card{background:#fff!important;color:#000!important;box-shadow:none}.app-card{animation:none!important}.brand-on-dark{display:none!important}.brand-on-light{display:block!important}}
/* Shared navigation and account controls, release 0.3.0 */
.app-switcher,.display-settings{position:relative}
.app-switcher>summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 13px;border:1px solid var(--line);border-radius:14px;background:var(--field);cursor:pointer;list-style:none;font-size:14px}
.app-switcher>summary::-webkit-details-marker,.display-settings>summary::-webkit-details-marker{display:none}
.app-switcher>summary:hover{background:var(--hover,var(--field))}
.switcher-panel{width:320px;max-width:calc(100vw - 32px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:12px;z-index:80}
.switcher-panel .switcher-link{display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;text-align:center;padding:12px 8px;border-radius:14px;text-decoration:none;min-height:110px;position:relative}
.switcher-link .app-symbol{width:54px;height:54px;box-shadow:none;border-radius:14px;margin:0}
.switcher-link .app-symbol.home .brand-art{width:40px;height:40px}
.switcher-link[aria-current=page]{background:var(--field);outline:1px solid var(--line)}
.switcher-link.disabled{opacity:.5}.switcher-link small{font-size:11px;color:var(--muted)}
.account-name{font-weight:600;padding:10px 12px 13px;border-bottom:1px solid var(--line)}
.account .popover{width:330px;max-width:calc(100vw - 32px)}
.popover-settings{padding:4px 12px 12px}
.popover-settings .setting-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:10px;padding:10px 0}
.popover-settings select{min-width:0;width:100%;font-size:14px;padding:9px 12px}
.popover-settings .motion-choice{font-size:13px;line-height:1.5}
.popover-settings .form-note{font-size:11px;line-height:1.45;margin-bottom:0}
.motion-choice{display:flex;gap:12px;align-items:center;margin:12px 0 6px;cursor:pointer}
.motion-choice input{width:18px;height:18px;flex-shrink:0}
.app-state-form{padding:12px 0 20px;border-bottom:1px solid var(--line);margin-bottom:12px}
.app-state-form:last-of-type{border-bottom:0}
.app-state-form>.button{margin-top:12px}
.display-settings>summary{cursor:pointer;list-style:none}
.display-settings .popover{bottom:35px;top:auto;width:300px;padding:16px;z-index:75}
body[data-signed-in="1"] [data-anonymous-display]{display:none}
[data-app-switcher][hidden]{display:none!important}
.account summary:focus-visible,.app-switcher summary:focus-visible,.display-settings summary:focus-visible{outline:2px solid var(--text);outline-offset:4px}
@media(max-width:600px){.switcher-panel{right:-56px}.app-switcher>summary{padding:8px 10px}.app-switcher>summary span{font-size:13px}.account .popover{right:0}.setting-row{gap:14px}.app-foot{flex-wrap:wrap}}
@media print{.app-switcher,.display-settings{display:none!important}}

@media(max-width:640px){body[data-signed-in="0"] .app-foot{display:flex;position:relative;padding:12px 18px 78px;gap:12px}body[data-signed-in="0"] .app-foot>span{display:none}}

/* Shared media and module components. No application copies of these styles. */
.branding-editor{border-top:1px solid var(--line);padding:16px 0}.branding-editor summary{display:flex;align-items:center;gap:16px;cursor:pointer}.branding-editor .app-symbol{width:64px;height:64px;flex:none}.branding-editor form{padding-top:20px}.media-form+.media-form{margin-top:24px;border-top:1px solid var(--line);padding-top:24px}.media-preview-image{width:128px;height:128px;object-fit:cover;border-radius:20px}.avatar{object-fit:cover}.module-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.module-nav a{padding:8px 14px;border-radius:12px;background:var(--field);color:var(--text)}.module-nav a[aria-current]{background:var(--accent);color:var(--on-accent)}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.danger{color:var(--danger)}.time-item{display:grid;grid-template-columns:1fr 120px 42px;gap:12px;align-items:end;margin:12px 0}.time-item input,.time-item select{width:100%}.inline-form{display:inline-block}.empty-note{padding:30px;text-align:center;color:var(--muted)}.scroll-table{overflow:auto}.action-row{display:flex;gap:8px;flex-wrap:wrap}.time-total{font-size:26px;font-weight:700}.time-overview td{white-space:nowrap}.field textarea,textarea{background:var(--field);color:var(--text);border:1px solid var(--line);border-radius:var(--small-radius);padding:12px;width:100%}@media(max-width:640px){.form-grid-3{grid-template-columns:1fr}.time-item{grid-template-columns:1fr 88px 34px;gap:8px}.page{padding-left:16px;padding-right:16px}}
@media print{.appbar,.app-foot,.ambient,.module-nav,.no-print{display:none!important}body{background:#fff;color:#111}.page{padding:0;max-width:none}.card{box-shadow:none;border-color:#ddd;background:#fff;color:#111}}

/* Plan functional components, centrally versioned, no app-specific stylesheet. */
.plan-module{--surface:var(--panel);--surface-2:var(--field);--accent-soft:var(--field);font-size:14px;min-width:0}.plan-module#main{width:100%;padding:0 18px;max-width:none}.plan-module #app{min-height:65vh}.plan-module .planner{height:calc(100dvh - 180px);min-height:420px}.plan-module .main-nav{padding:12px 0}.plan-module input,.plan-module select,.plan-module textarea{font-size:16px}.plan-module .primary{color:var(--bg)}
:where(.plan-module) *{box-sizing:border-box}
:where(.plan-module) button,:where(.plan-module) input,:where(.plan-module) select,:where(.plan-module) textarea{font:inherit}
:where(.plan-module) button,:where(.plan-module) a,:where(.plan-module) input,:where(.plan-module) select,:where(.plan-module) textarea{-webkit-tap-highlight-color:transparent}
:where(.plan-module) button{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:9px 14px;cursor:pointer;line-height:1.35;transition:background .12s,border-color .12s}
:where(.plan-module) button:hover{background:var(--surface-2)}
:where(.plan-module) button:disabled{opacity:.55;cursor:wait}
:where(.plan-module) button:focus-visible,:where(.plan-module) a:focus-visible,:where(.plan-module) input:focus-visible,:where(.plan-module) select:focus-visible,:where(.plan-module) textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
:where(.plan-module) button.primary,:where(.plan-module) .primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:650}
:where(.plan-module) button.primary:hover{filter:brightness(.95)}
:where(.plan-module) button.quiet{background:transparent;border-color:transparent}
:where(.plan-module) a{color:var(--accent);text-decoration:none}
:where(.plan-module) svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}
:where(.plan-module) .icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:8px;border-color:transparent;background:transparent;flex-shrink:0}
:where(.plan-module) .icon-button.small{width:28px;height:28px;padding:5px}
:where(.plan-module) .icon-button.small svg{width:17px;height:17px}
:where(.plan-module) .selected{background:var(--surface)!important;color:var(--text)!important;box-shadow:0 2px 6px #00000010}
:where(.plan-module) .muted{color:var(--muted)}
:where(.plan-module) .small{font-size:12px}
:where(.plan-module) .eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;color:var(--accent);margin-bottom:8px}
:where(.plan-module) .version{font-size:12px;color:var(--muted)}
:where(.plan-module) h1,:where(.plan-module) h2,:where(.plan-module) h3,:where(.plan-module) p{margin-top:0}
:where(.plan-module) h1{font-size:30px;line-height:1.18;letter-spacing:-.035em;margin-bottom:12px}
:where(.plan-module) h2{font-size:22px;line-height:1.25;letter-spacing:-.02em;margin-bottom:12px}
:where(.plan-module) h3{font-size:15px;margin:14px 0 10px}
:where(.plan-module) p{margin-bottom:16px}
:where(.plan-module) .main-nav{display:flex;align-items:center;gap:4px}
:where(.plan-module) .nav-button{border:0;background:transparent;color:var(--muted);padding:9px 13px;font-weight:600}
:where(.plan-module) .nav-button.active{color:var(--text);background:var(--surface-2)}
:where(.plan-module) #app{flex:1;min-height:0}
:where(.plan-module) .planner{display:flex;flex-direction:column;padding:0 24px max(10px,env(safe-area-inset-bottom))}
:where(.plan-module) .planner-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 0 8px;flex-shrink:0}
:where(.plan-module) .period-controls{display:flex;align-items:center;gap:6px;min-width:0}
:where(.plan-module) .period-controls h1{font-size:21px;margin:0;line-height:1.3;white-space:nowrap}
:where(.plan-module) .period-dates{font-size:15px;font-weight:450;letter-spacing:0;color:var(--muted);padding-left:10px}
:where(.plan-module) .view-controls{display:flex;align-items:center;gap:10px}
:where(.plan-module) .segmented{display:flex;background:var(--surface-2);border-radius:10px;padding:3px;gap:1px}
:where(.plan-module) .segmented button{border:0;background:transparent;padding:7px 13px;font-size:13px;color:var(--muted)}
:where(.plan-module) .planner-subtools{display:flex;align-items:center;gap:18px;min-height:43px;padding-bottom:10px;flex-shrink:0}
:where(.plan-module) .date-control{display:flex!important;align-items:center;gap:9px!important;font-size:12px;color:var(--muted)}
:where(.plan-module) .date-control input{padding:3px 7px!important;min-height:29px!important;background:transparent!important;width:136px;font-size:13px!important}
:where(.plan-module) .save-state{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}
:where(.plan-module) .status-dot{width:6px;height:6px;background:var(--accent);border-radius:50%}
:where(.plan-module) .add-project{margin-left:auto;font-size:13px}
:where(.plan-module) .board-scroll{flex:1;min-height:210px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);isolation:isolate;overscroll-behavior:contain;scrollbar-color:var(--line) transparent;scrollbar-width:thin}
:where(.plan-module) .planning-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px}
:where(.plan-module) .planning-table .project-column{width:240px}
:where(.plan-module) .planning-table th,:where(.plan-module) .planning-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;text-align:left;background:var(--surface)}
:where(.plan-module) .planning-table tr>*:last-child{border-right:0}
:where(.plan-module) .planning-table th{font-weight:500}
:where(.plan-module) .planning-table thead th{position:sticky;top:0;z-index:7;padding:12px 10px;background:var(--surface);border-bottom:1px solid var(--line);min-height:74px}
:where(.plan-module) .planning-table .corner{left:0;z-index:9;padding:18px 18px 12px}
:where(.plan-module) .corner span{display:block;font-size:12px;font-weight:650}
:where(.plan-module) .corner small{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:4px}
:where(.plan-module) .day-head .day-link{border:0;padding:0;background:transparent;display:flex;align-items:center;gap:7px}
:where(.plan-module) .day-link span{color:var(--muted);font-size:11px}
:where(.plan-module) .day-link strong{font-size:15px;font-weight:650}
:where(.plan-module) .day-link{border:0;background:transparent;padding:0;font-size:13px;font-weight:600}
:where(.plan-module) .is-today.day-head{box-shadow:inset 0 3px var(--accent);background:var(--accent-soft)}
:where(.plan-module) .is-today.day-head .day-link strong{color:var(--accent)}
:where(.plan-module) .calendar-label{display:block;font-size:10px;color:var(--accent);line-height:1.3;margin-top:4px;white-space:normal;overflow-wrap:anywhere}
:where(.plan-module) .calendar-label.holiday,:where(.plan-module) .calendar-label.company{color:var(--danger)}
:where(.plan-module) .week-label{display:block;font-size:10px;color:var(--muted)}
:where(.plan-module) .row-label{position:sticky;left:0;z-index:3;padding:12px 15px 12px 19px;box-shadow:inset 4px 0 var(--category,var(--line));line-height:1.35}
:where(.plan-module) .row-label button{display:block;width:100%;border:0;background:transparent;padding:0;text-align:left}
:where(.plan-module) .row-label strong{display:block;font-size:13px;font-weight:600;overflow-wrap:anywhere}
:where(.plan-module) .row-label small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:5px}
:where(.plan-module) .category-name{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:5px}
:where(.plan-module) .planning-table td{padding:5px;min-height:44px}
:where(.plan-module) .chip-stack{display:flex;flex-direction:column;gap:4px;min-height:35px;padding:2px}
:where(.plan-module) .chip{display:flex;align-items:center;gap:7px;width:100%;padding:6px 8px;min-height:30px;border:1px solid color-mix(in srgb,var(--person) 55%,var(--line));border-radius:7px;background:color-mix(in srgb,var(--person) 30%,var(--surface));color:var(--text);text-align:left;font-size:12px;font-weight:550;line-height:1.2;box-shadow:0 1px 2px #00000004;touch-action:none;user-select:none;-webkit-user-select:none}
:where(.plan-module) .chip:hover{background:color-mix(in srgb,var(--person) 35%,var(--surface));border-color:var(--person)}
:where(.plan-module) .chip[draggable=true]{cursor:grab}
:where(.plan-module) .chip:active{cursor:grabbing}
:where(.plan-module) .chip-name{min-width:0;overflow-wrap:anywhere}
:where(.plan-module) .chip small{font-size:8px;font-weight:700;padding:3px 3px;margin-left:auto;flex-shrink:0;background:var(--surface);border-radius:3px;color:var(--muted)}
:where(.plan-module) .chip-dot,:where(.plan-module) .list-dot{display:inline-block;background:var(--person);width:7px;height:7px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #00000010}
:where(.plan-module) .chip.own{outline:2px solid var(--accent);outline-offset:0}
:where(.plan-module) .chip.own .chip-name{font-weight:750}
:where(.plan-module) .section-row th,:where(.plan-module) .section-row td{background:var(--surface-2);padding:10px 17px;font-size:11px;color:var(--muted);font-weight:600}
:where(.plan-module) .section-row th{position:sticky;left:0;z-index:4}
:where(.plan-module) .absence-row .row-label{padding-top:13px;padding-bottom:13px}
:where(.plan-module) .work-closed{background:repeating-linear-gradient(135deg,var(--surface),var(--surface) 8px,var(--surface-2) 8px,var(--surface-2) 9px)!important}
:where(.plan-module) .planning-table tfoot td,:where(.plan-module) .planning-table tfoot th{position:sticky;bottom:0;z-index:5;background:var(--surface-2);border-top:2px solid var(--line);border-bottom:0;box-shadow:0 -8px 15px #00000004}
:where(.plan-module) .planning-table tfoot th{left:0;z-index:8;padding:15px 18px;font-size:12px}
:where(.plan-module) .pool-label strong,:where(.plan-module) .pool-label small{display:block}
:where(.plan-module) .pool-label small{color:var(--muted);font-weight:400;font-size:10px;margin-top:5px}
:where(.plan-module) .pool-stack{max-height:160px;min-height:30px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:2px;scrollbar-width:thin}
:where(.plan-module) .pool-count{font-size:9px;color:var(--muted);margin:3px 4px 6px}
:where(.plan-module) .pool-stack .chip{flex-shrink:0}
:where(.plan-module) .drop-over{box-shadow:inset 0 0 0 2px var(--accent)!important;background:var(--accent-soft)!important}
:where(.plan-module) .drop-invalid{box-shadow:inset 0 0 0 2px var(--danger)!important}
:where(.plan-module) .drag-source{opacity:.4}
:where(.plan-module) .touch-ghost{position:fixed;z-index:99999;pointer-events:none;box-shadow:var(--shadow);opacity:.94;transform:rotate(-2deg)}
:where(.plan-module) .plan-footer{flex-shrink:0;display:flex;justify-content:space-between;gap:16px;font-size:10px;color:var(--muted);padding:9px 2px 0}
:where(.plan-module) .empty-row{padding:20px!important;color:var(--muted)}
:where(.plan-module) .month-grid .chip{padding:5px;gap:4px;font-size:10px;min-height:26px}
:where(.plan-module) .month-grid .day-head{padding:10px 7px}
:where(.plan-module) .month-grid .day-link{flex-wrap:wrap;gap:2px}
:where(.plan-module) .month-grid .day-link strong{font-size:12px}
:where(.plan-module) .month-grid .calendar-label{font-size:9px}
:where(.plan-module) .year-grid table{min-width:1180px}
:where(.plan-module) .year-grid .planning-table thead th{padding-top:17px;padding-bottom:17px}
:where(.plan-module) .year-grid .row-label{padding-top:14px;padding-bottom:14px}
:where(.plan-module) .year-grid td{padding:6px 3px;vertical-align:middle}
:where(.plan-module) .month-value{display:flex;flex-direction:column;align-items:center;justify-content:center;border:0;background:transparent;width:100%;padding:9px 0;min-height:44px}
:where(.plan-module) .month-value strong{font-size:14px}
:where(.plan-module) .month-value span{font-size:8px;color:var(--muted)}
:where(.plan-module) .month-value.has-value{background:color-mix(in srgb,var(--category) 25%,var(--surface));border-radius:6px}
:where(.plan-module) .free-total{text-align:center!important;padding:15px 3px!important;color:var(--accent);font-size:14px;font-weight:700}
:where(.plan-module) .manage{overflow-y:auto;padding:28px max(24px,calc((100vw - 1280px)/2)) 40px}
:where(.plan-module) .manage-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
:where(.plan-module) .manage-heading h1{margin:0}
:where(.plan-module) .manage-tabs{display:flex;gap:4px;overflow-x:auto;background:var(--surface-2);border-radius:11px;padding:4px;margin-bottom:24px;scrollbar-width:thin}
:where(.plan-module) .manage-tabs button{white-space:nowrap;background:transparent;border:0;color:var(--muted);font-size:13px;padding:9px 12px}
:where(.plan-module) .manage-panel{min-height:250px}
:where(.plan-module) .section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}
:where(.plan-module) .section-heading h2{margin-bottom:6px}
:where(.plan-module) .section-heading p{max-width:780px;font-size:13px;margin-bottom:0}
:where(.plan-module) .section-heading>button{flex-shrink:0}
:where(.plan-module) .admin-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
:where(.plan-module) .admin-row{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;display:flex;align-items:center;gap:15px;text-align:left;padding:17px 19px}
:where(.plan-module) .admin-row:last-child{border-bottom:0}
:where(.plan-module) .admin-row .list-dot{width:12px;height:12px}
:where(.plan-module) .row-main{display:flex;flex-direction:column;gap:4px;min-width:0}
:where(.plan-module) .row-main strong{font-size:14px;font-weight:600;overflow-wrap:anywhere}
:where(.plan-module) .row-main small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
:where(.plan-module) .edit-label{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}
:where(.plan-module) .edit-label svg{width:15px;height:15px}
:where(.plan-module) .badge{font-size:10px;padding:3px 8px;border-radius:30px;color:var(--muted);background:var(--surface-2);margin-left:auto}
:where(.plan-module) .panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:20px}
:where(.plan-module) .system-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
:where(.plan-module) .system-grid .panel{min-width:0}
:where(.plan-module) .changelog{padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:24px}
:where(.plan-module) .changelog p{font-size:12px;color:var(--muted);margin:5px 0}
:where(.plan-module) .backup-list{margin-top:25px}
:where(.plan-module) .backup-row{padding:13px 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:10px;align-items:center}
:where(.plan-module) .backup-row strong{font-size:12px;font-weight:500}
:where(.plan-module) .backup-row small{font-size:10px;color:var(--muted);margin-left:auto}
:where(.plan-module) .backup-row .button-row{width:100%;gap:0}
:where(.plan-module) .backup-row button{font-size:11px;padding:4px 9px}
:where(.plan-module) .template-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:24px;margin-bottom:25px}
:where(.plan-module) .template-list{border:1px solid var(--line);border-radius:12px;background:var(--surface);max-height:500px;overflow-y:auto}
:where(.plan-module) .template-row{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;padding:12px 15px;border-bottom:1px solid var(--line);font-size:12px}
:where(.plan-module) .template-row:last-child{border:0}
:where(.plan-module) .template-row strong{font-weight:550;display:block}
:where(.plan-module) .template-row small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
:where(.plan-module) .template-row input{width:16px!important;min-height:16px!important}
:where(.plan-module) .template-row>span:last-child{min-width:0;overflow-wrap:anywhere}
:where(.plan-module) label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:550;margin:0;min-width:0}
:where(.plan-module) input,:where(.plan-module) select,:where(.plan-module) textarea{width:100%;min-width:0;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:10px 11px;border-radius:8px;font-size:14px;line-height:1.4;min-height:41px}
:where(.plan-module) textarea{resize:vertical}
:where(.plan-module) input[type=color]{height:42px;padding:5px}
:where(.plan-module) input[type=file]{font-size:12px;padding:9px}
:where(.plan-module) input[type=checkbox]{width:15px;min-height:15px;height:15px;margin:0;accent-color:var(--accent);flex-shrink:0}
:where(.plan-module) .check{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12px;font-weight:450;cursor:pointer}
:where(.plan-module) .check.small{font-size:11px}
:where(.plan-module) .check-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:10px 0}
:where(.plan-module) .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
:where(.plan-module) .span-2{grid-column:1/-1}
:where(.plan-module) form>label{margin-bottom:18px}
:where(.plan-module) form>button[type=submit]{margin-top:6px}
:where(.plan-module) form>.muted{margin-top:12px}
:where(.plan-module) .button-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
:where(.plan-module) .push-right{margin-left:auto}
:where(.plan-module) .danger{color:var(--danger)!important}
:where(.plan-module) .danger-button{color:var(--surface);background:var(--danger);border-color:var(--danger)}
:where(.plan-module) .notice{padding:15px 18px;border:1px solid var(--line);background:var(--surface-2);border-radius:10px;margin-bottom:20px;font-size:12px}
:where(.plan-module) .notice p{margin:8px 0 0}
:where(.plan-module) .notice.error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line));background:color-mix(in srgb,var(--danger) 6%,var(--surface))}
:where(.plan-module) .preserve{white-space:pre-wrap;overflow-wrap:anywhere}
:where(.plan-module) .loading{padding:70px 25px;text-align:center;color:var(--muted)}
:where(.plan-module) .empty{padding:clamp(30px,8vw,90px) 20px;max-width:650px;margin:0 auto;text-align:center}
:where(.plan-module) .empty p{color:var(--muted);font-size:14px}
:where(.plan-module) .empty .button-row{justify-content:center}
:where(.plan-module) .empty-small{padding:40px 20px;color:var(--muted);text-align:center}
:where(.plan-module) .checks>span{background:var(--surface);padding:7px 10px;border-radius:7px}
:where(.plan-module) .checks .ok{color:var(--accent)}
:where(.plan-module) .checks .bad{color:var(--danger)}
:where(.plan-module) dialog{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:0;width:min(540px,calc(100% - 32px));max-width:calc(100% - 32px);max-height:90dvh;overflow:auto;box-shadow:var(--shadow)}
:where(.plan-module) dialog:has(.wide){width:min(820px,calc(100% - 32px))}
:where(.plan-module) dialog::backdrop{background:#050c1559;backdrop-filter:blur(5px)}
:where(.plan-module) .modal-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 22px;border-bottom:1px solid var(--line);background:var(--surface)}
:where(.plan-module) .modal-head h2{font-size:18px;margin:0}
:where(.plan-module) .modal-body{padding:22px}
:where(.plan-module) .modal-actions{display:flex;align-items:center;gap:10px;margin-top:26px}
:where(.plan-module) .modal-body form>label{margin-bottom:17px}
:where(.plan-module) .schedule-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
:where(.plan-module) .schedule-fields select{font-size:12px;padding:9px 7px}
:where(.plan-module) .theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:var(--surface-2);padding:5px;border-radius:11px;margin-bottom:16px}
:where(.plan-module) .theme-options button{border:0;background:transparent;padding:15px 4px}
:where(.plan-module) .account-menu{display:flex;flex-direction:column;gap:10px}
#toast.plan-module{position:fixed;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translateX(-50%);max-width:min(560px,calc(100vw - 30px));padding:13px 20px;border:1px solid var(--line);border-radius:11px;background:var(--text);color:var(--bg);box-shadow:var(--shadow);z-index:999999;font-size:13px;text-align:center}
#toast.plan-module.error{background:var(--surface);color:var(--danger);border-color:var(--danger)}
:where(.plan-module) .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
:where(.plan-module) [hidden]{display:none!important}
@media (max-width:1100px){:where(.plan-module) .planner-tools{flex-wrap:wrap;gap:10px;padding-top:14px}
:where(.plan-module) .period-dates{font-size:13px}
:where(.plan-module) .period-controls h1{font-size:19px}
:where(.plan-module) .view-controls{margin-left:auto}
:where(.plan-module) .manage-tabs button{font-size:12px;padding:8px 10px}
:where(.plan-module) .planning-table .project-column{width:210px}
:where(.plan-module) .system-grid{gap:16px}}
@media (max-width:650px){:where(.plan-module) .main-nav{gap:0}
:where(.plan-module) .nav-button{font-size:11px;padding:7px 8px}
:where(.plan-module) .icon-button{width:34px;height:34px;padding:7px}
:where(.plan-module) .planner{padding:0 10px max(8px,env(safe-area-inset-bottom))}
:where(.plan-module) .planner-tools{padding:13px 0 6px;gap:10px}
:where(.plan-module) .period-controls{gap:1px;width:100%}
:where(.plan-module) .period-controls h1{font-size:18px;flex:1}
:where(.plan-module) .period-dates{font-size:11px;padding-left:5px}
:where(.plan-module) .period-controls .quiet{font-size:12px;padding:7px}
:where(.plan-module) .view-controls{width:100%;justify-content:space-between;margin:0}
:where(.plan-module) .segmented{flex:1;max-width:360px}
:where(.plan-module) .segmented button{flex:1;padding:7px 8px;font-size:12px}
:where(.plan-module) .week-tabs{max-width:none}
:where(.plan-module) .week-tabs button{padding:9px 6px;font-size:11px}
:where(.plan-module) .planner-subtools{gap:10px;padding:4px 0 8px;flex-wrap:wrap}
:where(.plan-module) .date-control{font-size:10px}
:where(.plan-module) .date-control input{font-size:12px!important;width:125px}
:where(.plan-module) .planner-subtools .check{font-size:10px}
:where(.plan-module) .save-state{font-size:10px;gap:5px;margin-left:auto}
:where(.plan-module) .add-project{font-size:11px!important;padding:5px!important}
:where(.plan-module) .planning-table .project-column{width:144px}
:where(.plan-module) .planning-table .corner{padding:14px 10px}
:where(.plan-module) .row-label{padding:11px 10px 11px 13px}
:where(.plan-module) .row-label strong{font-size:11px}
:where(.plan-module) .category-name{font-size:8px}
:where(.plan-module) .row-label small{font-size:9px}
:where(.plan-module) .planning-table td{padding:4px}
:where(.plan-module) .chip{font-size:11px;min-height:33px}
:where(.plan-module) .planning-table tfoot th{padding:12px 10px}
:where(.plan-module) .pool-stack{max-height:125px}
:where(.plan-module) .pool-label strong{font-size:11px}
:where(.plan-module) .pool-label small{font-size:9px}
:where(.plan-module) .plan-footer{font-size:9px;padding-top:6px;gap:8px}
:where(.plan-module) .plan-footer span:first-child{max-width:65%}
:where(.plan-module) .plan-footer span:last-child{text-align:right}
:where(.plan-module) .board-scroll{border-radius:10px}
:where(.plan-module) .manage{padding:20px 14px 30px}
:where(.plan-module) .manage-heading{margin-bottom:18px}
:where(.plan-module) .manage-heading h1{font-size:27px}
:where(.plan-module) .manage-tabs{margin-bottom:20px}
:where(.plan-module) .section-heading h2{font-size:20px}
:where(.plan-module) .section-heading p{font-size:12px}
:where(.plan-module) .admin-row{padding:14px 13px;gap:10px}
:where(.plan-module) .edit-label{font-size:0;gap:0}
:where(.plan-module) .row-main strong{font-size:13px}
:where(.plan-module) .row-main small{font-size:10px}
:where(.plan-module) .system-grid,:where(.plan-module) .template-grid{grid-template-columns:1fr}
:where(.plan-module) .panel{padding:19px}
:where(.plan-module) .form-grid{grid-template-columns:1fr;gap:16px}
:where(.plan-module) .span-2{grid-column:auto}
:where(.plan-module) .check-grid{grid-template-columns:1fr;gap:13px}
:where(.plan-module) .modal-head{padding:14px 17px}
:where(.plan-module) .modal-head h2{font-size:17px}
:where(.plan-module) .modal-body{padding:18px}
:where(.plan-module) input,:where(.plan-module) select,:where(.plan-module) textarea{font-size:16px}
:where(.plan-module) .schedule-fields{grid-template-columns:repeat(2,1fr)}
:where(.plan-module) .schedule-fields select{font-size:14px}
:where(.plan-module) .modal-actions{gap:6px;flex-wrap:wrap}
:where(.plan-module) .modal-actions button{font-size:13px}
:where(.plan-module) .template-list{max-height:400px}}
@media (prefers-reduced-motion:reduce){:where(.plan-module) *{scroll-behavior:auto!important;transition:none!important}}
@media  print{:where(.plan-module) .planner-tools,:where(.plan-module) .planner-subtools,:where(.plan-module) .plan-footer,:where(.plan-module) .manage,:where(.plan-module) .modal-head,#toast.plan-module{display:none!important}
:where(.plan-module) .board-scroll{overflow:visible!important;height:auto!important;border:0}
:where(.plan-module) .planning-table th,:where(.plan-module) .planning-table td{position:static!important;background:white!important;color:black!important}
:where(.plan-module) .chip{color:black!important}
:where(.plan-module) .planner{padding:0}
:where(.plan-module) .planning-table{font-size:9px}
:where(.plan-module) .pool-stack{max-height:none}}
:where(.plan-module) .date-control{flex-direction:row!important}
@media (max-width:650px){:where(.plan-module) .date-control{font-size:0;gap:0!important}
:where(.plan-module) .planner-subtools{gap:8px;flex-wrap:nowrap}
:where(.plan-module) .add-project{font-size:0!important;min-width:26px;margin-left:0}
:where(.plan-module) .add-project::after{content:"+";font-size:21px;line-height:1}
:where(.plan-module) .save-state{gap:3px}
:where(.plan-module) .planner-subtools .save-state .icon-button{width:22px}}
:where(.plan-module) .plan-frame{display:flex;flex-direction:column;flex:1;min-height:320px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
:where(.plan-module) .plan-frame>.board-scroll{min-height:145px;border:0;border-radius:0;flex:1;scrollbar-gutter:stable}
:where(.plan-module) .plan-frame .planning-table thead{position:sticky;top:0;z-index:9}
:where(.plan-module) .plan-frame .planning-table thead th{position:static;min-height:0;background:var(--surface);padding:8px 10px}
:where(.plan-module) .plan-frame .planning-table thead .corner,:where(.plan-module) .plan-frame .planning-table thead .calendar-corner{position:sticky;left:0;z-index:10}
:where(.plan-module) .plan-frame .date-row .corner{padding:11px 17px}
:where(.plan-module) .plan-frame .row-label{box-shadow:inset 7px 0 var(--category,var(--line));padding-left:20px}
:where(.plan-module) .plan-frame .project-label{background:color-mix(in srgb,var(--category) 24%,var(--surface));border-right:1px solid color-mix(in srgb,var(--category) 62%,var(--line))}
:where(.plan-module) [data-theme=dark] .plan-frame .project-label{background:color-mix(in srgb,var(--category) 18%,var(--surface))}
:where(.plan-module) .project-label .task-summary{display:block;font-size:12px;line-height:1.4;margin-top:6px;font-weight:500;overflow-wrap:anywhere;color:var(--text)}
:where(.plan-module) .project-label strong{font-size:13px;font-weight:700}
:where(.plan-module) .category-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 17px;flex-shrink:0;padding:0 1px 10px;min-height:30px;color:var(--muted);font-size:11px}
:where(.plan-module) .legend-item{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;line-height:1.5}
:where(.plan-module) .legend-item i{display:inline-block;width:15px;height:15px;background:var(--category);border:1px solid #0002;border-radius:4px;flex-shrink:0}
:where(.plan-module) .release-link{font-size:11px;padding:3px 6px;margin-left:auto;color:var(--accent)!important;white-space:nowrap}
:where(.plan-module) .plan-frame .calendar-row th{padding:5px 8px;font-size:10px;vertical-align:middle;line-height:1.25}
:where(.plan-module) .plan-frame .calendar-row .calendar-corner{padding-left:17px;color:var(--muted);font-weight:600;background:var(--surface-2)}
:where(.plan-module) .plan-frame .school-ribbon th.has-events{background:color-mix(in srgb,#5e98c5 16%,var(--surface));border-top:2px solid #7cafd5}
:where(.plan-module) .plan-frame .holiday-ribbon th.has-events{background:color-mix(in srgb,#c57852 10%,var(--surface));border-top:2px solid #c89c70}
:where(.plan-module) .calendar-info{font-size:10px;border-radius:50%;padding:0;width:17px;height:17px;margin-left:8px;color:var(--muted);background:transparent}
:where(.plan-module) .calendar-event{display:block;width:100%;border:0;border-radius:3px;padding:1px 0;background:transparent;text-align:left;font-size:10px;line-height:1.3;overflow-wrap:anywhere;color:var(--text)}
:where(.plan-module) .calendar-event:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}
:where(.plan-module) .calendar-event>span{display:block;font-weight:600}
:where(.plan-module) .calendar-event small{font-size:9px;font-weight:400;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);margin-top:2px;line-height:1.35}
:where(.plan-module) .calendar-none{color:var(--line)}
:where(.plan-module) .calendar-warning{flex-shrink:0;border:0;background:transparent;color:var(--muted);font-size:11px;text-align:left;padding:0 0 7px;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
:where(.plan-module) .calendar-detail{padding:14px 0;border-bottom:1px solid var(--line)}
:where(.plan-module) .calendar-detail h3{margin:0 0 7px;font-size:15px}
:where(.plan-module) .calendar-detail p{margin:4px 0 8px}
:where(.plan-module) .calendar-detail:last-of-type{margin-bottom:20px}
:where(.plan-module) .calendar-subscription h3{margin-top:0;font-size:17px}
:where(.plan-module) .calendar-subscription p:last-child{margin-bottom:0}
:where(.plan-module) .release-changes{margin-bottom:20px}
:where(.plan-module) .release-changes section{display:flex;gap:15px;border-bottom:1px solid var(--line);padding:11px 0;align-items:baseline}
:where(.plan-module) .release-changes section>span{color:var(--accent);font-size:11px;font-weight:700}
:where(.plan-module) .release-changes p{margin:0;font-size:14px;line-height:1.6}
:where(.plan-module) .pool-resizer{flex:none;height:15px;min-height:15px;background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:ns-resize;touch-action:none;user-select:none;position:relative;z-index:12}
:where(.plan-module) .pool-resizer span{height:3px;width:44px;border-radius:5px;background:var(--muted);opacity:.55;pointer-events:none}
:where(.plan-module) .pool-resizer:hover,:where(.plan-module) .pool-resizer:focus-visible{background:var(--accent-soft)}
:where(.plan-module) .pool-resizer:hover span,:where(.plan-module) .pool-resizer:focus-visible span{background:var(--accent);opacity:1}
:where(.plan-module) .resizing-pool,:where(.plan-module) .resizing-pool *{cursor:ns-resize!important;user-select:none!important}
:where(.plan-module) .pool-pane{height:210px;min-height:110px;flex:none;display:flex;flex-direction:column;background:var(--surface-2);overflow:hidden}
:where(.plan-module) .pool-heading{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--surface-2);font-size:12px}
:where(.plan-module) .pool-heading strong{font-weight:700}
:where(.plan-module) .pool-heading strong>span{font-weight:400;color:var(--muted)}
:where(.plan-module) .pool-heading .pool-hint{margin-left:auto;font-size:10px;color:var(--muted)}
:where(.plan-module) .pool-board{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-gutter:stable;min-height:0;flex:1}
:where(.plan-module) .pool-table th,:where(.plan-module) .pool-table td{background:var(--surface-2)}
:where(.plan-module) .plan-frame .pool-table thead th{padding:5px 10px;background:var(--surface-2);font-size:10px;color:var(--muted);font-weight:600}
:where(.plan-module) .pool-table .pool-label{background:var(--surface-2);box-shadow:none;padding:13px 17px}
:where(.plan-module) .pool-table .pool-label small{font-size:10px;margin-top:5px}
:where(.plan-module) .pool-stack{max-height:none;min-height:30px;overflow:visible;padding:2px 3px;gap:5px}
:where(.plan-module) .pool-count{font-size:10px;font-weight:500;margin:2px 4px 7px;color:var(--muted)}
:where(.plan-module) .pool-stack .chip{min-height:31px}
:where(.plan-module) .chip small{font-size:10px;padding:3px 4px;color:var(--text)}
:where(.plan-module) .pool-week-controls{display:flex;align-items:center;gap:4px;margin-left:auto}
:where(.plan-module) .pool-week-controls label{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:11px;white-space:nowrap}
:where(.plan-module) .pool-week-controls input{font-size:12px;min-height:28px;padding:3px 5px;width:133px}
:where(.plan-module) .year-frame .pool-heading .pool-hint{margin-left:0}
:where(.plan-module) .year-grid .planning-table{min-width:1320px}
:where(.plan-module) .year-grid .planning-table thead .calendar-day{padding:7px 6px}
:where(.plan-module) .year-grid .capacity-row td{background:var(--accent-soft);padding:13px 8px;color:var(--accent);text-align:center}
:where(.plan-module) .capacity-row td>small{display:block;font-size:9px;color:var(--muted)}
:where(.plan-module) .year-grid .capacity-row .row-label{background:var(--accent-soft);box-shadow:none}
:where(.plan-module) .year-grid .month-value{min-height:48px}
:where(.plan-module) .year-grid .month-value.has-value{background:color-mix(in srgb,var(--category) 30%,var(--surface))}
:where(.plan-module) .plan-footer{padding-top:7px}
:where(.plan-module) .manage .list-dot{width:15px;height:15px;border-radius:4px}
@media (max-width:1100px){:where(.plan-module) .category-legend{gap:5px 12px;font-size:10px}
:where(.plan-module) .pool-heading{padding:8px 12px}
:where(.plan-module) .year-frame .pool-hint{display:none}}
@media (max-width:640px){:where(.plan-module) .plan-frame{min-height:330px}
:where(.plan-module) .plan-frame>.board-scroll{min-height:125px}
:where(.plan-module) .category-legend{padding-bottom:8px;gap:4px 10px;font-size:10px}
:where(.plan-module) .legend-item{white-space:normal}
:where(.plan-module) .legend-item i{width:12px;height:12px;border-radius:3px}
:where(.plan-module) .pool-heading{padding:7px 9px;font-size:11px;gap:6px}
:where(.plan-module) .pool-heading strong>span,:where(.plan-module) .pool-hint{display:none}
:where(.plan-module) .pool-week-controls{gap:0}
:where(.plan-module) .pool-week-controls label{font-size:10px;gap:4px}
:where(.plan-module) .pool-week-controls input{font-size:16px;min-height:30px;width:139px}
:where(.plan-module) .pool-week-controls .icon-button.small{width:24px;padding:3px}
:where(.plan-module) .plan-frame .project-label{padding-left:13px}
:where(.plan-module) .project-label .task-summary{font-size:11px}
:where(.plan-module) .plan-frame .calendar-row .calendar-corner{padding-left:12px;font-size:10px}
:where(.plan-module) .calendar-info{margin-left:5px}
:where(.plan-module) .pool-resizer{height:19px;min-height:19px}
:where(.plan-module) .pool-table .pool-label{padding-left:12px}
:where(.plan-module) .calendar-warning{font-size:10px}
:where(.plan-module) .plan-footer{font-size:9px;gap:9px;flex-wrap:wrap}
:where(.plan-module) .release-changes p{font-size:13px}
:where(.plan-module) .release-changes section{gap:10px}
:where(.plan-module) .year-frame .pool-heading{flex-wrap:wrap}
:where(.plan-module) .year-frame .pool-week-controls{margin-left:auto}}
@media (max-height:640px){:where(.plan-module) .plan-frame{min-height:310px}
:where(.plan-module) .category-legend{padding-bottom:6px}
:where(.plan-module) .planner-tools{padding-top:8px}
:where(.plan-module) .planner-subtools{padding-bottom:5px}}
:where(.plan-module) .planner{--label-width:216px;--day-width:154px;--grid-font:12px;--name-font:12px;--cell-pad:4px;--card-pad:5px;--card-min:29px;--row-pad:10px;--week-line:#8697a0}
:where(.plan-module) [data-theme=dark] .planner{--week-line:#6d8794}
:where(.plan-module) .planner .planning-table .project-column{width:var(--label-width)}
:where(.plan-module) .planner .planning-table{font-size:var(--grid-font)}
:where(.plan-module) .planner .planning-table td{padding:var(--cell-pad)}
:where(.plan-module) .planner .row-label,:where(.plan-module) .planner .absence-row .row-label{padding-top:var(--row-pad);padding-bottom:var(--row-pad)}
:where(.plan-module) .planner .row-label strong{font-size:calc(var(--grid-font) + 1px)}
:where(.plan-module) .planner .project-label .task-summary{font-size:var(--grid-font);line-height:1.25;margin-top:4px}
:where(.plan-module) .planner .chip,:where(.plan-module) .planner .pool-stack .chip,:where(.plan-module) .planner .month-grid .chip{min-height:var(--card-min);padding:var(--card-pad) calc(var(--card-pad) + 1px);font-size:var(--name-font);gap:4px;touch-action:pan-x pan-y}
:where(.plan-module) .chip-copy{display:flex;flex-direction:column;min-width:0;flex:1;gap:3px}
:where(.plan-module) .chip-name{display:block;font-weight:600;line-height:1.22;overflow-wrap:anywhere}
:where(.plan-module) .chip-comment{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;font-size:calc(var(--name-font) - 1px);font-weight:400;line-height:1.3;color:var(--text);opacity:.87}
:where(.plan-module) .half-mark{font-size:calc(var(--name-font) + 2px);font-weight:750;color:var(--text)}
:where(.plan-module) .half-chip{border-style:dashed}
:where(.plan-module) .external-chip{box-shadow:inset 2px 0 color-mix(in srgb,var(--person) 65%,var(--text))}
:where(.plan-module) .chip .ext-mark,:where(.plan-module) .chip .multi-mark{font-size:8px;padding:2px;align-self:flex-start;flex:none;margin-left:0}
:where(.plan-module) .chip-grip{display:none;touch-action:none;cursor:grab;font-size:18px;line-height:24px;width:24px;flex:none;text-align:center;opacity:.55}
:where(.plan-module) .chip-stack,:where(.plan-module) .pool-stack{gap:3px;padding:1px;min-height:27px}
:where(.plan-module) .planner .planning-table th.week-start,:where(.plan-module) .planner .planning-table td.week-start{border-left:3px solid var(--week-line)}
:where(.plan-module) .week-label{font-size:9px;font-weight:700;letter-spacing:.03em;margin-top:3px;color:var(--accent)}
:where(.plan-module) .planner .day-link strong{font-size:calc(var(--grid-font) + 2px)}
:where(.plan-module) .planner .day-link span{font-size:var(--grid-font)}
:where(.plan-module) .planner .plan-frame .planning-table thead th{padding:6px 7px}
:where(.plan-module) .planner .plan-frame .planning-table thead .calendar-corner{padding:4px 12px}
:where(.plan-module) .planner .plan-frame .calendar-row th{font-size:var(--grid-font);padding:3px 6px}
:where(.plan-module) .planner .calendar-event{font-size:calc(var(--grid-font) - 1px);padding:1px 0;min-height:20px}
:where(.plan-module) .planner .calendar-event>span{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
:where(.plan-module) .planner .calendar-event small{-webkit-line-clamp:1;font-size:9px}
:where(.plan-module) .planner .section-row th,:where(.plan-module) .planner .section-row td{padding:6px 13px}
:where(.plan-module) .planner .pool-table .pool-label{padding:8px 13px}
:where(.plan-module) .pool-count{font-size:9px;margin:1px 3px 4px}
:where(.plan-module) .pool-pane{min-height:100px}
:where(.plan-module) .pool-heading{padding:5px 13px}
:where(.plan-module) .pool-resizer{height:15px;min-height:15px}
:where(.plan-module) .external-pool-row>th,:where(.plan-module) .external-pool-row>td{border-top:2px solid var(--week-line);background:color-mix(in srgb,var(--accent) 5%,var(--surface-2))!important}
:where(.plan-module) .external-pool-row .pool-label strong{font-size:11px}
:where(.plan-module) .external-pool-row .pool-label small{line-height:1.3}
:where(.plan-module) .density-control{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:11px;color:var(--muted);white-space:nowrap}
:where(.plan-module) .density-control select{font-size:12px;min-height:30px;width:82px;padding:3px 8px}
:where(.plan-module) .planner-subtools [hidden]{display:none!important}
:where(.plan-module) .assignment-date{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--muted);font-size:12px}
:where(.plan-module) .assignment-actions{display:flex;flex-wrap:wrap;gap:7px;padding:0 0 15px;margin-bottom:15px;border-bottom:1px solid var(--line)}
:where(.plan-module) .assignment-actions button{font-size:12px;padding:8px 10px}
:where(.plan-module) .private-note{margin:4px 0 18px;border:1px solid var(--line);padding:10px 12px;border-radius:9px}
:where(.plan-module) .private-note summary{cursor:pointer;font-size:12px;color:var(--muted)}
:where(.plan-module) .private-note label{margin-top:12px}
:where(.plan-module) .appointment-note{padding:15px 17px;background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:7px;margin:15px 0}
:where(.plan-module) .weekday-picker{display:flex;flex-wrap:wrap;gap:13px;padding:5px 0}
:where(.plan-module) .range-shortcuts{margin-bottom:17px}
:where(.plan-module) .range-shortcuts button{font-size:12px}
:where(.plan-module) .range-counts{padding:13px 16px;background:var(--accent-soft);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px 22px;margin-bottom:16px}
:where(.plan-module) .range-counts span{color:var(--muted);font-size:12px}
:where(.plan-module) .range-preview{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:9px;margin:12px 0 20px}
:where(.plan-module) .range-preview-row{display:flex;justify-content:space-between;gap:12px;padding:8px 13px;font-size:12px;border-bottom:1px solid var(--line)}
:where(.plan-module) .range-preview-row.conflict,:where(.plan-module) .range-preview-row.unavailable{color:var(--muted);background:var(--surface-2)}
:where(.plan-module) .range-preview-row.replaced{color:var(--danger)}
:where(.plan-module) .year-utilisation{flex:1;min-height:0;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 30px 28px;scrollbar-width:thin}
:where(.plan-module) .util-intro{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:18px}
:where(.plan-module) .util-intro h2{font-size:24px;margin-bottom:9px}
:where(.plan-module) .util-intro p{margin-bottom:0;font-size:13px}
:where(.plan-module) .util-total{text-align:right;flex:none}
:where(.plan-module) .util-total strong{display:block;color:var(--accent);font-size:36px;letter-spacing:-.05em;line-height:1.2}
:where(.plan-module) .util-total>span{font-size:11px;color:var(--muted)}
:where(.plan-module) .util-legend{display:flex;align-items:center;gap:17px;font-size:11px;color:var(--muted);margin-bottom:20px;flex-wrap:wrap}
:where(.plan-module) .util-legend>span{display:flex;align-items:center;gap:6px}
:where(.plan-module) .util-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
:where(.plan-module) .util-legend button{font-size:11px;margin-left:auto;padding:3px}
:where(.plan-module) .util-projects{background:#448e94}
:where(.plan-module) .util-absences{background:#c29e68}
:where(.plan-module) .util-external{background:#9472ad}
:where(.plan-module) .util-free,:where(.plan-module) .util-base{background:var(--surface-2)}
:where(.plan-module) [data-theme=dark] .util-projects{background:#73aeb4}
:where(.plan-module) [data-theme=dark] .util-absences{background:#b39970}
:where(.plan-module) [data-theme=dark] .util-external{background:#ab8dca}
:where(.plan-module) .util-axis,:where(.plan-module) .util-row{display:grid;grid-template-columns:160px minmax(80px,1fr) 112px;align-items:center;gap:22px}
:where(.plan-module) .util-axis{font-size:10px;color:var(--muted);padding:0 12px 7px}
:where(.plan-module) .util-axis>div{position:relative}
:where(.plan-module) .util-axis .hundred-label{position:absolute;transform:translateX(-100%)}
:where(.plan-module) .util-axis .axis-end{position:absolute;right:0}
:where(.plan-module) .util-axis>span:last-child{text-align:right}
:where(.plan-module) .util-row{width:100%;text-align:left;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:12px;min-height:54px}
:where(.plan-module) .util-row:hover{background:var(--surface-2)}
:where(.plan-module) .util-month strong{display:block;font-size:13px}
:where(.plan-module) .util-month small{display:block;font-size:10px;color:var(--muted);margin-top:4px;line-height:1.3}
:where(.plan-module) .util-track{display:block;position:relative;height:23px;min-width:0}
:where(.plan-module) .util-base{position:absolute;height:100%;left:0;top:0;border-radius:4px;border:1px solid var(--line)}
:where(.plan-module) .util-fill{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;overflow:hidden;border-radius:4px}
:where(.plan-module) .util-fill>span{display:block;height:100%;flex-shrink:0;min-width:0}
:where(.plan-module) .util-limit{position:absolute;top:-5px;height:33px;border-left:1px dashed var(--muted);opacity:.65;z-index:1}
:where(.plan-module) .util-value{text-align:right}
:where(.plan-module) .util-value strong{display:block;font-size:15px;font-variant-numeric:tabular-nums}
:where(.plan-module) .util-value small{font-size:10px;color:var(--muted);display:block;margin-top:3px}
:where(.plan-module) .util-explanation{border-top:1px solid var(--line);margin-top:14px;padding-top:17px;font-size:12px;color:var(--muted)}
:where(.plan-module) .util-explanation summary{cursor:pointer;color:var(--text);font-weight:600;padding-bottom:10px}
:where(.plan-module) .util-explanation p{max-width:950px;margin:7px 0 12px;line-height:1.65}
@media (pointer:coarse){:where(.plan-module) .chip-grip{display:block}}
@media (max-width:700px){:where(.plan-module) .planner{padding-left:8px;padding-right:8px;--label-width:142px;--day-width:110px;--grid-font:12px;--name-font:12px}
:where(.plan-module) .main-nav{gap:0}
:where(.plan-module) .nav-button{font-size:11px;padding:7px 8px}
:where(.plan-module) .planner-tools{padding:10px 0 6px;gap:7px}
:where(.plan-module) .period-controls h1{font-size:17px}
:where(.plan-module) .period-dates{font-size:10px;padding-left:6px}
:where(.plan-module) .period-controls .icon-button{width:27px;height:30px;padding:4px}
:where(.plan-module) .period-controls>.quiet{font-size:11px;padding:5px}
:where(.plan-module) .segmented button{padding:6px 10px;font-size:12px}
:where(.plan-module) .view-controls{gap:3px}
:where(.plan-module) .planner-subtools{gap:7px;min-height:37px;padding-bottom:5px}
:where(.plan-module) .date-control input{width:122px;font-size:16px!important;min-height:30px!important}
:where(.plan-module) .density-control{font-size:0;gap:0}
:where(.plan-module) .density-control select{font-size:16px;width:86px;min-height:32px;padding:3px 5px}
:where(.plan-module) .save-state{font-size:0;gap:0}
:where(.plan-module) .save-state .status-dot{display:none}
:where(.plan-module) .planner-subtools .check{font-size:10px}
:where(.plan-module) .planner-subtools .check input{width:14px;height:14px;margin:0}
:where(.plan-module) .planner-subtools .add-project{margin-left:auto}
:where(.plan-module) .category-legend{flex-wrap:nowrap;overflow-x:auto;gap:12px;padding-bottom:6px;min-height:25px;scrollbar-width:none}
:where(.plan-module) .category-legend .legend-item{font-size:9px;white-space:nowrap;flex:none}
:where(.plan-module) .legend-item i{width:10px;height:10px}
:where(.plan-module) .category-legend .release-link{margin-left:0;font-size:9px;padding-right:5px}
:where(.plan-module) .plan-frame{min-height:280px}
:where(.plan-module) .plan-frame>.board-scroll{min-height:110px}
:where(.plan-module) .planner .plan-frame .row-label{padding-left:10px;box-shadow:inset 5px 0 var(--category,var(--line))}
:where(.plan-module) .planner .plan-frame .planning-table thead th{padding:5px 3px}
:where(.plan-module) .planner .plan-frame .planning-table thead .corner{padding-left:8px}
:where(.plan-module) .planner .plan-frame .calendar-row .calendar-corner{padding-left:8px;font-size:9px}
:where(.plan-module) .calendar-info{margin-left:3px;width:16px;height:16px;vertical-align:middle}
:where(.plan-module) .planner .calendar-event{font-size:9px}
:where(.plan-module) .planner .calendar-event small{font-size:8px}
:where(.plan-module) .calendar-warning{max-width:100%;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.plan-module) .day-head .day-link{display:flex;flex-direction:column;gap:1px;align-items:flex-start}
:where(.plan-module) .week-label{font-size:8px;margin-top:2px}
:where(.plan-module) .planner .chip-dot{display:none}
:where(.plan-module) .planner .chip-copy{gap:2px}
:where(.plan-module) .planner .chip small{font-size:8px;padding:1px}
:where(.plan-module) .chip-comment{font-size:10px;line-height:1.28}
:where(.plan-module) .planner .chip{gap:2px}
:where(.plan-module) .planner .pool-table .pool-label{padding:7px 8px}
:where(.plan-module) .pool-label small{font-size:9px!important}
:where(.plan-module) .pool-heading{padding:5px 9px;font-size:11px}
:where(.plan-module) .pool-resizer{height:17px;min-height:17px}
:where(.plan-module) .pool-count{font-size:8px;margin:1px 1px 4px}
:where(.plan-module) .pool-table .corner{font-size:10px}
:where(.plan-module) .pool-table .pool-day{font-size:9px!important}
:where(.plan-module) .external-pool-row .pool-label strong{font-size:10px}
:where(.plan-module) .plan-footer{padding-top:5px;font-size:8px;gap:3px}
:where(.plan-module) .plan-footer span:first-child{display:none}
:where(.plan-module) .year-utilisation{padding:17px 11px}
:where(.plan-module) .util-intro{gap:12px;align-items:flex-start;margin-bottom:14px}
:where(.plan-module) .util-intro h2{font-size:18px}
:where(.plan-module) .util-intro p{font-size:11px}
:where(.plan-module) .util-total strong{font-size:26px}
:where(.plan-module) .util-total>span{display:block;font-size:9px;max-width:95px}
:where(.plan-module) .util-legend{gap:9px;font-size:10px;margin-bottom:17px}
:where(.plan-module) .util-legend button{font-size:9px}
:where(.plan-module) .util-axis,:where(.plan-module) .util-row{grid-template-columns:77px minmax(75px,1fr) 62px;gap:9px}
:where(.plan-module) .util-row{padding:11px 3px;min-height:54px}
:where(.plan-module) .util-axis{font-size:9px;padding-left:3px;padding-right:3px}
:where(.plan-module) .util-month strong{font-size:11px}
:where(.plan-module) .util-month small{font-size:8px;overflow-wrap:anywhere}
:where(.plan-module) .util-value strong{font-size:13px}
:where(.plan-module) .util-value small{font-size:8px}
:where(.plan-module) .util-track{height:20px}
:where(.plan-module) .util-limit{height:28px;top:-4px}
:where(.plan-module) .assignment-actions button{font-size:12px;min-height:36px}
:where(.plan-module) .weekday-picker{gap:9px}
:where(.plan-module) .range-counts{padding:10px}
:where(.plan-module) .range-preview-row{padding:8px 9px;font-size:11px}}
@media (max-width:370px){:where(.plan-module) .nav-button{padding:6px;font-size:10px}
:where(.plan-module) .planner-subtools{gap:4px}
:where(.plan-module) .date-control input{width:115px}
:where(.plan-module) .density-control select{width:78px}
:where(.plan-module) .period-dates{font-size:9px}}
:where(.plan-module) .util-axis .hundred-label,:where(.plan-module) .util-axis .axis-end{white-space:nowrap}
@media (min-width:701px){:where(.plan-module) .util-row{padding:8px 12px;min-height:47px}
:where(.plan-module) .util-month small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
:where(.plan-module) .util-legend{margin-bottom:16px}}
:where(.plan-module) .planner{--plan-zoom:1}
:where(.plan-module) .planner[data-density="75"]{--plan-zoom:.75}
:where(.plan-module) .planner[data-density="50"]{--plan-zoom:.5}
:where(.plan-module) .planner[data-density="25"]{--plan-zoom:.25}
:where(.plan-module) .planner .planning-table,:where(.plan-module) .planner .year-canvas{zoom:var(--plan-zoom);width:100%}
:where(.plan-module) .undo-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:6px 9px;background:transparent;font-size:11px;white-space:nowrap}
:where(.plan-module) .undo-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
:where(.plan-module) .undo-button:disabled{opacity:.35;cursor:default}
:where(.plan-module) .date-meta{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:24px}
:where(.plan-module) .date-meta .week-label{margin:0}
:where(.plan-module) .calendar-marker{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:26px;min-height:24px;padding:5px;border:0;background:transparent;border-radius:6px;color:var(--muted)}
:where(.plan-module) .calendar-marker:hover,:where(.plan-module) .calendar-marker:focus-visible{background:var(--accent-soft)}
:where(.plan-module) .calendar-marker i{display:block;width:6px;height:6px;border-radius:50%;flex-shrink:0}
:where(.plan-module) .mark-school{background:#7c97b8}
:where(.plan-module) .mark-holiday{background:#b09870}
:where(.plan-module) [data-theme=dark] .mark-school{background:#a2b9d9}
:where(.plan-module) [data-theme=dark] .mark-holiday{background:#d0b589}
:where(.plan-module) .compact-warning{font-size:10px;line-height:1.4;align-self:flex-start;margin:0 0 5px;padding:1px 5px;max-width:none}
:where(.plan-module) .compact-warning>span{font-weight:700;margin-right:3px}
:where(.plan-module) .planner .pool-count-cell{height:23px;padding:2px 5px;border-bottom:0}
:where(.plan-module) .planner .pool-person-row>td{padding-top:1px;padding-bottom:1px;border-bottom:1px solid color-mix(in srgb,var(--line) 45%,transparent);vertical-align:top}
:where(.plan-module) .pool-person-row[data-external="true"]>td{background:color-mix(in srgb,var(--accent) 5%,var(--surface-2))}
:where(.plan-module) .planner .pool-slot{gap:3px;min-height:var(--card-min);padding:1px}
:where(.plan-module) .pool-empty{min-height:var(--card-min);height:var(--card-min);border:1px dashed color-mix(in srgb,var(--line) 65%,transparent);border-radius:6px;background:transparent}
:where(.plan-module) .planner .pool-table .pool-label{vertical-align:top;box-shadow:none}
:where(.plan-module) .pool-person-row .chip-grip{align-self:center}
:where(.plan-module) .util-month-wrap{position:relative}
:where(.plan-module) .year-event-marker{position:absolute;top:50%;left:137px;transform:translateY(-50%)}
@media (max-width:700px){:where(.plan-module) .undo-button{width:32px;min-width:32px;min-height:32px;padding:5px}
:where(.plan-module) .undo-button>span{display:none}
:where(.plan-module) .view-controls{gap:4px}
:where(.plan-module) .calendar-marker{min-width:26px;min-height:24px}
:where(.plan-module) .date-meta{min-height:24px}
:where(.plan-module) .year-event-marker{left:57px}}
@media (pointer:coarse){:where(.plan-module) .planner[data-density="50"] .chip-grip,:where(.plan-module) .planner[data-density="25"] .chip-grip{display:none}}
@media  print{:where(.plan-module) .undo-button,:where(.plan-module) .calendar-marker,:where(.plan-module) .compact-warning{display:none!important}
:where(.plan-module) .planner .planning-table,:where(.plan-module) .planner .year-canvas{zoom:1;width:100%}}
:where(.plan-module) [hidden]{display:none!important}
:where(.plan-module) .planner{--label-width:200px;--day-width:136px;--effective-day-width:136px;--holiday-ink:#a5363a;--holiday-fill:#faeeee}
:where(.plan-module) .planner .weekday-column{width:var(--effective-day-width)}
:where(.plan-module) .planner .weekend-column{width:calc(var(--effective-day-width) * .25)}
:where(.plan-module) .planner .weekend-day{padding-left:2px!important;padding-right:2px!important;background:color-mix(in srgb,var(--muted) 7%,var(--surface))}
:where(.plan-module) .planner .weekend-day .day-heading{overflow:hidden}
:where(.plan-module) .planner .weekend-day .day-heading strong,:where(.plan-module) .planner .weekend-day .day-heading small{font-size:11px}
:where(.plan-module) .planner .weekend-day .date-meta{flex-direction:column;gap:0;justify-content:flex-start}
:where(.plan-module) .planner .weekend-day .date-meta .week-label{font-size:8px}
:where(.plan-module) .planner .weekend-day .chip{padding-left:2px;padding-right:2px;gap:1px;overflow:hidden}
:where(.plan-module) .planner .weekend-day .chip-grip,:where(.plan-module) .planner .weekend-day .chip-comment,:where(.plan-module) .planner .weekend-day .chip-multi{display:none}
:where(.plan-module) .planner .weekend-day .chip-name{overflow:hidden;text-overflow:ellipsis}
:where(.plan-module) .planner .weekend-day .pool-count{white-space:normal;overflow:hidden}
:where(.plan-module) .planner .national-day{background:var(--holiday-fill)!important}
:where(.plan-module) .planner thead .national-day{border-bottom:3px solid var(--holiday-ink)}
:where(.plan-module) .calendar-marker.national-marker{background:var(--holiday-ink);color:white;border:0;width:auto;min-width:25px;min-height:23px;padding:2px 4px;border-radius:5px;font-size:10px;font-weight:800}
:where(.plan-module) .national-mark{font-size:10px;letter-spacing:.02em}
:where(.plan-module) .planner .section-row th,:where(.plan-module) .planner .section-row td{border-top:3px solid var(--week-line);border-bottom:1px solid var(--week-line);background:color-mix(in srgb,var(--accent) 18%,var(--surface-2))!important;padding-top:9px;padding-bottom:9px;font-weight:750}
:where(.plan-module) .pool-pane.pool-collapsed{height:auto!important;min-height:0;flex-shrink:0}
:where(.plan-module) button.pool-heading{display:flex;width:100%;flex-shrink:0;border:0;border-radius:0;color:var(--text);background:var(--surface-2);text-align:left;justify-content:flex-start;min-height:34px;cursor:pointer}
:where(.plan-module) button.pool-heading:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface-2))}
:where(.plan-module) .pool-heading .pool-toggle-icon{margin-left:auto;display:flex}
:where(.plan-module) .pool-toggle-icon svg{width:17px;height:17px}
:where(.plan-module) .pool-heading[aria-expanded="false"] .pool-toggle-icon{transform:rotate(-90deg)}
:where(.plan-module) .zoom-controls{display:flex;align-items:center;gap:5px}
:where(.plan-module) .zoom-controls select{max-width:95px}
:where(.plan-module) #density-slider{width:100px;min-height:26px;padding:0;accent-color:var(--accent);cursor:ew-resize}
:where(.plan-module) .holiday-warning{padding:15px;border:1px solid #b75b61;border-radius:12px;background:color-mix(in srgb,#b75b61 9%,var(--surface));margin:15px 0}
:where(.plan-module) .holiday-warning p{font-size:13px;line-height:1.5}
:where(.plan-module) .admin-select-row{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:4px;padding-left:12px;border-radius:8px}
:where(.plan-module) .admin-select-row>.admin-row{flex:1;min-width:0;border-bottom:0;text-align:left}
:where(.plan-module) .admin-select-row>input[type="checkbox"]{width:20px;height:20px;min-height:20px;padding:0;flex:0 0 20px;accent-color:var(--accent)}
:where(.plan-module) .admin-select-row.is-selected{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
:where(.plan-module) .selection-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);margin-bottom:7px}
:where(.plan-module) .selection-tools .check{margin:0;white-space:nowrap}
:where(.plan-module) .selection-actions{margin-left:auto;gap:5px;flex-wrap:wrap}
:where(.plan-module) .selection-actions button{font-size:12px;min-height:34px}
:where(.plan-module) .bulk-names{display:flex;flex-wrap:wrap;gap:5px;max-height:200px;overflow:auto;margin-bottom:16px}
:where(.plan-module) .bulk-names span{background:var(--surface-2);padding:5px 8px;border-radius:5px;font-size:13px}
:where(.plan-module) .import-or{margin:10px 0;color:var(--muted);font-size:12px}
:where(.plan-module) .import-sample{max-height:180px;overflow:auto;margin:16px 0;border:1px solid var(--line);border-radius:8px;font-size:12px}
:where(.plan-module) .import-sample table{border-collapse:collapse;min-width:100%}
:where(.plan-module) .import-sample td{padding:7px 10px;border:1px solid var(--line);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.plan-module) .import-preview{max-height:350px;overflow:auto;margin:12px 0;border-block:1px solid var(--line)}
:where(.plan-module) .import-result{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid var(--line);font-size:13px}
:where(.plan-module) .import-result>input{width:18px;min-height:18px;padding:0}
:where(.plan-module) .import-result>span{flex:1;min-width:0}
:where(.plan-module) .import-result strong,:where(.plan-module) .import-result small{display:block}
:where(.plan-module) .import-result small{color:var(--muted);margin-top:3px}
:where(.plan-module) .import-result.error{background:color-mix(in srgb,#c96060 10%,var(--surface))}
:where(.plan-module) .import-result.duplicate{opacity:.7}
:where(.plan-module) .weekly-model{grid-column:1/-1}
:where(.plan-module) .weekly-day{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start;padding:6px 0}
:where(.plan-module) .weekly-day>strong{padding-top:11px}
:where(.plan-module) .weekly-halves{display:grid;grid-template-columns:1fr 1fr;gap:8px;grid-column:2}
@media (max-width:680px){:where(.plan-module) .planner{--label-width:136px;--day-width:100px}
:where(.plan-module) .zoom-controls{gap:3px}
:where(.plan-module) #density-slider{width:70px}
:where(.plan-module) .selection-tools{gap:9px}
:where(.plan-module) .selection-actions{margin-left:0;width:100%}
:where(.plan-module) .admin-select-row{padding-left:3px}
:where(.plan-module) .admin-row .edit-label{font-size:0}
:where(.plan-module) .section-heading>.button-row{flex-wrap:wrap;justify-content:flex-end}
:where(.plan-module) .weekly-day{grid-template-columns:30px 1fr;gap:5px}
:where(.plan-module) .weekly-halves{grid-template-columns:1fr}
:where(.plan-module) .planner .weekend-day .chip{font-size:11px}
:where(.plan-module) .planner .weekend-day .pool-count{font-size:8px}
:where(.plan-module) .calendar-marker.national-marker{min-width:22px;font-size:9px}}
:where(.plan-module) .pool-pane.is-collapsed{height:auto!important;min-height:0;flex-shrink:0}
:where(.plan-module) .pool-chevron{margin-left:auto;font-size:12px}
:where(.plan-module) .weekly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
:where(.plan-module) .weekly-day{display:block}
:where(.plan-module) .weekly-day>label{margin:0}
:where(.plan-module) .weekly-halves{margin-top:7px}
:where(.plan-module) .weekly-halves label{font-size:11px}
@media (max-width:680px){:where(.plan-module) .weekly-grid{grid-template-columns:1fr 1fr;gap:5px 10px}
:where(.plan-module) .weekly-halves{grid-template-columns:1fr}}
:where(.plan-module) .planner .chip-name{overflow-wrap:normal;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
@media (max-width:700px){:where(.plan-module) .planner-subtools{flex-wrap:wrap}
:where(.plan-module) .planner-subtools .date-control{flex-shrink:0}
:where(.plan-module) .planner-subtools .date-control input{width:116px;max-width:none}
:where(.plan-module) .planner-subtools .check{white-space:nowrap}
:where(.plan-module) .zoom-controls{gap:4px}
:where(.plan-module) #density-slider{width:58px}
:where(.plan-module) .density-control select{width:71px}
:where(.plan-module) .planner-subtools{gap:5px}
:where(.plan-module) .planner-subtools .add-project{margin-left:0}}
@media (max-width:700px){:where(.plan-module) .planner-subtools .zoom-controls{flex:1;min-width:104px}
:where(.plan-module) .planner-subtools #density-slider{width:50px;min-width:28px;flex:1}
:where(.plan-module) .planner-subtools .save-state{margin-left:0}}

/* Spray functional components in the central design release. */
:where(.spray-module) *{ box-sizing: border-box; }
:where(.spray-module) button,:where(.spray-module) input,:where(.spray-module) select{ font: inherit; }
:where(.spray-module) button{ color: inherit; }
:where(.spray-module) .dialog-header h2{ margin: 2px 0 0; font-size: 22px; line-height: 1.1; }
:where(.spray-module) .eyebrow,:where(.spray-module) .step{ display: block; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
:where(.spray-module) .header-actions{ display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
:where(.spray-module) .button,:where(.spray-module) .icon-button,:where(.spray-module) .text-button,:where(.spray-module) .settings-strip{ border: 0; cursor: pointer; }
:where(.spray-module) .button{
  min-height: 42px;
  padding: 10px 17px;
  border: 1px solid var(--line-dark);
  border-radius: var(--radius);
  background: var(--surface);
  font-weight: 700;
}
:where(.spray-module) .button:hover{ border-color: var(--ink); }
:where(.spray-module) .button:focus-visible,:where(.spray-module) .icon-button:focus-visible,:where(.spray-module) .text-button:focus-visible,:where(.spray-module) .settings-strip:focus-visible{ outline: 3px solid rgba(0,0,0,.22); outline-offset: 2px; }
:where(.spray-module) .button.primary{ color: var(--on-accent); border-color: var(--accent); background: var(--accent); }
:where(.spray-module) .button.primary:hover{ background: #333; }
:where(.spray-module) .button.large{ min-width: 230px; min-height: 48px; }
:where(.spray-module) .button.ghost{ background: transparent; }
:where(.spray-module) .button.danger{ color: var(--danger); border-color: #d9b6b6; }
:where(.spray-module) .button.small{ min-height: 34px; padding: 6px 10px; font-size: 13px; }
:where(.spray-module) .spray-content{ max-width: 1500px; margin: 0 auto; padding: 22px 24px 64px; }
:where(.spray-module) .settings-strip{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 66px;
  margin-bottom: 18px;
  padding: 12px 18px;
  text-align: left;
  background: #242424;
  color: var(--on-accent);
  border-radius: var(--radius);
}
:where(.spray-module) .settings-title{ display: block; font-size: 14px; font-weight: 800; }
:where(.spray-module) .settings-summary{ display: block; margin-top: 2px; color: #d2d2d2; font-size: 13px; }
:where(.spray-module) .settings-action{ flex: 0 0 auto; color: var(--on-accent); font-weight: 800; }
:where(.spray-module) .workspace{ display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: start; }
:where(.spray-module) .content-column{ min-width: 0; display: grid; gap: 18px; }
:where(.spray-module) .summary-column{ display: grid; gap: 18px; position: sticky; top: 18px; }
:where(.spray-module) .summary-actions{ grid-column: 1 / -1; }
:where(.spray-module) .summary-actions .button{ width: 100%; }
:where(.spray-module) .panel,:where(.spray-module) .summary-card{ background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
:where(.spray-module) .panel{ padding: 24px; }
:where(.spray-module) .summary-card{ padding: 26px; background: #191919; color: var(--on-accent); border-color: #191919; }
:where(.spray-module) .section-heading{ display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
:where(.spray-module) .section-heading h2{ margin: 3px 0 0; font-size: 21px; line-height: 1.2; }
:where(.spray-module) .small-heading{ margin-bottom: 14px; }
:where(.spray-module) .small-heading h2{ font-size: 17px; }
:where(.spray-module) .text-button{ padding: 4px 0; background: transparent; color: var(--muted); text-decoration: underline; }
:where(.spray-module) .status-badge,:where(.spray-module) .count-badge{ display: inline-flex; align-items: center; min-height: 28px; padding: 4px 9px; color: var(--muted); background: var(--soft); border-radius: 30px; font-size: 12px; font-weight: 700; }
:where(.spray-module) .count-badge{ min-width: 28px; justify-content: center; color: var(--on-accent); background: var(--ink); }
:where(.spray-module) .field-grid{ display: grid; gap: 16px; }
:where(.spray-module) .field-grid.two{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
:where(.spray-module) .field-grid.three{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
:where(.spray-module) .field-grid.four{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
:where(.spray-module) .description-grid{ grid-template-columns: minmax(280px, 2fr) minmax(180px, 1fr); }
:where(.spray-module) .field{ display: flex; flex-direction: column; min-width: 0; gap: 7px; }
:where(.spray-module) .field > span:first-child,:where(.spray-module) .field > label:first-child{ font-size: 13px; font-weight: 800; color: #4a4a4a; }
:where(.spray-module) .field small{ margin-top: -3px; color: var(--muted); font-size: 11px; }
:where(.spray-module) input,:where(.spray-module) select{
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 46px;
  padding: 10px 12px;
  color: var(--ink);
  background: var(--surface);
  border: 1px solid var(--line-dark);
  border-radius: 2px;
  outline: 0;
}
:where(.spray-module) .date-field{ min-width: 0; max-width: 100%; overflow: hidden; }
:where(.spray-module) input[type="date"]{
  display: block;
  inline-size: 100%;
  min-inline-size: 0;
  max-inline-size: 100%;
  -webkit-appearance: none;
  appearance: none;
}
:where(.spray-module) input[type="date"]::-webkit-date-and-time-value{ min-width: 0; margin: 0; text-align: left; }
:where(.spray-module) input[type="date"]::-webkit-datetime-edit{ min-width: 0; padding: 0; }
:where(.spray-module) input:focus,:where(.spray-module) select:focus{ border-color: var(--ink); box-shadow: 0 0 0 2px rgba(0,0,0,.09); }
:where(.spray-module) input::placeholder{ color: #9a9a9a; }
:where(.spray-module) .input-unit{ display: grid; grid-template-columns: minmax(0, 1fr) auto; border: 1px solid var(--line-dark); background: var(--surface); border-radius: 2px; overflow: hidden; }
:where(.spray-module) .input-unit:focus-within{ border-color: var(--ink); box-shadow: 0 0 0 2px rgba(0,0,0,.09); }
:where(.spray-module) .input-unit input{ border: 0; box-shadow: none; }
:where(.spray-module) .input-unit input:focus{ box-shadow: none; }
:where(.spray-module) .input-unit b{ min-width: 52px; display: grid; place-items: center; padding: 0 10px; color: #5e5e5e; background: var(--soft-2); font-size: 12px; white-space: nowrap; }
:where(.spray-module) .form-section{ min-width: 0; margin: 26px 0 0; padding: 22px 0 0; border: 0; border-top: 1px solid var(--line); }
:where(.spray-module) .form-section legend{ float: left; width: 100%; margin: 0 0 16px; padding: 0; font-size: 16px; font-weight: 800; }
:where(.spray-module) .form-section legend + *{ clear: both; }
:where(.spray-module) .dimension-grid{ display: grid; grid-template-columns: .65fr 1.18fr repeat(3, 1fr); gap: 14px; align-items: end; }
:where(.spray-module) .size-variant + .size-variant{ margin-top: 14px; padding-top: 16px; border-top: 1px solid var(--line); }
:where(.spray-module) .size-variant-heading{ display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
:where(.spray-module) .size-variant-heading strong{ font-size: 13px; }
:where(.spray-module) .add-size-button{ margin-top: 16px; }
:where(.spray-module) .field-note,:where(.spray-module) .section-intro{ margin: 10px 0 0; color: var(--muted); font-size: 12px; }
:where(.spray-module) .section-intro{ margin: 0 0 16px; max-width: 700px; font-size: 13px; }
:where(.spray-module) .customer-service-note{ padding: 11px 13px; background: var(--soft); border-left: 3px solid var(--ink); }
:where(.spray-module) .mdf-section{ margin-top: 28px; padding: 22px; background: var(--soft); border: 0; border-left: 4px solid var(--ink); }
:where(.spray-module) .choice-row{ display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
:where(.spray-module) .choice{ position: relative; display: flex; align-items: center; cursor: pointer; }
:where(.spray-module) .choice input{ position: absolute; opacity: 0; pointer-events: none; }
:where(.spray-module) .choice span{ display: block; padding: 10px 13px; color: #4b4b4b; background: var(--panel); border: 1px solid var(--line-dark); border-radius: 2px; font-size: 13px; font-weight: 700; }
:where(.spray-module) .choice input:checked + span{ color: var(--on-accent); background: var(--ink); border-color: var(--ink); }
:where(.spray-module) .compact-fields{ margin-bottom: 16px; }
:where(.spray-module) .mdf-options{ align-items: end; }
:where(.spray-module) .toggle-field{ min-height: 46px; display: flex; align-items: center; gap: 11px; padding: 7px 12px; background: var(--panel); border: 1px solid var(--line-dark); cursor: pointer; }
:where(.spray-module) .toggle-field input{ flex: 0 0 auto; width: 18px; height: 18px; padding: 0; }
:where(.spray-module) .toggle-field span{ display: flex; flex-direction: column; }
:where(.spray-module) .toggle-field b{ font-size: 13px; }
:where(.spray-module) .toggle-field small{ color: var(--muted); font-size: 11px; }
:where(.spray-module) .advanced{ margin: 24px 0; border: 1px solid var(--line); border-radius: 2px; }
:where(.spray-module) .advanced summary{ padding: 13px 16px; cursor: pointer; font-weight: 800; }
:where(.spray-module) .advanced-body{ padding: 4px 16px 17px; }
:where(.spray-module) .advanced-body .field-grid + .field-grid{ margin-top: 16px; }
:where(.spray-module) .extra-work-fields{ margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
:where(.spray-module) .position-preview{ display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 0 0 18px; padding: 13px 16px; background: var(--soft); }
:where(.spray-module) .position-preview span{ color: var(--muted); font-size: 13px; }
:where(.spray-module) .position-preview strong{ font-size: 20px; }
:where(.spray-module) .positions-list{ display: grid; gap: 10px; }
:where(.spray-module) .empty-state{ min-height: 118px; display: grid; place-content: center; justify-items: center; gap: 5px; color: var(--muted); background: var(--soft); border: 1px dashed var(--line-dark); text-align: center; }
:where(.spray-module) .empty-state strong{ color: #3e3e3e; }
:where(.spray-module) .position-item{ display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; padding: 16px; border: 1px solid var(--line); }
:where(.spray-module) .position-item h3{ margin: 0 0 3px; font-size: 15px; }
:where(.spray-module) .position-meta{ color: var(--muted); font-size: 12px; }
:where(.spray-module) .position-pricing{ text-align: right; }
:where(.spray-module) .position-pricing > strong{ display: block; font-size: 18px; }
:where(.spray-module) .position-pricing > small{ color: var(--muted); }
:where(.spray-module) .position-actions{ grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; padding-top: 10px; border-top: 1px solid var(--line); }
:where(.spray-module) .step.light{ color: #a8a8a8; }
:where(.spray-module) .summary-label{ margin: 24px 0 1px; color: #bbb; font-size: 13px; }
:where(.spray-module) .grand-total{ display: block; font-size: clamp(32px, 4vw, 46px); line-height: 1.1; letter-spacing: -.035em; }
:where(.spray-module) .total-lines{ display: grid; gap: 9px; margin-top: 24px; padding-top: 18px; border-top: 1px solid #4c4c4c; }
:where(.spray-module) .total-lines div{ display: flex; justify-content: space-between; gap: 12px; color: #c7c7c7; }
:where(.spray-module) .total-lines .discount strong{ color: var(--on-accent); }
:where(.spray-module) .total-lines .gross{ color: var(--on-accent); font-size: 17px; }
:where(.spray-module) .breakdown{ margin: 0; }
:where(.spray-module) .breakdown div{ display: flex; justify-content: space-between; gap: 14px; padding: 7px 0; }
:where(.spray-module) .breakdown dt{ color: var(--muted); }
:where(.spray-module) .breakdown dd{ margin: 0; font-weight: 700; text-align: right; }
:where(.spray-module) .breakdown .separator{ margin-top: 9px; padding-top: 14px; border-top: 1px solid var(--line); }
:where(.spray-module) .internal-note{ margin: 15px 0 0; padding: 9px 10px; color: var(--muted); background: var(--soft); font-size: 11px; }
:where(.spray-module) .dialog{ width: min(720px, calc(100vw - 30px)); max-height: calc(100vh - 32px); padding: 0; color: var(--ink); background: var(--panel); border: 0; border-radius: 3px; box-shadow: var(--shadow); }
:where(.spray-module) .dialog::backdrop{ background: rgba(0,0,0,.54); }
:where(.spray-module) .wide-dialog{ width: min(1050px, calc(100vw - 30px)); }
:where(.spray-module) .compact-dialog{ width: min(520px, calc(100vw - 30px)); }
:where(.spray-module) .dialog-shell{ display: flex; flex-direction: column; max-height: calc(100vh - 32px); margin: 0; }
:where(.spray-module) .dialog-header{ flex: 0 0 auto; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px; border-bottom: 1px solid var(--line); }
:where(.spray-module) .icon-button{ width: 38px; height: 38px; display: grid; place-items: center; background: var(--soft); border-radius: 50%; font-size: 25px; line-height: 1; }
:where(.spray-module) .dialog-body{ overflow: auto; padding: 22px 24px; }
:where(.spray-module) .dialog-footer{ display: flex; align-items: center; gap: 8px; flex: 0 0 auto; padding: 16px 24px; border-top: 1px solid var(--line); }
:where(.spray-module) .footer-spacer{ flex: 1; }
:where(.spray-module) .setting-group + .setting-group{ margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
:where(.spray-module) .setting-group h3{ margin: 0 0 15px; font-size: 15px; }
:where(.spray-module) .setting-group .field-grid + .field-grid{ margin-top: 15px; }
:where(.spray-module) .calibration-note{ margin: 26px 0 0; padding: 13px 15px; color: #555; background: var(--soft); border-left: 3px solid #555; font-size: 12px; }
:where(.spray-module) .saved-project{ display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
:where(.spray-module) .saved-project:first-child{ padding-top: 0; }
:where(.spray-module) .saved-project:last-child{ border-bottom: 0; }
:where(.spray-module) .saved-project h3{ margin: 0; font-size: 15px; }
:where(.spray-module) .saved-project p{ margin: 3px 0 0; color: var(--muted); font-size: 12px; }
:where(.spray-module) .saved-actions{ display: flex; gap: 7px; }
:where(.spray-module) .toast{ position: fixed; left: 50%; bottom: 24px; z-index: 50; transform: translate(-50%, 20px); padding: 11px 16px; color: var(--on-accent); background: #171717; border-radius: 2px; opacity: 0; pointer-events: none; transition: .18s ease; box-shadow: var(--shadow); }
:where(.spray-module) .toast.visible{ transform: translate(-50%, 0); opacity: 1; }
:where(.spray-module) .print-document{ display: none; }
:where(.spray-module) [hidden]{ display: none !important; }
@media  (max-width: 1050px) {:where(.spray-module) .workspace{ grid-template-columns: 1fr; }
:where(.spray-module) .content-column{ grid-row: 1; }
:where(.spray-module) .summary-column{ grid-template-columns: repeat(2, minmax(0, 1fr)); position: static; grid-row: 2; }
:where(.spray-module) .dimension-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
:where(.spray-module) .quantity-field,:where(.spray-module) .geometry-field{ grid-column: auto; }
:where(.spray-module) .field-grid.four{ grid-template-columns: repeat(2, minmax(0, 1fr)); }}
@media  (max-width: 760px) {:where(.spray-module) .header-actions{ justify-content: flex-start; margin-top: 16px; }
:where(.spray-module) .header-actions .button{ flex: 1 1 145px; }
:where(.spray-module) .spray-content{ padding: 14px 12px 40px; }
:where(.spray-module) .workspace,:where(.spray-module) .content-column,:where(.spray-module) .summary-column{ gap: 12px; }
:where(.spray-module) .summary-column{ grid-template-columns: 1fr; }
:where(.spray-module) .panel,:where(.spray-module) .summary-card{ padding: 18px; }
:where(.spray-module) .field-grid.two,:where(.spray-module) .field-grid.three,:where(.spray-module) .field-grid.four,:where(.spray-module) .description-grid,:where(.spray-module) .dimension-grid{ grid-template-columns: 1fr; }
:where(.spray-module) .geometry-field{ grid-column: auto; }
:where(.spray-module) .mdf-section{ padding: 17px; }
:where(.spray-module) .position-item{ grid-template-columns: 1fr; }
:where(.spray-module) .position-pricing{ text-align: left; }
:where(.spray-module) .dialog-footer{ flex-wrap: wrap; }
:where(.spray-module) .dialog-footer .footer-spacer{ display: none; }
:where(.spray-module) .dialog-footer .button{ flex: 1; }}
@media  (max-width: 520px) {:where(.spray-module) .eyebrow,:where(.spray-module) .step{ font-size: 10px; }
:where(.spray-module) .header-actions{ display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: 7px; }
:where(.spray-module) .header-actions .button{ width: 100%; min-width: 0; padding-inline: 9px; font-size: 13px; }
:where(.spray-module) .header-actions .button.primary{ grid-column: 1 / -1; }
:where(.spray-module) .settings-strip{ align-items: flex-start; padding: 13px 14px; }
:where(.spray-module) .settings-action{ padding-top: 2px; font-size: 13px; }
:where(.spray-module) .settings-summary{ max-width: 225px; line-height: 1.35; }
:where(.spray-module) .panel,:where(.spray-module) .summary-card{ padding: 16px 14px; }
:where(.spray-module) .section-heading{ margin-bottom: 18px; }
:where(.spray-module) .section-heading h2{ font-size: 19px; }
:where(.spray-module) input,:where(.spray-module) select{ min-height: 48px; font-size: 16px; }
:where(.spray-module) .mdf-section{ margin-inline: -2px; padding: 16px 12px; }
:where(.spray-module) .choice-row{ display: grid; grid-template-columns: 1fr; }
:where(.spray-module) .choice span{ width: 100%; min-height: 46px; display: flex; align-items: center; }
:where(.spray-module) .toggle-field{ min-height: 54px; }
:where(.spray-module) .advanced summary{ min-height: 48px; display: flex; align-items: center; }
:where(.spray-module) .advanced-body{ padding-inline: 12px; }
:where(.spray-module) .position-preview{ align-items: flex-start; flex-direction: column; gap: 3px; }
:where(.spray-module) .position-preview strong{ font-size: 24px; }
:where(.spray-module) .button.large{ width: 100%; min-width: 0; }
:where(.spray-module) .position-actions{ display: grid; grid-template-columns: 1fr 1fr; }
:where(.spray-module) .position-actions .button{ min-height: 42px; }
:where(.spray-module) .position-actions .position-meta{ grid-column: 1 / -1; overflow-wrap: anywhere; }
:where(.spray-module) .position-meta{ overflow-wrap: anywhere; }
:where(.spray-module) .grand-total{ font-size: 36px; overflow-wrap: anywhere; }
:where(.spray-module) .dialog{ width: calc(100vw - 16px); max-height: calc(100dvh - 16px); margin: auto; }
:where(.spray-module) .dialog-shell{ max-height: calc(100dvh - 16px); }
:where(.spray-module) .dialog-header,:where(.spray-module) .dialog-body,:where(.spray-module) .dialog-footer{ padding-left: 15px; padding-right: 15px; }
:where(.spray-module) .saved-project{ grid-template-columns: 1fr; }
:where(.spray-module) .saved-actions{ display: grid; grid-template-columns: 1fr 1fr; }
:where(.spray-module) .saved-actions .button{ width: 100%; }
:where(.spray-module) .toast{ width: calc(100vw - 24px); bottom: 12px; text-align: center; }}
@media  print {:where(.spray-module) .print-document{ display: block !important; color: #111; font: 10.5pt/1.45 Arial, Helvetica, sans-serif; }
:where(.spray-module) .print-header{ display: flex; align-items: flex-start; justify-content: space-between; gap: 25mm; padding-bottom: 9mm; border-bottom: 1.5pt solid #111; }
:where(.spray-module) .print-header img{ width: 36mm; }
:where(.spray-module) .print-header div{ text-align: right; }
:where(.spray-module) .print-header h1{ margin: 0; font-size: 17pt; }
:where(.spray-module) .print-header p{ margin: 2mm 0 0; color: #555; }
:where(.spray-module) .print-meta{ display: grid; grid-template-columns: 1fr 1fr; gap: 10mm; margin: 9mm 0; }
:where(.spray-module) .print-meta div{ display: grid; grid-template-columns: 28mm 1fr; }
:where(.spray-module) .print-meta dt{ color: #666; }
:where(.spray-module) .print-meta dd{ margin: 0; font-weight: bold; }
:where(.spray-module) .print-document table{ width: 100%; border-collapse: collapse; }
:where(.spray-module) .print-document th{ padding: 3mm 2mm; text-align: left; background: #eee; border-bottom: 1pt solid #111; }
:where(.spray-module) .print-document td{ padding: 4mm 2mm; vertical-align: top; border-bottom: .5pt solid #bbb; }
:where(.spray-module) .print-document th:nth-child(2),:where(.spray-module) .print-document td:nth-child(2){ width: 20mm; text-align: center; }
:where(.spray-module) .print-document th:last-child,:where(.spray-module) .print-document td:last-child{ width: 38mm; text-align: right; }
:where(.spray-module) .print-totals{ width: 80mm; margin: 10mm 0 0 auto; }
:where(.spray-module) .print-totals div{ display: flex; justify-content: space-between; padding: 1.5mm 0; }
:where(.spray-module) .print-totals .gross{ margin-top: 2mm; padding-top: 3mm; border-top: 1pt solid #111; font-size: 12pt; }
:where(.spray-module) .print-footer{ margin-top: 14mm; color: #666; font-size: 8.5pt; }}
:where(.spray-module) .fixation-field{ margin: 14px 0; }
:where(.spray-module) .work-detail{ margin-top: 16px; border-top: 1px solid var(--line); padding-top: 12px; }
:where(.spray-module) .work-detail summary{ cursor: pointer; font-weight: bold; }
:where(.spray-module) .work-row{ display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
:where(.spray-module) .work-row small{ display: block; color: var(--muted); }
:where(.spray-module) .panel{ background: linear-gradient(140deg,#fff 0%,#fff 70%,#fafbfc 100%); box-shadow: 0 8px 26px #17233107, inset 0 1px 0 #fff; }
:where(.spray-module) .summary-card,:where(.spray-module) .settings-strip{ background: linear-gradient(145deg,#40464c 0%,#23272c 42%,#121518 100%); box-shadow: inset 0 1px 0 #ffffff36, 0 8px 24px #11182714; border: 1px solid #343a40; }
:where(.spray-module) .button{ background: linear-gradient(#fff,#f1f3f5); box-shadow: inset 0 1px 0 #fff,0 2px 3px #11182706; }
:where(.spray-module) .button.primary{ background: linear-gradient(165deg,#484e55,#1c2025 70%); border-color:#272d33; box-shadow: inset 0 1px 0 #ffffff30,0 3px 8px #17233118; }
:where(.spray-module) .button.primary:hover{ background: linear-gradient(165deg,#5a626b,#292f36); }
:where(.spray-module) .field input,:where(.spray-module) .field select{ border-radius:8px; background-color:var(--panel); box-shadow:inset 0 1px 3px #17233108; }
:where(.spray-module) .input-unit{ border-radius:8px; overflow:hidden; }
:where(.spray-module) .input-unit input{ border-radius:0; box-shadow:none; }
:where(.spray-module) .input-unit b{ background:linear-gradient(#f6f7f8,#eceff1); }
:where(.spray-module) input:focus-visible,:where(.spray-module) select:focus-visible{ outline:2px solid #526c85; outline-offset:2px; }
:where(.spray-module) .size-variant{ border-radius:10px; background:#f7f9fa; }
:where(.spray-module) .advanced{ border-radius:10px; }
:where(.spray-module) .condition{ padding:13px 0; border-top:1px solid var(--line); }
:where(.spray-module) .condition > strong{ display:flex; flex-wrap:wrap; gap:4px 12px; justify-content:space-between; font-size:14px; }
:where(.spray-module) .condition > strong span{ white-space:nowrap; }
:where(.spray-module) .condition p{ margin:6px 0 0; color:#515c65; font-size:13px; line-height:1.5; }
:where(.spray-module) #conditionDetails h3{ margin:22px 0 8px; font-size:16px; }
:where(.spray-module) .work-detail{ margin-top:14px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#fafbfc; }
:where(.spray-module) .work-detail summary{ cursor:pointer; font-weight:700; }
:where(.spray-module) .work-row{ align-items:flex-start; gap:8px; }
:where(.spray-module) .work-row strong{ white-space:nowrap; }
:where(.spray-module) .field,:where(.spray-module) .field-grid,:where(.spray-module) fieldset,:where(.spray-module) .summary-column,:where(.spray-module) .work-row span{ min-width:0; }
@media  (min-width:1051px) and (max-width:1300px) {:where(.spray-module) .workspace{ grid-template-columns:minmax(0,1fr) 330px; }
:where(.spray-module) .description-grid{ grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
:where(.spray-module) .dimension-grid{ grid-template-columns:repeat(6,minmax(0,1fr)); }
:where(.spray-module) .dimension-grid .quantity-field,:where(.spray-module) .dimension-grid .geometry-field{ grid-column:span 3; }
:where(.spray-module) .dimension-grid .measure-field{ grid-column:span 2; }
:where(.spray-module) .field-grid.three{ grid-template-columns:1fr; }}
@media  (max-width:760px) {:where(.spray-module) .spray-content{ padding:14px 12px 32px; }
:where(.spray-module) .panel{ padding:20px 16px; }
:where(.spray-module) .summary-column{ position:static; grid-row:2; }
:where(.spray-module) .content-column{ grid-row:1; }
:where(.spray-module) .settings-strip{ min-height:58px; padding:12px 15px; }
:where(.spray-module) .settings-summary{ font-size:12px; }
:where(.spray-module) .form-section{ margin-top:24px; }
:where(.spray-module) .field-grid{ gap:18px; }
:where(.spray-module) .field input,:where(.spray-module) .field select{ min-height:48px; font-size:16px; }
:where(.spray-module) .dimension-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 10px; }
:where(.spray-module) .dimension-grid .geometry-field{ grid-column:span 1; }
:where(.spray-module) .dimension-grid .measure-field{ grid-column:1 / -1; }
:where(.spray-module) .dimension-grid .input-unit{ min-height:48px; }
:where(.spray-module) .fixation-field{ margin-bottom:4px; }
:where(.spray-module) .button{ min-height:46px; }
:where(.spray-module) .work-row strong{ white-space:normal; }
:where(.spray-module) .condition p,:where(.spray-module) .work-row small{ font-size:14px; }}
@media  print {:where(.spray-module) .print-document{ box-shadow:none; }}
:where(.spray-module) .panel,:where(.spray-module) .summary-card,:where(.spray-module) .settings-strip,:where(.spray-module) .dialog{ -webkit-backdrop-filter:blur(20px) saturate(120%); backdrop-filter:blur(20px) saturate(120%); }
:where(.spray-module) .panel{ background:linear-gradient(130deg,#ffffffad,#ffffff66); border:1px solid #ffffffc2; box-shadow:inset 0 1px 0 #ffffffc9,0 12px 35px #26364812; }
:where(.spray-module) .summary-card,:where(.spray-module) .settings-strip{ background:linear-gradient(135deg,#26333fd1,#26333f99); border:1px solid #ffffff80; box-shadow:inset 0 1px 0 #ffffff45,0 10px 30px #20324420; }
:where(.spray-module) .panel > .section-heading{ background:#ffffff24; border:0; border-bottom:1px solid #ffffff9c; border-radius:0; padding:0 0 17px; box-shadow:none; color:var(--ink); }
:where(.spray-module) .panel > .section-heading .step,:where(.spray-module) .panel > .section-heading .eyebrow,:where(.spray-module) .panel > .section-heading .text-button{ color:#53616c; }
:where(.spray-module) .panel > .section-heading .status-badge{ color:#384753; background:#ffffff70; border:1px solid #ffffffb3; }
:where(.spray-module) .button{ background:#ffffff7a; border-color:#ffffffdf; box-shadow:inset 0 1px 0 #fff,0 3px 10px #22344710; }
:where(.spray-module) .button.primary{ background:linear-gradient(140deg,#293b4acf,#293b4aa8); border:1px solid #ffffff87; box-shadow:inset 0 1px 0 #ffffff42,0 5px 15px #273a4c1c; }
:where(.spray-module) .button.primary:hover{ background:#293b4ade; }
:where(.spray-module) .button.ghost{ background:#ffffff35; border-color:#c6cfd780; }
:where(.spray-module) .size-variant,:where(.spray-module) .work-detail,:where(.spray-module) .advanced{ background:#ffffff40; border-color:#ffffffb3; }
:where(.spray-module) .field input,:where(.spray-module) .field select{ background-color:#ffffffb8; border-color:#abb8c585; box-shadow:inset 0 1px 2px #17233108; }
:where(.spray-module) .input-unit b{ background:#ffffff73; color:#43515d; }
:where(.spray-module) .dialog{ background:#f3f6f8eb; border:1px solid #ffffffdb; }
:where(.spray-module) .price-incomplete{ padding:12px; background:#ffffffed; color:#563c13; border:1px solid #d8c49e; border-radius:8px; font-size:14px; }
@media (max-width:760px) {:where(.spray-module) .panel{ background:#ffffff8c; }
:where(.spray-module) .panel > .section-heading{ padding:0 0 15px; gap:10px; }
:where(.spray-module) .panel > .section-heading h2{ font-size:19px; }}
@supports  not (backdrop-filter:blur(1px)) {:where(.spray-module) .panel{ background:#f4f6f8ed; }
:where(.spray-module) .summary-card,:where(.spray-module) .settings-strip{ background:#34434fed; }}
@media  print {:where(.spray-module) .print-document{ background:var(--panel); }}
:where(.spray-module) .panel[aria-labelledby="positionHeading"],:where(.spray-module) #bikePanel{ border-top:3px solid #558bae; }
:where(.spray-module) .field:focus-within > span:first-child{ color:#215e87; }
:where(.spray-module) input:focus-visible,:where(.spray-module) select:focus-visible{ outline-color:#377fac; }
:where(.spray-module) .summary-card{ background:linear-gradient(135deg,#1e5047dc,#244c459e); border-color:#a8cec1b0; }
:where(.spray-module) .summary-card .grand-total{ color:#f2fff9; }
:where(.spray-module) .summary-card .step.light{ color:#cbf2e1; }
:where(.spray-module) .button.primary{ background:linear-gradient(135deg,#265e7de0,#356988ad); }
:where(.spray-module) .button.primary:hover{ background:#285e7ce8; }
:where(.spray-module) .settings-strip{ border-left:4px solid #83a8c0; }
:where(.spray-module) #conditionDetails .condition{ border-left:3px solid #c99a49; padding-left:12px; }
:where(.spray-module) .customer-service-note{ border-left:3px solid #7ba2bc; background:#dfedf66e; }
:where(.spray-module) .price-incomplete{ border-left:4px solid #c18c2c; background:#fff5dfee; color:#674817; }
:where(.spray-module) #bikePanel .field-note{ padding:12px; border-left:3px solid #668fac; background:#e6f0f66b; border-radius:5px; }
@media  print {:where(.spray-module) .print-document{ color:#111; }}
:where(.spray-module) #radiatorPanel{ border-top: 3px solid rgba(188,137,58,.65); }
:where(.spray-module) .radiator-row{ padding: 12px 0 20px; border-bottom: 1px solid rgba(120,130,140,.2); margin-bottom: 18px; }
:where(.spray-module) .radiator-row .form-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
:where(.spray-module) .radiator-row input,:where(.spray-module) .radiator-row select{ min-width:0;max-width:100%;width:100%; }
:where(.spray-module) #radiatorPanel details{ margin-top:18px; }
:where(.spray-module) #radiatorPanel summary{ cursor:pointer; }
@media (max-width:600px){:where(.spray-module) .radiator-row .form-grid{grid-template-columns:minmax(0,1fr);}}
:where(.spray-module) .radiator-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0;}
:where(.spray-module) .radiator-type{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;border:1px solid rgba(105,125,142,.25);border-radius:14px;background:rgba(255,255,255,.38);color:#405867;padding:10px 6px;cursor:pointer;font:inherit;text-align:center;min-width:0;}
:where(.spray-module) .radiator-type svg{width:78px;height:54px;max-width:100%;}
:where(.spray-module) .radiator-type span{font-size:12px;line-height:1.35;}
:where(.spray-module) .radiator-type[aria-pressed="true"]{border:2px solid #92713d;background:rgba(211,172,100,.16);padding:9px 5px;color:#665025;box-shadow:0 3px 14px rgba(124,95,50,.1);}
:where(.spray-module) .radiator-type:focus-visible{outline:3px solid #3c758a;outline-offset:3px;}
:where(.spray-module) .radiator-type-explanation{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.25);padding:12px;border-radius:12px;margin-bottom:18px;color:#405867;}
:where(.spray-module) .radiator-type-explanation svg{width:100px;flex:0 0 100px;}
:where(.spray-module) .radiator-type-explanation p{margin:0;font-size:14px;}
:where(.spray-module) .radiator-type-explanation small{display:block;margin-top:6px;color:#616a70;font-size:11px;}
@media (max-width:600px){:where(.spray-module) .radiator-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
:where(.spray-module) .radiator-type-explanation{align-items:flex-start;gap:8px;}
:where(.spray-module) .radiator-type-explanation svg{width:68px;flex-basis:68px;}}
:where(.spray-module) .radiator-type svg{width:128px;height:94px;}
:where(.spray-module) .radiator-type span{font-size:15px;font-weight:600;}
:where(.spray-module) .radiator-type-explanation svg{width:128px;flex-basis:128px;}
@media (max-width:600px){:where(.spray-module) .radiator-type-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
:where(.spray-module) .radiator-type svg{width:100%;height:auto;}
:where(.spray-module) .radiator-type span{font-size:14px;}
:where(.spray-module) .radiator-type-explanation svg{width:90px;flex-basis:90px;}}
@media  print {:where(.spray-module) .print-document{ background: #fff !important; box-shadow: none !important; filter: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }}
@media  print{:where(.spray-module) .print-header img{width:22mm;height:22mm;object-fit:contain;}}
.spray-module{--ink:var(--text);--surface:var(--panel);--soft:var(--field);--soft-2:var(--field);--line-dark:var(--muted);--radius:var(--small-radius);max-width:1600px}
.spray-module .spray-content{padding:0}.spray-module .module-nav{justify-content:flex-end}.spray-module .header-actions{display:flex;gap:8px;flex-wrap:wrap}
.spray-module .panel,.spray-module .summary-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px;color:var(--text)}
.spray-module .summary-card .grand-total{color:var(--text)}.spray-module .panel h2{color:var(--text)}
.spray-module .settings-strip,.spray-module .size-variant,.spray-module .advanced,.spray-module .radiator-type-explanation{background:var(--field);color:var(--text);border-color:var(--line);border-radius:var(--small-radius)}
.spray-module .input-unit,.spray-module input,.spray-module select{background:var(--field);border-color:var(--line);color:var(--text);border-radius:var(--small-radius);font-size:16px;min-width:0}
.spray-module .button.primary{background:var(--accent);color:var(--on-accent)}.spray-module .button.ghost{background:var(--field);color:var(--text)}
.spray-module .dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--radius)}.spray-module .dialog-header,.spray-module .dialog-body,.spray-module .dialog-footer{background:var(--panel);border-color:var(--line)}
.spray-module .summary-column{top:100px}.spray-module .print-document{display:none}.spray-module .step.light{color:var(--muted)}
@media(max-width:760px){.spray-module.page{padding:18px 12px}.spray-module .panel,.spray-module .summary-card{padding:18px}.spray-module .header-actions{width:100%}.spray-module .header-actions button{flex:1}}
@media print{body[data-app=spray]{background:#fff;color:#111}body[data-app=spray]>.appbar,body[data-app=spray]>.app-foot,body[data-app=spray]>.ambient{display:none!important}.spray-module{max-width:none!important;padding:0!important;margin:0!important}.spray-module>:not(.print-document){display:none!important}.spray-module .print-document{display:block!important;color:#111;background:#fff}.spray-module .print-document *{color:#111!important;background:transparent!important;box-shadow:none!important}.spray-module .print-document header img{width:56px;height:56px;object-fit:contain}}

.personal-background{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(16px);opacity:.13;pointer-events:none;z-index:-1}html[data-theme=light] .personal-background{opacity:.07}@media print{.personal-background{display:none!important}}

/* Spray follows the shared contrast and component surfaces in both themes. */
.spray-module label,.spray-module .eyebrow,.spray-module .field-label,.spray-module .empty-state strong{color:var(--muted)}
.spray-module .card-header{background:transparent;border:0;padding:0 0 12px;margin:0 0 12px;box-shadow:none}
.spray-module .btn-secondary,.spray-module .btn-ghost,.spray-module .settings-preview button,.spray-module .settings-link{color:var(--text);background:var(--field);border-color:var(--line)}
.spray-module .card,.spray-module .settings-preview{border:1px solid var(--line);box-shadow:none}
.spray-module .input-unit span,.spray-module .unit{background:var(--field);color:var(--muted)}
.spray-module .status-badge{background:var(--field);color:var(--muted);border:1px solid var(--line)}

.spray-module .field>span:first-child,.spray-module .field>label:first-child{color:var(--muted)}
.spray-module button:not(.primary),.spray-module .secondary,.spray-module .ghost{color:var(--text)}
.spray-module .settings-strip{background:var(--panel);border-color:var(--line);color:var(--text)}
.spray-module .card>header{background:transparent;border:0;box-shadow:none}
.spray-module .field .unit,.spray-module .input-with-unit>span{background:var(--field);color:var(--muted)}
.spray-module .empty-state p,.spray-module .empty-state strong{color:var(--muted)}

.spray-module .section-heading{background:transparent;border:0;box-shadow:none}
.spray-module .step,.spray-module .settings-action{color:var(--muted)}
.spray-module .panel{border-color:var(--line);box-shadow:none}

/* Shared design 0.5.0: compact 60 CSS-pixel phone icons; desktop unchanged. */
[hidden]{display:none!important}
@media(max-width:640px){
 .home-page .app-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 0;max-width:420px;width:100%;margin:0 auto;padding:8px 0;justify-items:center;align-items:start}
 .home-page .app-card{display:flex;flex:none;width:100%;min-width:0;padding:0 2px 4px;border-radius:14px;min-height:88px;align-items:center}
 .home-page .app-card .app-symbol{width:60px;height:60px;min-width:60px;aspect-ratio:1}
 .home-page .app-card .app-name{font-size:12px;line-height:1.3;letter-spacing:0;margin-top:7px;max-width:100%;overflow-wrap:anywhere}
 .home-page .app-card .pill{font-size:9px;margin:4px 0 0}
 .home-page .quick-links{flex-wrap:wrap;gap:16px;margin-top:32px}
}
/* Docs uses this same release as every other app. */
.docs-module{max-width:1280px}.docs-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px}.docs-bar nav{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:4px}.docs-bar form{margin:0;max-width:260px}.docs-bar nav .button{padding:7px 10px}.docs-drop{padding:25px;border:1px dashed var(--line);border-radius:18px;text-align:center;color:var(--muted);margin:16px 0;cursor:pointer}.docs-drop.dragover,.docs-drop:focus-visible{outline:2px solid var(--accent);background:var(--field)}
.docs-table{width:100%;min-width:0!important;table-layout:auto}.docs-table th,.docs-table td{padding:14px 8px;vertical-align:middle}.docs-table th{white-space:nowrap}.docs-check{width:30px}.docs-check input{width:18px;height:18px;cursor:pointer}.docs-name{display:flex;gap:12px;align-items:center}.docs-type{font-size:10px;font-weight:600;min-width:45px;width:45px;height:40px;border:1px solid var(--line);background:var(--field);border-radius:11px;display:grid;place-items:center;flex:none}.docs-filename{background:none;border:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;padding:0;overflow-wrap:anywhere;line-height:1.45;text-decoration:none}.docs-filename:hover{text-decoration:underline}.docs-row-actions{display:flex;gap:7px;justify-content:flex-end;align-items:center}.docs-row-actions .button{font-size:12px;min-height:40px;padding:8px 10px}.docs-more{position:relative}.docs-more>summary{list-style:none;cursor:pointer}.docs-more>summary::-webkit-details-marker{display:none}.docs-more-menu{position:absolute;right:0;top:42px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:14px;z-index:20;display:grid;gap:5px;min-width:155px;box-shadow:0 15px 40px #0005}.docs-more-menu button{width:100%;text-align:left;justify-content:flex-start}.docs-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.docs-bottom .action-row{align-items:center}.docs-module .table-wrap{overflow:visible}#docs-status{white-space:pre-wrap;overflow-wrap:anywhere}#docs-progress{display:flex;gap:12px;align-items:center;margin:18px 0}#docs-progress progress{flex:1;width:100%}#docs-selection{align-items:center;margin:14px 0}#docs-dialog input,#docs-dialog select{width:100%;margin:10px 0}
@media(max-width:640px){.docs-module.page{padding:24px 14px 80px}.docs-module .page-head{gap:18px}.docs-module .page-head>.action-row{gap:7px}.docs-module .page-head button{font-size:13px;padding:10px;min-height:44px}.docs-bar form{flex:1;max-width:none;min-width:140px}.docs-table th,.docs-table td{font-size:13px;padding:12px 4px}.docs-table .docs-date{display:none}.docs-type{display:none}.docs-name{gap:4px}.docs-row-actions{gap:4px;flex-wrap:wrap}.docs-row-actions .button{font-size:11px;padding:7px;min-height:40px}.docs-check{width:24px}.docs-size{white-space:nowrap;font-size:11px!important}.docs-bottom{font-size:12px}.docs-drop{padding:22px 12px}.docs-module .table-wrap{border-radius:0}.docs-table .docs-more-menu{min-width:155px}.docs-table .docs-more-menu button{font-size:13px;min-height:44px}}

/* 0.6: compact stable masthead; original artwork is never redrawn. */
:root{--header-height:56px}
.appbar{height:var(--header-height);min-height:var(--header-height);padding:0 max(18px,env(safe-area-inset-right)) 0 max(18px,env(safe-area-inset-left));position:sticky;top:0}
.appbar .brand{gap:8px;min-height:44px;flex-shrink:0}
.appbar .brand-art{width:30px;height:30px}
.appbar .brand .brand-word{display:inline;font-size:13px;letter-spacing:1.8px}
.appbar .brand small{font-size:12px;padding-left:9px;margin-left:3px}
.appbar .bar-actions{gap:8px}.appbar .avatar{width:32px;height:32px}
/* The calendar occupies the remaining viewport, not a fixed-height card. */
body[data-app=plan]{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
body[data-app=plan]>.appbar{flex:0 0 var(--header-height)}
body[data-app=plan]>.app-foot{display:none}
body[data-app=plan]>.plan-module#main{flex:1;display:flex;flex-direction:column;width:100%;max-width:none;min-height:0;padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));overflow:hidden}
body[data-app=plan] #main-nav{flex:0 0 auto;padding:5px 0;margin:0;min-height:0}
body[data-app=plan] .plan-module #app{flex:1;min-width:0;min-height:0;overflow:auto}
body[data-app=plan] .plan-module #app.planner{height:auto;min-height:0;padding:0 0 max(4px,env(safe-area-inset-bottom));overflow:hidden}
body[data-app=plan] .plan-module .planner-tools{padding-top:6px;gap:12px}
body[data-app=plan] .plan-module .planner-subtools{padding-bottom:6px;min-height:35px}
body[data-app=plan] .plan-module .plan-frame{flex:1;min-height:0;min-width:0;width:100%;overflow:hidden}
body[data-app=plan] .plan-module .plan-frame>.board-scroll{flex:1;min-height:60px;min-width:0;width:100%;overflow:auto;touch-action:pan-x pan-y;scrollbar-width:auto}
body[data-app=plan] .plan-module .plan-footer{flex:0 0 auto;padding:4px 0;font-size:10px}
body[data-app=plan] .plan-module .pool-board{min-width:0;overflow:auto;touch-action:pan-x pan-y}
body[data-app=plan] .plan-module .plan-x-scroll{flex:none;width:100%;height:17px;overflow-x:auto;overflow-y:hidden;scrollbar-width:auto;background:var(--surface);touch-action:pan-x}
body[data-app=plan] .plan-module .plan-x-scroll>div{height:1px}
body[data-app=plan] .plan-module .plan-x-scroll::-webkit-scrollbar{height:12px}
body[data-app=plan] .plan-module .plan-x-scroll::-webkit-scrollbar-thumb{background:var(--muted);border:3px solid var(--surface);border-radius:8px}
body[data-app=plan] .plan-module .plan-x-scroll::-webkit-scrollbar-track{background:var(--surface)}
@media(max-height:500px){body[data-app=plan] .plan-module #app.planner{overflow:auto;min-height:0}body[data-app=plan] .plan-module .plan-frame{flex:none;min-height:230px}body[data-app=plan] .plan-module .planner-tools{padding-top:3px}}
/* Slow idle motion is separate from hover tilt and uses the shared motion preference. */
body[data-app=home][data-signed-in="1"][data-motion=on] .home-page .app-card:not(.disabled) .app-original{animation:home-icon-drift 9s ease-in-out infinite;transform-origin:50% 55%}
body[data-app=home][data-signed-in="1"][data-motion=on] .home-page .app-card:nth-child(2n) .app-original{animation-delay:-3s;animation-duration:11s}
body[data-app=home][data-signed-in="1"][data-motion=on] .home-page .app-card:nth-child(3n) .app-original{animation-delay:-5s}
.home-page .app-card .app-symbol{position:relative;overflow:hidden}
body[data-motion=on] .home-page .app-card:not(.disabled) .app-symbol::after{content:"";position:absolute;inset:0;border-radius:24%;pointer-events:none;background:linear-gradient(115deg,transparent 34%,rgba(255,255,255,.10) 48%,transparent 62%);background-size:320% 100%;animation:home-icon-light 14s ease-in-out infinite;opacity:0}
body[data-motion=on] .home-page .app-card:nth-child(2n) .app-symbol::after{animation-delay:-5s}
body[data-motion=on] .home-page .app-card:nth-child(3n) .app-symbol::after{animation-delay:-8s}
@keyframes home-icon-drift{0%,100%{transform:translateY(0) scale(.985)}50%{transform:translateY(-2px) scale(1)}}
@keyframes home-icon-light{0%,25%{background-position:110% 50%;opacity:0}40%{opacity:.7}65%{background-position:-10% 50%;opacity:0}100%{background-position:-10% 50%;opacity:0}}
@media(prefers-reduced-motion:reduce){.home-page .app-card .app-original,.home-page .app-card .app-symbol::after{animation:none!important;transform:none!important}.home-page .app-card .app-symbol::after{display:none}}
body[data-motion=off] .home-page .app-card .app-original{animation:none!important;transform:none!important}
body[data-motion=off] .home-page .app-card .app-symbol::after{display:none}
@media print{body[data-app=plan]{height:auto;overflow:visible;display:block}body[data-app=plan]>.appbar,body[data-app=plan] .plan-x-scroll{display:none!important}body[data-app=plan]>.plan-module#main,body[data-app=plan] .plan-module #app.planner,body[data-app=plan] .plan-module .plan-frame,body[data-app=plan] .plan-module .board-scroll{display:block;height:auto;overflow:visible}}
