:root{--sidebar:#0f1f1a;--sidebar-hover:#1a2e22;--sidebar-active:rgba(34,197,94,.13);--accent:#22c55e;--accent-d:#16a34a;--desk:#f0f2f5;--panel:#ffffff;--ink:#0f1f1a;--muted:#6b7280;--line:#e5e7eb;--warn:#dc2626;--soft:#d97706;--leave:#7c6fa0;--shadow-sm:0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 16px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.06)}.ob-overlay{position:fixed;inset:0;background:#0a140fbf;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.ob-card{background:#fff;border-radius:20px;width:100%;max-width:440px;padding:32px 28px 24px;box-shadow:0 24px 64px #00000040;display:flex;flex-direction:column;gap:24px;position:relative}.ob-skip{position:absolute;top:16px;right:18px;background:none;border:none;font-size:12px;color:var(--muted);cursor:pointer;font-family:inherit;padding:2px 4px;border-radius:4px}.ob-skip:hover{color:var(--ink);text-decoration:underline}.ob-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.ob-icon{font-size:60px;line-height:1;margin-bottom:4px}.ob-title{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.02em}.ob-desc{font-size:14px;color:#4b5563;line-height:1.65;max-width:360px}.ob-desc strong{color:var(--ink);font-weight:700}.ob-hint{display:inline-block;font-size:11px;font-weight:700;color:var(--accent-d);background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:4px 12px;letter-spacing:.03em}.ob-dots{display:flex;justify-content:center;gap:7px}.ob-dot{width:8px;height:8px;border-radius:50%;background:#d1d5db;transition:background .2s,transform .2s}.ob-dot.active{background:var(--accent);transform:scale(1.25)}.ob-actions{display:flex;align-items:center;justify-content:space-between}.ob-btn{font-family:inherit;font-size:14px;font-weight:700;padding:11px 24px;border-radius:10px;cursor:pointer;border:none;transition:background .15s,transform .1s}.ob-btn:active{transform:scale(.97)}.ob-btn--primary{background:var(--accent);color:#0f1f1a}.ob-btn--primary:hover{background:var(--accent-d)}.ob-btn--ghost{background:#f3f4f6;color:var(--ink)}.ob-btn--ghost:hover{background:#e5e7eb}@media(max-width:480px){.ob-card{padding:28px 20px 20px}.ob-icon{font-size:52px}.ob-title{font-size:19px}.ob-desc{font-size:13px}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--desk);font-family:Inter,system-ui,sans-serif;color:var(--ink);line-height:1.45}app-root{display:block;height:100vh;max-width:none;padding:0;margin:0}h1,h2,h3{font-family:Inter,sans-serif;margin:0;letter-spacing:-.01em}button{font-family:inherit}.app-shell{display:flex;flex-direction:column;height:100vh}.app-topbar{height:62px;background:var(--sidebar);display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex:none;z-index:100}.topbar-brand{display:flex;align-items:center;gap:8px}.topbar-logo{color:var(--accent);font-size:16px;font-weight:700}.topbar-name{color:#d4f0e4;font-size:14px;font-weight:700;letter-spacing:.01em}.topbar-sep{color:#2d5045;font-size:13px}.topbar-page{color:#4d7a65;font-size:13px}.topbar-actions{display:flex;align-items:center;gap:8px}.topbar-mobile-only{display:none}.btn-help{background:none;border:1px solid #2d5045;color:#4d7a65;border-radius:50%;width:28px;height:28px;font-size:13px;font-weight:700;cursor:pointer;display:grid;place-items:center;font-family:inherit;transition:border-color .1s,color .1s}.btn-help:hover{border-color:var(--accent);color:var(--accent)}.edit-badge{background:#fff3;padding:2px 6px;border-radius:3px;font-size:11px}.app-body{display:flex;flex:1;overflow:hidden}.app-sidebar{width:190px;flex:none;background:var(--sidebar);display:flex;flex-direction:column;padding:8px 8px 10px;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:8px 10px 12px;border-bottom:1px solid #1e3028;margin-bottom:8px}.sidebar-brand-name{color:#d4f0e4;font-size:15px;font-weight:700;letter-spacing:.01em}.sidebar-genera{display:flex;flex-direction:column;gap:5px;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid #1e3028}.sidebar-btn-genera{width:100%;background:var(--accent);color:#0f1f1a;border:none;font-weight:700;font-size:13px;padding:10px;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;letter-spacing:.02em;transition:background .1s,color .1s}.sidebar-btn-genera:hover{background:var(--accent-d);color:#fff}.sidebar-stale{font-size:10px;color:var(--soft);background:#2a1e08;padding:3px 7px;border-radius:4px;text-align:center}.sidebar-save-row{min-height:16px}.sidebar-save{font-size:10px;font-weight:600;display:block;text-align:center}.sidebar-save.saving{color:var(--muted)}.sidebar-save.saved{color:var(--accent)}.sidebar-save.error{color:var(--warn)}.sidebar-footer{margin-top:auto;border-top:1px solid #1e3028;padding-top:6px;display:flex;flex-direction:column;gap:1px}.sidebar-footer-btn{background:none;border:none;color:#4d7a65;font-size:12px;font-family:inherit;cursor:pointer;padding:7px 10px;border-radius:5px;text-align:left;width:100%;transition:background .1s,color .1s}.sidebar-footer-btn:hover{background:var(--sidebar-hover);color:#8abfa0}.nav-group{display:flex;flex-direction:column;gap:1px}.nav-group-output{margin-top:auto;border-top:1px solid #1e3028;padding-top:8px;margin-bottom:0}.nav-item-results{margin-top:8px;border-top:1px solid #1e3028;padding-top:8px}.nav-group-label{font-size:9.5px;color:#2d5045;font-weight:700;letter-spacing:.1em;padding:6px 8px 3px}.nav-item{display:flex;align-items:center;gap:8px;padding:11px 14px;border:none;background:none;color:#4d7a65;border-radius:5px;cursor:pointer;text-align:left;width:100%;font-family:inherit;transition:background .1s,color .1s}.nav-item:hover{background:var(--sidebar-hover);color:#8abfa0}.nav-item.active{background:var(--sidebar-active);color:#e8f5ee;font-weight:600;border-left:3px solid var(--accent);padding-left:11px}.nav-icon{font-size:32px;flex:none;line-height:1}.nav-label{font-size:13px;font-weight:500}.app-content{flex:1;overflow-y:auto;padding:28px 32px;background:var(--panel)}.page-body{width:100%}.app-loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:60vh;color:var(--muted)}.app-loading-spinner{width:36px;height:36px;border:3px solid #2d5045;border-top-color:var(--accent);border-radius:50%;animation:spin-loader .7s linear infinite}.app-loading-text{font-size:14px}@keyframes spin-loader{to{transform:rotate(360deg)}}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-title{font-size:22px;font-weight:700;color:var(--ink)}.panel{background:var(--panel);border-radius:8px;margin-bottom:16px;overflow:clip;box-shadow:var(--shadow-sm)}.generate{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:#0f1f1a;border:none;font-family:inherit;font-weight:700;font-size:13px;padding:9px 16px;border-radius:6px;cursor:pointer;letter-spacing:.02em;transition:background .1s,color .1s}.generate:hover{background:var(--accent-d);color:#fff}.rows{display:flex;flex-direction:column;gap:8px}.row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.txt{flex:1;min-width:110px;border:1px solid var(--line);border-radius:6px;padding:8px 11px;font:inherit;font-size:14px;color:var(--ink);background:#fcfdfd}.txt:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.txt.short{flex:none;width:58px;text-align:center;font-family:IBM Plex Mono,monospace;text-transform:uppercase}.txt.num{flex:none;width:70px;text-align:center;font-family:IBM Plex Mono,monospace}.timefld{border:1px solid var(--line);border-radius:6px;padding:7px 9px;font:inherit;font-family:IBM Plex Mono,monospace;font-size:13px;background:#fcfdfd;color:var(--ink)}.dur{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--accent-d);background:#eef7f4;padding:4px 8px;border-radius:7px;white-space:nowrap}.swatch{width:30px;height:30px;border-radius:8px;border:2px solid rgba(0,0,0,.08);cursor:pointer;flex:none}.cov{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);white-space:nowrap}.sub{font-size:11px;color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.icon{border:none;background:none;cursor:pointer;color:var(--muted);padding:6px;border-radius:8px;display:grid;place-items:center}.icon:hover{color:var(--warn);background:#fbeeec}.add{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;margin-top:4px;border:1px solid var(--line);background:#fbfcfc;color:var(--accent-d);font-family:inherit;font-weight:600;font-size:13px;padding:9px 14px;border-radius:6px;cursor:pointer}.add:hover{border-color:var(--accent);background:#f1f8f6}.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}.stepper button{border:none;background:#fbfcfc;cursor:pointer;padding:6px 8px;color:var(--ink);display:grid;place-items:center}.stepper button:hover{background:#eef3f2}.stepper span{font-family:IBM Plex Mono,monospace;font-weight:600;min-width:26px;text-align:center;font-size:13px}.toggle{width:42px;height:24px;border-radius:99px;border:none;background:#cdd6d4;cursor:pointer;position:relative;transition:background .15s;flex:none}.toggle.on{background:var(--accent)}.knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}.toggle.on .knob{left:21px}.rules{display:flex;flex-direction:column;gap:6px}.rule{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 4px;border-bottom:1px solid #eef2f1}.rule:last-child{border-bottom:none}.rule b{font-weight:600;font-size:14px;display:block}.rule .d{font-size:12px;color:var(--muted)}.rule input[type=range]{width:140px;accent-color:var(--accent)}.requests h3{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;margin-bottom:8px}.hint{font-family:Inter,sans-serif;font-weight:400;font-size:11px;color:var(--muted);margin-left:4px}.wsel{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.wpill{border:1px solid var(--line);background:#fcfdfd;border-radius:99px;padding:6px 13px;font-size:13px;cursor:pointer;color:var(--muted);font-weight:500}.wpill:hover{border-color:var(--accent)}.wpill.active{background:var(--ink);color:#fff;border-color:var(--ink)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin:4px 0 12px}.legend i{font-style:normal;display:inline-flex;align-items:center;gap:5px}.lg{width:13px;height:13px;border-radius:4px;display:inline-block}.lg.s{background:#b9831a33;border:1px solid var(--soft)}.lg.h{background:#c2463429;border:1px solid var(--warn)}.ferieRow{display:flex;gap:5px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.ferieRow .lab{font-size:12px;color:var(--muted);margin-right:4px}.ferieBtn{font-family:IBM Plex Mono,monospace;font-size:11px;border:1px solid var(--line);background:#fcfdfd;border-radius:7px;padding:6px 9px;cursor:pointer;color:var(--muted)}.ferieBtn.on{background:#8c84ac2e;border-color:var(--leave);color:var(--leave)}.reqgrid{display:grid;gap:3px;min-width:max-content}.rq.head{display:flex;flex-direction:column;align-items:center;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted)}.rq.head em{font-style:normal;font-size:10px;opacity:.6}.rq.label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;padding-right:6px}.rq.label .dot{width:9px;height:9px;border-radius:3px;flex:none}.rq.label .def{font-style:normal;font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--muted)}.rq.cell{min-height:32px;border:1px solid var(--line);border-radius:7px;background:#fcfdfd;cursor:pointer;display:grid;place-items:center;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600;color:var(--muted)}.rq.cell:hover{border-color:var(--accent)}.rq.cell.soft{background:#b9831a29;border-color:var(--soft);color:var(--soft)}.rq.cell.hard{background:#c2463424;border-color:var(--warn);color:var(--warn)}.rq.cov{min-height:34px;border:1px solid var(--line);border-radius:7px;cursor:pointer;display:grid;place-items:center;font-family:IBM Plex Mono,monospace;font-weight:600;font-size:13px;color:#2c3a3e;background:#fcfdfd}.rq.cov:hover{border-color:var(--accent)}.rq.cov.zero{color:#c2cbc9;background:#fafbfb}.rq.tot{display:grid;place-items:center;min-height:30px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;color:var(--muted);background:#f3f6f5;border-radius:7px}.reqscroll{overflow-x:auto;position:relative}.warnband{display:flex;align-items:center;gap:9px;font-size:13px;padding:11px 14px;border-radius:11px;margin-bottom:14px;background:#fbeeec;border:1px solid #ecc4bd;color:var(--warn)}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:11px;margin-bottom:14px}.kpi{background:var(--panel);border-radius:13px;padding:14px;display:flex;gap:11px;align-items:center;color:var(--muted);box-shadow:var(--shadow-sm)}.kpi strong{font-family:IBM Plex Mono,monospace;font-size:22px;color:var(--ink);display:block;line-height:1}.kpi span{font-size:11.5px}.kpi.bad{border-color:#ecc4bd;color:var(--warn)}.kpi.bad strong{color:var(--warn)}.kpi.warn{border-color:#f2dca6}.kpi.warn strong{color:#b9831a}.phead{display:flex;align-items:baseline;gap:10px;padding:14px 16px 10px}.phead h2{font-size:16px;font-weight:600}.phead span{font-size:12px;color:var(--muted)}.covscroll,.boardscroll{overflow-x:auto;padding:0 16px 16px 0;position:relative}.covgrid,.board{display:grid;gap:4px;min-width:max-content}.covscroll:after,.boardscroll:after{content:"";position:absolute;top:0;right:0;bottom:16px;width:32px;background:linear-gradient(to right,transparent,rgba(0,0,0,.07));pointer-events:none;z-index:3}.bd.corner,.bd.worker,.covgrid>.cv:first-child,.cv.label{position:sticky;left:0;z-index:2;background:var(--panel);box-shadow:2px 0 4px #0000000f}.bd.head,.cv.head{scroll-snap-align:start}.cv.head,.bd.head{display:flex;flex-direction:column;align-items:center;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted)}.cv.head em,.bd.head em{font-style:normal;font-size:10px;opacity:.55}.bd.corner{color:var(--muted);font-size:11px;align-self:end;padding-bottom:2px}.cv.label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;padding-right:6px}.cv.label i{font-style:normal;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--muted)}.cv.label .dot{width:9px;height:9px;border-radius:3px;flex:none}.cv.num{display:grid;place-items:center;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;min-height:34px;border-radius:7px;background:#f3f6f5;color:#7d8b8e}.cv.num.short{background:#c246341f;color:var(--warn)}.bd.worker{display:flex;flex-direction:column;justify-content:center;font-size:13px;font-weight:600;padding-right:8px}.bd.worker .load{font-style:normal;font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--muted);font-weight:400}.bd.worker .load.over{color:var(--warn)}.bd.cell{display:grid;place-items:center;min-height:38px;border-radius:8px;background:#fafbfb}.chip{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:12px;padding:6px 0;width:100%;text-align:center;border-radius:7px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.leaveChip{background:#8c84ac29;color:var(--leave);display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:10px}.rest{color:#c7d0ce;font-weight:700}.loads{padding:4px 16px 16px;display:flex;flex-direction:column;gap:8px}.loadrow{display:grid;grid-template-columns:minmax(70px,130px) 1fr 70px;align-items:center;gap:10px}.ln{font-size:13px;font-weight:500}.bar{height:11px;background:#eef3f2;border-radius:99px;overflow:hidden}.fill{height:100%;background:linear-gradient(90deg,var(--accent),#1aa089);border-radius:99px;transition:width .4s ease}.fill.over{background:linear-gradient(90deg,#d36,var(--warn))}.lv{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--muted);text-align:right}svg{display:block}.shift-card{display:flex;flex-direction:column;gap:6px;background:#f9fdfb;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.shift-top{display:flex;align-items:center;gap:8px}.shift-top .txt:not(.short){flex:1}.shift-bottom{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.shift-bottom .timefld{flex:1;min-width:80px}.shift-bottom .cov{flex-basis:100%;margin-top:2px}@media(max-width:700px){.kpis{grid-template-columns:repeat(2,1fr);gap:10px}.kpi:last-child{grid-column:1/-1}}@media(max-width:520px){.star{font-size:22px;padding:3px 5px}.rule{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 4px}.rule input[type=range]{width:100%}.kpis{gap:8px}.kpi{padding:11px 10px;gap:8px}.kpi strong{font-size:20px}.kpi span{font-size:11px}.phead{flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px 8px}.loadrow{grid-template-columns:minmax(55px,90px) 1fr 50px}.ln{font-size:12px}.lv{font-size:11px}.warnband{font-size:12px;padding:9px 12px;border-radius:9px}.icon{padding:9px}.add{font-size:12.5px;padding:9px 13px}.stepper button{padding:8px 10px}.wpill{padding:7px 13px;font-size:12.5px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.worker-entry{display:flex;flex-direction:column;gap:4px}.stars{display:inline-flex;gap:1px;align-items:center}.star{border:none;background:none;cursor:pointer;font-size:17px;color:var(--line);padding:1px 3px;line-height:1;transition:color .1s}.star.filled{color:var(--soft)}.star:hover{color:var(--soft);opacity:.75}.workers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.wcard{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:16px 16px 14px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s}.wcard:hover{box-shadow:var(--shadow-sm)}.wcard-top{display:flex;align-items:center;gap:8px}.wcard-name{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:7px;background:#f5f7f6;padding:7px 10px;font:inherit;font-size:15px;font-weight:600;color:var(--ink);outline:none;transition:border-color .15s,background .15s}.wcard-name:hover{background:#eef1ef}.wcard-name:focus{border-color:var(--accent);background:#fff}.wcard-del{flex:none;padding:5px!important}.wcard-meta{display:flex;align-items:center;gap:6px}.wcard-stars{flex:none}.wcard-stars .star{font-size:17px;padding:1px 3px}.wcard-sep{flex:1}.wcard-hours{width:52px;text-align:center;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:500;border:1px solid var(--line);border-radius:5px;padding:4px 5px;background:#f9fafa;color:var(--ink);outline:none;-moz-appearance:textfield}.wcard-hours::-webkit-outer-spin-button,.wcard-hours::-webkit-inner-spin-button{-webkit-appearance:none}.wcard-hours:focus{border-color:var(--accent)}.wcard-hlabel{font-size:11px;color:var(--muted)}.wcard-badge{font-size:11px;padding:2px 7px;margin-left:2px}.wcard-cats{margin-top:0}.modal-overlay{position:fixed;inset:0;z-index:1000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px}.modal-card{background:#fff;border-radius:14px;max-width:640px;width:100%;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-md)}.modal-header{background:var(--ink);color:#fff;padding:14px 18px;display:flex;justify-content:space-between;align-items:flex-start;flex:none}.modal-header-text h2{font-size:16px;font-weight:700;margin:0}.modal-header-text p{font-size:11px;opacity:.7;margin:3px 0 0}.modal-close{background:none;border:none;color:#fff;opacity:.7;font-size:20px;cursor:pointer;line-height:1;padding:0;flex:none}.modal-close:hover{opacity:1}.modal-body{overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:20px}.modal-section h3{font-size:13px;font-weight:700;margin:0 0 10px}.modal-intro{color:var(--muted);line-height:1.6;font-size:13px;margin:0}.tut-steps{display:flex;flex-direction:column;gap:8px}.tut-step{display:flex;gap:10px;align-items:flex-start;background:#f8fdfb;border:1px solid var(--line);border-radius:8px;padding:10px}.tut-step.cta{background:#eef7f4;border-color:var(--accent)}.tut-num{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}.tut-num.grey{background:var(--line);color:var(--muted)}.tut-step-title{font-weight:700;color:var(--ink);margin-bottom:3px;font-size:13px}.tut-step.cta .tut-step-title{color:var(--accent)}.tut-step-body{color:var(--muted);line-height:1.5;font-size:12px}.glossary-items{display:flex;flex-direction:column;gap:6px}.glossary-item{background:#f8faf9;border-radius:7px;padding:9px 12px}.glossary-item strong{display:block;margin-bottom:3px;font-size:13px}.glossary-item p{color:var(--muted);line-height:1.5;font-size:12px;margin:0}.tut-datamodel{margin-top:16px;background:#f3f8f5;border:1px solid rgba(32,143,91,.18);border-radius:10px;padding:16px}.tut-datamodel-title{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:6px}.tut-datamodel-sub{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 12px}.tut-datamodel-sub code{background:#0000000f;border-radius:4px;padding:1px 5px;font-size:11px;font-family:IBM Plex Mono,monospace}.tut-dm-table{width:100%;border-collapse:collapse;font-size:12px}.tut-dm-table th{text-align:left;font-weight:700;color:var(--ink);padding:5px 8px;border-bottom:2px solid rgba(32,143,91,.2);background:#208f5b0f}.tut-dm-table td{padding:6px 8px;border-bottom:1px solid var(--line);color:var(--muted);vertical-align:top;line-height:1.4}.tut-dm-table td:first-child{font-weight:600;color:var(--ink);white-space:nowrap;width:120px}.tut-dm-table tr:last-child td{border-bottom:none}.tut-dm-notsaved{margin-top:12px;font-size:12px;color:var(--muted);background:#0000000a;border-radius:7px;padding:8px 12px;line-height:1.5}.tut-dm-notsaved strong{color:var(--ink)}.sidebar-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px}.sidebar-card-title{font-size:11px;font-weight:700;color:var(--ink);margin-bottom:9px}.step-list{display:flex;flex-direction:column;gap:7px}.step-item{display:flex;align-items:center;gap:7px;font-size:11px}.step-icon{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:9px;flex:none;font-weight:700}.step-icon.done{background:var(--accent);color:#fff}.step-icon.pending{border:2px solid var(--line);color:var(--muted);background:#fff}.step-icon.go{background:var(--accent);color:#fff}.step-label{color:var(--ink);font-weight:500}.step-label.dim{color:var(--muted);font-weight:400}.help-tab-badge{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:3px}.help-tab-title{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:5px}.help-tab-intro{font-size:11px;color:var(--muted);line-height:1.5;margin-bottom:8px}.help-tip{border-radius:6px;padding:7px 9px;font-size:11px;margin-bottom:5px;line-height:1.45}.help-tip:last-child{margin-bottom:0}.help-tip.amber{background:#fff8ec;border:1px solid rgba(185,131,26,.25);color:#8a6512}.help-tip.teal{background:#eef7f4;border:1px solid rgba(15,122,107,.2);color:#0a5a4f}.field-tip{font-size:10px;color:var(--muted);margin-top:2px;line-height:1.3}.bd-stars{display:flex;gap:1px;margin-top:2px}.bd-star{font-size:9px;color:var(--line);line-height:1}.bd-star.filled{color:var(--soft)}.results-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.results-label{font-size:14px;font-weight:700;color:var(--ink)}.pdf-btn{display:inline-flex;align-items:center;gap:7px;background:var(--ink);color:#fff;border:none;font-family:inherit;font-weight:600;font-size:13px;padding:9px 18px;border-radius:9px;cursor:pointer;box-shadow:0 2px #00000038;transition:transform .08s,box-shadow .08s}.pdf-btn:hover{transform:translateY(-1px);box-shadow:0 4px #00000038}.pdf-btn:active{transform:translateY(1px);box-shadow:none}.confirm-btn{display:inline-flex;align-items:center;gap:7px;background:#1a7a4a;color:#fff;border:none;font-family:inherit;font-weight:600;font-size:13px;padding:9px 18px;border-radius:9px;cursor:pointer;box-shadow:0 2px #00000038;transition:transform .08s,box-shadow .08s,background .15s}.confirm-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px #00000038}.confirm-btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.confirm-btn:disabled{opacity:.55;cursor:not-allowed}.confirm-btn.confirm-done{background:#15803d}.confirm-btn.confirm-error{background:#b91c1c}.print-header{display:none;margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--ink)}.print-header h2{font-size:18px;margin:0 0 4px}.print-header p{font-size:12px;color:var(--muted);margin:0}@media print{.app-topbar,.app-sidebar,.guide-panel,.bottom-nav,.bn-overlay,.no-print{display:none!important}.print-header{display:block!important}html,body{height:auto!important;overflow:visible!important}app-root{height:auto!important;display:block!important}.app-shell{height:auto!important;overflow:visible!important;display:block!important}.app-body{height:auto!important;overflow:visible!important;display:block!important;flex-direction:column!important}.app-content{height:auto!important;overflow:visible!important;padding:0!important;display:block!important}.page-body{max-width:none!important;height:auto!important;overflow:visible!important}.covscroll,.boardscroll{overflow:visible!important;width:auto!important;height:auto!important;padding:0}.covgrid,.board{min-width:max-content!important}.panel{border-radius:0!important;box-shadow:none!important;overflow:visible!important;border:none;border-bottom:1px solid #d0d8d5;margin-bottom:16px;padding-bottom:4px;page-break-inside:avoid;break-inside:avoid}.phead{padding:8px 0 6px}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@page{size:A4 landscape;margin:1.5cm}.chip:active{cursor:grabbing}.drag-ghost{position:fixed;pointer-events:none;z-index:9999;transform:rotate(-2deg);padding:3px 10px;border-radius:5px;font-weight:700;font-size:12px;color:var(--ink);white-space:nowrap;-webkit-user-select:none;user-select:none}.drag-source{opacity:.35!important;outline:2px dashed #aaa;outline-offset:-2px;border-radius:4px}.drop-valid{outline:2px solid var(--accent)!important;outline-offset:-2px;border-radius:4px;background:#0f7a6b14!important}.drop-swap{outline:2px solid var(--soft)!important;outline-offset:-2px;border-radius:4px;background:#b9831a17!important}.drop-invalid{outline:2px solid var(--warn)!important;outline-offset:-2px;border-radius:4px;background:#c2463412!important}.confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.cat-pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.cat-pill{display:inline-flex;align-items:center;gap:4px;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid transparent;background:none;font-family:inherit;transition:opacity .1s}.cat-pill.inactive{background:#f0f2f1!important;border-color:#dde0df!important;color:var(--muted)!important;opacity:.65}.cat-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}.cat-req-section{margin-top:8px}.cat-req-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;display:block}.cat-req-row{display:flex;align-items:center;gap:7px;margin-bottom:4px;font-size:12px}.cat-req-total{font-size:11px;color:var(--muted);margin-top:4px}.cat-req-add{font-size:11px;border:1px dashed var(--line);border-radius:6px;padding:3px 8px;background:#fafafa;color:var(--muted);cursor:pointer;margin-top:5px;font-family:inherit}.cat-req-add:hover{border-color:var(--accent);color:var(--accent-d)}.vs{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:8px}.vs-head{display:flex;align-items:center;justify-content:space-between}.vs-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.vs-open-btn{font-size:12px;font-weight:600;color:var(--accent-d);background:none;border:none;cursor:pointer;font-family:inherit;padding:2px 0}.vs-open-btn:hover{text-decoration:underline}.vs-form{background:#f4fbf6;border:1px solid rgba(34,197,94,.2);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.vs-form-hint{font-size:11px;color:var(--muted);margin:0}.vs-presets{display:flex;flex-wrap:wrap;gap:6px}.vs-preset{border-radius:20px;border:1.5px solid var(--line);background:#fff;font-size:12px;font-weight:600;padding:5px 12px;cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s,color .12s}.vs-preset--pos{border-color:#22c55e66;color:#1a6b3a}.vs-preset--pos:hover{background:#22c55e1a;border-color:var(--accent)}.vs-preset--neg{border-color:#d4531a59;color:#b84020}.vs-preset--neg:hover{background:#d4531a14;border-color:#d4531a}.vs-custom-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-top:1px solid rgba(34,197,94,.15);padding-top:8px}.vs-custom-label{font-size:11px;color:var(--muted);white-space:nowrap}.vs-sign-btn{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--accent);background:#22c55e0f;color:#1a6b3a;font-size:15px;font-weight:700;cursor:pointer;display:grid;place-items:center;line-height:1;flex:none;transition:background .1s,border-color .1s,color .1s}.vs-sign--neg{border-color:#d4531a;background:#d4531a0d;color:#b84020}.vs-num{width:48px;border:1px solid var(--line);border-radius:7px;padding:5px 6px;font-size:13px;text-align:center;font-family:inherit;background:#fff}.vs-unit{font-size:12px;color:var(--muted)}.vs-submit{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .12s}.vs-submit:disabled{opacity:.35;cursor:default}.vs-cancel{background:none;border:none;color:var(--muted);font-size:15px;cursor:pointer;padding:0 4px;line-height:1}.vs-variant{background:#fff;border:1.5px solid var(--line);border-radius:10px;overflow:hidden}.vs-variant-head{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#f7f9f8}.vs-delta-badge{font-size:13px;font-weight:800;border-radius:6px;padding:2px 8px;flex:none}.vs-delta--pos{background:#22c55e1f;color:#1a6b3a}.vs-delta--neg{background:#d4531a1a;color:#b84020}.vs-variant-time{font-size:11px;color:var(--muted);flex:1}.vs-variant-del{color:var(--muted);opacity:.6}.vs-variant-del:hover{opacity:1}.vs-edit-btn{font-size:11px;padding:2px 8px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:all .12s}.vs-edit-btn:hover{border-color:var(--accent);color:var(--accent)}.vs-save-btn{display:block;width:calc(100% - 24px);margin:8px 12px 10px;padding:8px;border-radius:8px;border:none;background:var(--accent);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .12s}.vs-save-btn:hover{opacity:.85}.vs-summary{font-size:11px;color:var(--muted);padding:4px 12px 10px;font-style:italic}.vs-variant--editing{background:#34d3990a;border-color:var(--accent)}.vs-days-hint{font-size:10px;color:var(--muted);margin:0;padding:6px 12px 2px}.vs-days{display:grid;grid-template-columns:repeat(7,1fr);padding:6px 8px 10px}.vs-day{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 2px;border-radius:8px;transition:background .12s}.vs-day--active{background:#22c55e12}.vs-day-lbl{font-size:9px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.vs-day-btn{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:13px;font-weight:700;cursor:pointer;display:grid;place-items:center;line-height:1;flex:none;padding:0;transition:border-color .1s,background .1s}.vs-day-btn:hover:not(:disabled){border-color:var(--accent);background:#22c55e0f}.vs-day-btn:disabled{opacity:.25;cursor:default}.vs-day-count{font-size:13px;font-weight:700;color:var(--ink);min-width:16px;text-align:center;line-height:1}.cat-list{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.cat-list-row{display:flex;align-items:center;gap:8px;padding:5px 7px;background:#fafafa;border:1px solid var(--line);border-radius:7px}.cat-list-row input{flex:1;border:none;background:none;font-size:13px;font-weight:500;color:var(--ink);font-family:inherit}.cat-list-row input:focus{outline:none}.cat-color-btn{width:16px;height:16px;border-radius:50%;border:2px solid rgba(0,0,0,.1);cursor:pointer;flex:none;padding:0}.wm-grid{display:grid;grid-template-columns:minmax(110px,160px) repeat(7,1fr);gap:4px;margin-bottom:16px}.wm-day-head{text-align:center;font-size:11px;font-weight:700;color:var(--muted);padding:8px 4px;border-radius:6px 6px 0 0;background:#f5f7f6}.wm-day-head.weekend{background:#22c55e0f;color:var(--accent-d)}.wm-shift-divider{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;padding:10px 12px 6px;border-radius:8px;border-left:3px solid;margin-top:6px}.wm-shift-divider i{font-style:normal;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:400;color:var(--muted)}.wm-dot{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}.wm-shift-label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;padding:0 10px;border-left:3px solid;background:#f8faf9;border-radius:0 6px 6px 0;min-height:44px}.wm-shift-label i{font-style:normal;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:400;color:var(--muted)}.wm-sname{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wm-cat-label{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);padding:0 8px 0 20px;min-height:38px}.wm-total-label{display:flex;align-items:center;font-size:10px;font-weight:700;color:var(--accent-d);padding:0 8px 0 20px;min-height:34px}.wm-cell{display:grid;place-items:center;min-height:42px;border-radius:8px;background:#f3f6f5}.wm-cell.weekend{background:#00000006}.wm-cell.closed{color:#c2cbc9;font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:700;background:#f8f9f9}.wm-cell.total{font-family:IBM Plex Mono,monospace;font-weight:700;color:var(--accent-d);font-size:13px}.wm-num-input{width:100%;border:none;background:transparent;text-align:center;font-size:14px;font-weight:700;font-family:IBM Plex Mono,monospace;color:var(--ink);cursor:pointer}.wm-num-input:focus{outline:none}.wm-num-input.inherited{color:var(--muted);font-weight:400}.wm-cell:focus-within{outline:2px solid var(--accent);outline-offset:-2px}.closure-cards{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:20px}.closure-card{background:#fcfdfd;border:1px solid var(--line);border-radius:10px;padding:10px 8px;display:flex;flex-direction:column;gap:6px;transition:border-color .15s,background .15s}.closure-card.day-closed{background:#dc26260f;border-color:#dc26264d}.cc-head{display:flex;flex-direction:column;align-items:center;gap:1px;margin-bottom:2px}.cc-abbrev{font-size:17px;font-weight:800;color:var(--ink);line-height:1}.closure-card.day-closed .cc-abbrev{color:var(--warn)}.cc-name{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.cc-all-toggle{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:600;cursor:pointer;border-top:1px solid var(--line);padding-top:6px}.cc-all-toggle input[type=checkbox]{accent-color:var(--warn);width:13px;height:13px;cursor:pointer;flex:none}.cc-shift-row{display:flex;align-items:center;gap:4px;font-size:10px;cursor:pointer;border-radius:5px;padding:3px 4px;transition:background .1s}.cc-shift-row:hover{background:#0000000a}.cc-shift-row.shift-closed{background:#dc262612}.cc-shift-row.shift-closed .cc-shift-name{text-decoration:line-through;color:var(--muted)}.cc-shift-dot{width:7px;height:7px;border-radius:50%;flex:none;display:inline-block}.cc-shift-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-shift-row input[type=checkbox]{accent-color:var(--warn);width:12px;height:12px;cursor:pointer;flex:none;margin-left:auto}.cc-closed-label{font-size:11px;font-weight:800;color:var(--warn);text-align:center;letter-spacing:.06em;padding:4px 0}@media(max-width:768px){.closure-cards{grid-template-columns:repeat(4,1fr)}}@media(max-width:480px){.closure-cards{grid-template-columns:repeat(2,1fr)}.workers-grid{grid-template-columns:1fr}}.hours-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:7px;background:#eef7f4;color:var(--accent-d);white-space:nowrap;flex:none}.hours-badge.over{background:#fff3e0;color:#e65100}.guide-panel{width:240px;flex:none;overflow-y:auto;padding:16px 12px 16px 0;background:var(--panel)}.help-panel{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.help-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 12px;background:none;border:none;cursor:pointer;font-family:inherit;gap:6px;text-align:left}.help-toggle:hover{background:#f5f7f6}.help-toggle-inner{display:flex;align-items:baseline;gap:4px;font-size:11px;overflow:hidden;flex:1;min-width:0}.help-toggle-icon{flex:none}.help-toggle-label{font-weight:700;color:var(--ink);white-space:nowrap}.help-toggle-sep{color:var(--muted);flex:none}.help-toggle-title{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.help-caret{font-size:8px;color:var(--muted);flex:none}.help-body{border-top:1px solid var(--line);padding:10px}.help-body--hidden{display:none}@media(min-width:1025px){.help-body--hidden{display:block}.help-caret,.help-toggle{cursor:default}}.help-body .sidebar-card{margin-bottom:8px}.help-body .sidebar-card:last-child{margin-bottom:0}@media(max-width:1024px){.guide-panel{display:block;position:fixed;bottom:calc(60px + env(safe-area-inset-bottom,0));left:0;right:0;width:auto;padding:0;overflow:visible;z-index:150;background:transparent}.help-panel{border-radius:10px 10px 0 0;border-bottom:none;max-height:60vh;overflow-y:auto}.help-toggle{background:#f5f7f6;border-radius:10px 10px 0 0}.guide-panel--hidden{display:none}}.bottom-nav{display:none}.bn-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;padding:0 4px 8px;border:none;background:none;color:#4d7a65;cursor:pointer;font-family:inherit;transition:color .1s}.bn-tab.active{color:var(--accent)}.bn-tab.active .bn-icon{transform:scale(1.12)}.bn-icon{font-size:21px;line-height:1;transition:transform .15s}.bn-lbl{font-size:9px;font-weight:600;letter-spacing:.01em;line-height:1}.bn-tab .bn-lbl{color:inherit}.bn-center{flex:none;width:80px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;padding:0 4px 8px;border:none;background:none;cursor:pointer;font-family:inherit;color:var(--accent);position:relative;overflow:visible}.bn-disk{width:52px;height:52px;border-radius:50%;background:var(--accent);color:#0f1f1a;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;box-shadow:0 -3px 14px #22c55e66,0 4px 10px #0000004d;position:absolute;top:-14px;left:50%;transform:translate(-50%);transition:transform .12s,background .12s}.bn-center:active .bn-disk{transform:translate(-50%) scale(.93);background:var(--accent-d)}.bn-disk-badge{position:absolute;top:-3px;right:-3px;background:var(--warn);color:#fff;font-size:8px;font-weight:700;width:14px;height:14px;border-radius:50%;display:grid;place-items:center}.bn-center .bn-lbl{font-weight:700;font-size:9px;text-transform:uppercase;letter-spacing:.04em}.bn-overlay{position:fixed;inset:0 0 calc(60px + env(safe-area-inset-bottom,0)) 0;background:#00000073;z-index:150;display:flex;align-items:flex-end}.bn-sheet{width:100%;background:var(--panel);border-radius:18px 18px 0 0;padding:12px 16px 24px;box-shadow:0 -4px 24px #0000002e}.bn-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 16px}.bn-sheet-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:12px}.bn-sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bn-sheet-item{display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 8px;border:1.5px solid var(--line);border-radius:12px;background:none;cursor:pointer;font-family:inherit;transition:border-color .1s,background .1s}.bn-sheet-item.active{border-color:var(--accent);background:#22c55e12}.bn-sheet-icon{font-size:24px;line-height:1}.bn-sheet-lbl{font-size:12px;font-weight:600;color:var(--ink)}.btn-contact{background:none;border:1px solid #2d5045;color:#4d7a65;border-radius:6px;width:32px;height:28px;font-size:14px;cursor:pointer;display:grid;place-items:center;font-family:inherit;transition:border-color .1s,color .1s}.btn-contact:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:768px){.app-sidebar{display:none}.app-content{padding:16px 16px calc(114px + env(safe-area-inset-bottom,0))}.bottom-nav{display:flex;align-items:stretch;position:fixed;bottom:0;left:0;right:0;height:60px;background:var(--sidebar);border-top:1px solid #1e3028;z-index:200;padding-bottom:env(safe-area-inset-bottom,0);overflow:visible;box-shadow:0 -2px 10px #0000004d}.topbar-mobile-only{display:grid}.bd.corner,.bd.worker{min-width:100px}.bd.head,.bd.cell{min-width:32px}.cv.label{min-width:90px}.cv.head,.cv.num{min-width:32px}.reqscroll{display:none}.req-mobile{display:flex!important}.chip{touch-action:pan-x pan-y}}.req-mobile{display:none;flex-direction:column;gap:2px}.rl-row{display:flex;align-items:center;gap:5px;padding:5px 0;border-bottom:1px solid var(--line)}.rl-row:last-child{border-bottom:none}.rl-day{font-size:11px;font-weight:600;color:var(--ink);font-family:IBM Plex Mono,monospace;min-width:52px;flex:none}.rl-cell{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 3px;border:1px solid var(--line);border-radius:7px;background:#fcfdfd;cursor:pointer;font-family:inherit}.rl-cell.soft{background:#b9831a29;border-color:var(--soft)}.rl-cell.hard{background:#c2463424;border-color:var(--warn)}.rl-name{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.rl-glyph{font-size:13px;font-weight:700;font-family:IBM Plex Mono,monospace;min-height:16px;line-height:1;color:var(--muted)}.rl-cell.soft .rl-glyph{color:var(--soft)}.rl-cell.hard .rl-glyph{color:var(--warn)}.closure-hint{font-size:11px;color:var(--muted);line-height:1.5;margin-bottom:14px;padding:8px 10px;background:#f5f7f6;border-radius:7px;border-left:3px solid var(--accent)}.closure-hint strong{color:var(--ink);font-weight:600}details.tab-intro{font-size:13px;color:var(--ink);line-height:1.65;margin-bottom:18px;padding:10px 14px;background:#f0f5f2;border-radius:9px}details.tab-intro summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;list-style:none;font-weight:600}details.tab-intro summary::-webkit-details-marker{display:none}details.tab-intro summary:after{content:"mostra altro \25bc";font-size:11px;font-weight:400;color:var(--accent);flex:none;white-space:nowrap}details.tab-intro[open] summary:after{content:"mostra meno \25b2"}details.tab-intro[open] summary{margin-bottom:8px}details.tab-intro strong{font-weight:600}details.tab-intro ul{margin:4px 0 0;padding-left:16px}details.tab-intro li{margin-bottom:3px}details.tab-intro .tip{display:block;margin-top:8px;font-size:11.5px;color:var(--muted)}.wl-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:56px 24px;text-align:center}.wl-empty-icon{font-size:52px;opacity:.2}.wl-empty-title{font-size:17px;font-weight:700;color:var(--ink)}.wl-empty-sub{font-size:13px;color:var(--muted);max-width:320px;line-height:1.5}.wl-list{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.wl-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;text-align:left;width:100%;font-family:inherit;transition:background .1s,border-color .1s}.wl-row:hover{background:#f5f7f6;border-color:#c5cbc9}.wl-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:17px;font-weight:700;flex:none}.wl-info{flex:1;min-width:0}.wl-name{font-size:14px;font-weight:600;color:var(--ink)}.wl-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.wl-role{font-size:11px;color:var(--muted)}.wl-stars{font-size:11px;color:#f59e0b;letter-spacing:1px}.wl-hours{font-size:11px;color:var(--muted)}.wl-badges{display:flex;gap:5px;align-items:center;flex:none}.wl-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap}.wl-badge--err{background:#fee2e2;color:#dc2626}.wl-badge--warn{background:#fef3c7;color:#b45309}.wl-badge--hours{background:#f0f5f2;color:var(--muted)}.wl-badge--hours.over{background:#fee2e2;color:#dc2626}.wl-chevron{color:var(--muted);flex:none}.wl-modal-overlay{position:fixed;inset:0;background:#00000073;z-index:400;display:flex;align-items:center;justify-content:center;padding:16px}.wl-modal{background:var(--panel);border-radius:14px;padding:0;width:100%;max-width:500px;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-md);display:flex;flex-direction:column}.wl-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.wl-modal-title{font-size:17px;font-weight:700;color:var(--ink)}.wl-modal-close{background:none;border:none;font-size:18px;color:var(--muted);cursor:pointer;padding:2px 6px;border-radius:5px;line-height:1}.wl-modal-close:hover{background:#f0f0f0;color:var(--ink)}.wl-modal-actions{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--line);background:var(--panel);position:sticky;bottom:0}.wl-form-section{padding:16px 20px}.wl-form-section--required{background:#f9fefb;border-bottom:1px solid var(--line)}.wl-form-section--optional{border-bottom:1px solid var(--line)}.wl-form-section--optional[open]{padding-bottom:12px}.wl-form-section-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);display:flex;align-items:center;gap:8px;margin-bottom:14px}.wl-form-section-toggle{cursor:pointer;list-style:none;margin-bottom:0}.wl-form-section-toggle::-webkit-details-marker{display:none}.wl-form-section-toggle:after{content:"\25b6";font-size:9px;margin-left:auto}.wl-form-section--optional[open] .wl-form-section-toggle{margin-bottom:14px}.wl-form-section--optional[open] .wl-form-section-toggle:after{content:"\25bc"}.wl-optional-badge{font-size:10px;font-weight:600;text-transform:lowercase;padding:2px 7px;border-radius:10px;background:#e5e7eb;color:#6b7280;letter-spacing:0}.wl-form-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.wl-form-field:last-child{margin-bottom:0}.wl-field-label{font-size:12px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:4px}.wl-required-mark{color:#ef4444;font-size:14px;line-height:1}.wl-field-input{font-size:13px;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px 10px;background:var(--panel);font-family:inherit;outline:none;width:100%}.wl-field-input:focus{border-color:var(--accent)}.wl-field-input.wl-field-error{border-color:#ef4444;background:#fff5f5}.wl-field-hint{font-size:11px}.wl-field-hint--err{color:#ef4444}.wl-field-narrow{max-width:100px;width:100px}.wl-stars-row{display:flex;align-items:center;gap:4px}.wl-stars-hint{font-size:11px;color:var(--muted);margin-left:6px}.wl-inline-row{display:flex;gap:8px}.wl-inline-row .wl-field-input{flex:1}.wl-label-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.wl-label-row .wl-field-label{margin-bottom:0}.wl-info-btn{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--muted);background:none;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer;display:grid;place-items:center;line-height:1;flex:none;font-family:serif}.wl-info-btn:hover,.wl-info-btn.active{border-color:var(--accent);color:var(--accent);background:#22c55e14}.wl-new-cat-btn{margin-left:auto;font-size:11px;font-weight:600;color:var(--accent);background:none;border:1.5px dashed var(--accent);border-radius:6px;padding:3px 9px;cursor:pointer;font-family:inherit;white-space:nowrap}.wl-new-cat-btn:hover{background:#22c55e12}.wl-cat-info-panel{background:#1c2b22;color:#d1fae5;border-radius:10px;padding:13px 15px;font-size:12px;line-height:1.6;margin-bottom:8px;position:relative}.wl-cat-info-panel strong{color:#6ee7b7;font-weight:700}.wl-cat-info-panel em{color:#a7f3d0;font-style:normal;font-weight:600}.wl-cat-info-panel p{margin:6px 0 0}.wl-cat-info-panel p:first-of-type{margin-top:8px}.wl-cat-info-close{position:absolute;top:8px;right:10px;background:none;border:none;color:#6ee7b7;font-size:14px;cursor:pointer;line-height:1;padding:2px 4px}.wl-cat-form{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:6px;display:flex;flex-direction:column;gap:8px;background:#fafafa}.wl-cat-form-actions{display:flex;gap:8px}.wl-cat-empty{font-size:12px;color:var(--muted);background:#f5f7f6;border-radius:7px;padding:10px 12px;line-height:1.5}.wl-cat-empty strong{color:var(--ink)}.wd-shell{display:flex;flex-direction:column;gap:0}.wd-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.wd-back{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;padding:0}.wd-back:hover{text-decoration:underline}.wd-delete{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;transition:color .1s,background .1s}.wd-delete:hover{color:var(--warn);background:#fee2e2}.wd-name-row{display:flex;align-items:center;gap:14px;margin-bottom:22px}.wd-avatar{width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:700;flex:none}.wd-name-input{font-size:20px;font-weight:700;color:var(--ink);border:none;border-bottom:2px solid var(--line);background:none;width:100%;font-family:inherit;padding:4px 0;outline:none}.wd-name-input:focus{border-bottom-color:var(--accent)}.wd-section{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}.wd-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px;display:flex;align-items:center;gap:8px}.wd-badge-warn{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;background:#fef3c7;color:#b45309}.wd-badge-soft{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;background:#fff3cd;color:#92400e}.wd-field-row{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid #f3f4f6}.wd-field-row:last-child{border-bottom:none}.wd-field-row--top{align-items:flex-start}.wd-field-label{font-size:12px;color:var(--muted);width:120px;flex:none}.wd-field-input{font-size:13px;color:var(--ink);border:none;background:none;width:100%;font-family:inherit;outline:none;padding:2px 4px;border-radius:4px}.wd-field-input:focus{background:#f0f5f2}.wd-field-narrow{max-width:90px}.wd-stars{display:flex;gap:2px}.wd-cats{display:flex;flex-wrap:wrap;gap:6px;padding-top:2px}.wd-notes{width:100%;font-family:inherit;font-size:13px;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px 10px;resize:vertical;outline:none}.wd-notes:focus{border-color:var(--accent)}.wd-course{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:7px;border:1px solid var(--line);margin-bottom:6px;background:#fafafa}.wd-course--expired{background:#fff5f5;border-color:#fecaca}.wd-course--expiring{background:#fffbeb;border-color:#fde68a}.wd-course-main{flex:1;min-width:0}.wd-course-name{font-size:13px;font-weight:600;color:var(--ink)}.wd-course-dates{font-size:11px;color:var(--muted);margin-top:3px;display:flex;flex-direction:column;gap:2px}.wd-course-expiry{color:var(--muted)}.wd-course-expiry.expired{color:var(--warn)}.wd-course-expiry.expiring{color:#b45309}.wd-course-del{color:var(--muted);flex:none}.wd-course-del:hover{color:var(--warn)}.wd-add-course{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--accent);background:none;border:1.5px dashed var(--accent);border-radius:7px;padding:7px 12px;cursor:pointer;font-family:inherit;width:100%;justify-content:center;transition:background .1s}.wd-add-course:hover{background:#22c55e12}.wd-course-form{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px;background:#fafafa}.wd-course-form-dates{display:flex;gap:12px}.wd-course-form-dates>div{flex:1;display:flex;flex-direction:column;gap:4px}.wd-course-form-actions{display:flex;gap:8px}.btn-primary{background:var(--accent);color:#0f1f1a;border:none;font-weight:700;font-size:13px;padding:9px 20px;border-radius:7px;cursor:pointer;font-family:inherit;transition:background .1s}.btn-primary:hover{background:var(--accent-d)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-sm{background:none;border:1px solid var(--line);color:var(--ink);font-size:13px;padding:8px 16px;border-radius:7px;cursor:pointer;font-family:inherit;transition:background .1s}.btn-sm:hover{background:#f0f5f2}.wd-avatar--clickable{position:relative;cursor:pointer;overflow:hidden}.wd-photo-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.wd-photo-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;opacity:0;border-radius:50%;font-size:18px;transition:opacity .15s}.wd-avatar--clickable:hover .wd-photo-overlay{opacity:1}.wl-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.wd-section{border:1px solid var(--line);border-radius:10px;padding:0;margin-bottom:12px;overflow:hidden}.wd-section summary.wd-section-title{cursor:pointer;list-style:none;padding:11px 14px;display:flex;align-items:center;gap:8px;background:#fafafa;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.wd-section summary.wd-section-title::-webkit-details-marker{display:none}.wd-section summary.wd-section-title:after{content:"\25b6";font-size:10px;color:var(--muted);margin-left:auto}.wd-section[open] summary.wd-section-title:after{content:"\25bc"}.wd-section[open] summary.wd-section-title{border-bottom:1px solid var(--line)}.wd-section .wd-field-row{margin:0 14px}.wd-section .wd-field-row:first-of-type{margin-top:8px}.wd-section>div:last-child,.wd-section>textarea:last-child,.wd-section>button:last-child{margin-bottom:12px}.wd-subsection-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:12px 14px 6px}.wd-alert-row{background:#fff3cd;border-radius:6px;font-size:12px;font-weight:600;color:#92400e;padding:6px 10px;margin:4px 14px}.wd-date-urgent{border:1px solid #ef4444!important;background:#fff5f5}.wd-badge-err{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:#fee2e2;color:#dc2626}.wd-dpi-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #f3f4f6;margin:0 14px}.wd-dpi-row:last-of-type{border-bottom:none}.wd-dpi-check{display:flex;align-items:center;gap:7px;flex:1;cursor:pointer;font-size:13px}.wd-dpi-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.wd-dpi-name{color:var(--ink)}.wd-dpi-name.received{text-decoration:line-through;color:var(--muted)}.wd-dpi-date{font-size:11px;color:var(--muted);white-space:nowrap;flex:none}.wd-dpi-preset{background:#f0f5f2;border:1px solid var(--line);border-radius:6px;font-size:11px;padding:3px 8px;cursor:pointer;color:var(--ink);font-family:inherit}.wd-dpi-preset.active{background:var(--accent);color:#0f1f1a;border-color:var(--accent)}.wd-leave-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:6px 14px 2px}.wd-leave-card{background:#f9fafb;border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px}.wd-leave-card--highlight{background:#f0f5f2;border-color:var(--accent)}.wd-leave-card-label{font-size:10px;font-weight:600;text-transform:uppercase;color:var(--muted);letter-spacing:.05em}.wd-leave-num{width:56px;font-size:16px;font-weight:700;text-align:center;border:none;background:none;color:var(--ink);font-family:inherit;outline:none}.wd-leave-num:focus{background:#e8f5e9;border-radius:4px}.wd-leave-num--display{font-size:16px;font-weight:700;color:var(--ink);padding:2px 0}.wd-leave-unit{font-size:10px;color:var(--muted)}@media(max-width:480px){.wd-leave-grid{grid-template-columns:1fr 1fr}}.wd-leave-req{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:4px 14px;font-size:12px}.wd-leave-req.approved{border-color:#86efac;background:#f0fdf4}.wd-leave-req.rejected{border-color:#fca5a5;background:#fff5f5}.wd-leave-req-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wd-leave-req-type{font-weight:700;color:var(--ink)}.wd-leave-req-dates{flex:1;min-width:0;color:var(--muted)}.wd-leave-status-sel{font-size:11px;border:1px solid var(--line);border-radius:5px;padding:2px 4px;background:none;color:var(--ink);font-family:inherit;cursor:pointer}.wd-leave-req-note{font-size:11px;color:var(--muted);margin-top:4px}.wd-leave-req.grid-linked{background:#f8faff;border-color:#bfdbfe}.wd-leave-grid-badge{font-size:13px;flex:none}.wd-leave-status-label{font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px}.wd-leave-status-label.approved{background:#dcfce7;color:#16a34a}.wd-section .wd-add-course{margin:6px 14px}.wd-section .wd-course{margin:4px 14px}.wd-section .wd-course-form{margin:6px 14px}.wd-section .wd-notes{margin:8px 14px;width:calc(100% - 28px)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:14px;padding:56px 24px;text-align:center}.empty-state .esi{font-size:56px;opacity:.25;line-height:1}.empty-state h3{font-size:17px;font-weight:700;color:var(--ink);margin:0}.empty-state p{font-size:13px;color:var(--muted);max-width:320px;line-height:1.55;margin:0}.empty-warn{font-size:12px;padding:8px 12px;background:#c2463412;border-radius:7px;border-left:3px solid var(--warn);color:var(--warn);text-align:left;max-width:320px}.empty-warn strong{font-weight:600}.board-desktop{display:none}.bm-board{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:start}.board-view-grid .board-desktop{display:block}.board-view-grid .bm-board{display:none}@media(max-width:768px){.board-desktop{display:none!important}.bm-board{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:10px}.cov-panel{display:none}}@media(max-width:480px){.bm-board{display:block!important}.bm-day{display:none!important}.bm-day.bm-day-active{display:block!important}}.view-toggle{display:flex;gap:6px;margin-left:auto}.view-toggle-btn{font-size:13px;font-weight:600;padding:7px 18px;border-radius:8px;border:1.5px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font-family:inherit;transition:background .15s,color .15s,border-color .15s}.view-toggle-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.view-toggle-btn:not(.active):hover{border-color:var(--ink);color:var(--ink)}@media(max-width:768px){.view-toggle{display:none}}.bm-day-nav{display:none;align-items:center;gap:10px;margin-bottom:12px;background:var(--panel);border:1.5px solid var(--line);border-radius:12px;padding:10px 12px}.bm-day-nav-btn{width:38px;height:38px;border-radius:8px;border:1px solid var(--line);background:none;cursor:pointer;font-size:15px;display:grid;place-items:center;transition:background .1s;flex:none;font-family:inherit}.bm-day-nav-btn:hover:not(:disabled){background:#0000000d}.bm-day-nav-btn:disabled{opacity:.3;cursor:not-allowed}.bm-day-nav-label{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px}.bm-day-nav-wd{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.bm-day-nav-date{font-size:20px;font-weight:800;color:var(--ink);line-height:1.1}.bm-day-nav-cnt{font-size:9px;color:var(--muted);margin-top:1px}.bm-nav-wend .bm-day-nav-wd,.bm-nav-wend .bm-day-nav-date{color:#6b5d7a}@media(max-width:480px){.bm-day-nav{display:flex}}.bm-day{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);box-shadow:0 1px 5px #0000000d;min-width:0}.bm-head{padding:10px 12px 8px;background:#f5f7f6;border-bottom:1px solid var(--line)}.bm-head.wend{background:#8c84ac1a}.bm-head.closed{opacity:.65}.bm-head-abbrev{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);line-height:1;margin-bottom:2px}.bm-head-num{font-size:28px;font-weight:800;line-height:1;color:var(--ink)}.bm-head.wend .bm-head-abbrev,.bm-head.wend .bm-head-num{color:#6b5d7a}.bm-body{padding:8px;display:flex;flex-direction:column;gap:6px}.bm-shift{border-radius:8px;border:1px solid rgba(0,0,0,.07);overflow:hidden;background:#fff}.bm-shift-head{display:flex;align-items:center;gap:5px;padding:5px 8px;background:#00000006;border-bottom:1px solid rgba(0,0,0,.05)}.bm-sdot{width:7px;height:7px;border-radius:50%;flex:none}.bm-sname{font-size:10px;font-weight:700;flex:1;color:var(--ink);text-transform:uppercase;letter-spacing:.04em}.bm-cov{font-size:10px;font-family:IBM Plex Mono,monospace;font-weight:700;padding:1px 5px;border-radius:4px}.bm-cov.ok{color:var(--accent);background:#208f5b1a}.bm-cov.bad{color:var(--warn);background:#c246341a}.bm-workers{display:flex;flex-wrap:wrap;gap:3px;padding:5px 8px 6px}.bm-chip{font-size:10px;font-weight:500;padding:2px 6px;border-radius:4px;background:#f0f5f2;color:var(--ink)}.bm-ferie-chip{background:#8c84ac1f;color:#6b5d7a}.bm-uncovered{font-size:10px;color:var(--warn);font-style:italic;padding:4px 8px 5px}.bm-empty-day{font-size:11px;color:var(--muted);font-style:italic;padding:8px 0;text-align:center}.bm-closed-day{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:600;color:#8c84ac;padding:12px 8px;letter-spacing:.03em}.bm-closed-badge{font-size:9px;font-weight:700;color:#8c84ac;background:#8c84ac1f;border:1px solid rgba(140,132,172,.25);border-radius:4px;padding:1px 5px;letter-spacing:.03em;text-transform:uppercase}.np-wrap{position:relative}.btn-notify{position:relative;background:none;border:1px solid #2d5045;color:#4d7a65;border-radius:6px;width:32px;height:28px;font-size:14px;cursor:pointer;display:grid;place-items:center;font-family:inherit;transition:border-color .15s,color .15s,background .15s}.btn-notify:hover{border-color:var(--accent);color:var(--accent)}.btn-notify--urgent{border-color:#d4531a;color:#d4531a;animation:np-pulse 2.5s ease-in-out infinite}.btn-notify--warning{border-color:#c89a00;color:#c89a00}@keyframes np-pulse{0%,to{box-shadow:none}50%{box-shadow:0 0 0 3px #d4531a33}}.notify-badge{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;border-radius:8px;background:#c89a00;color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 3px;line-height:1;pointer-events:none}.notify-badge--urgent{background:#d4531a}.np-backdrop{position:fixed;inset:0;z-index:299}.np-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:300;width:340px;max-width:calc(100vw - 16px);background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column;overflow:hidden}.np-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}.np-title{font-size:13px;font-weight:700;color:var(--fg)}.np-close{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:0;line-height:1}.np-close:hover{color:var(--fg)}.np-empty{display:flex;align-items:center;gap:8px;padding:18px 14px;color:var(--muted);font-size:13px}.np-empty-icon{font-size:18px;color:#4d7a65}.np-list{max-height:340px;overflow-y:auto}.np-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);transition:background .1s}.np-item:last-child{border-bottom:none}.np-item--expired{background:#c832320d}.np-item--urgent{background:#d4531a0d}.np-item--warning{background:#c89a000a}.np-sev-icon{font-size:16px;flex:none}.np-item-body{flex:1;min-width:0}.np-item-worker{font-size:13px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.np-item-detail{font-size:11px;color:var(--muted);margin-top:1px}.np-item-detail em{font-style:normal;color:var(--fg)}.np-item-days{font-size:11px;font-weight:700;text-align:right;flex:none;white-space:pre-line}.np-days--expired{color:#c83232}.np-days--urgent{color:#d4531a}.np-days--warning{color:#c89a00}.np-footer{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border-top:1px solid var(--line)}.np-btn{display:block;width:100%;padding:7px 12px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;text-align:center;text-decoration:none;font-family:inherit;border:none;transition:background .15s,color .15s}.np-btn--email{background:var(--accent);color:#fff}.np-btn--email:hover{background:#2d5045;color:#fff}.np-btn--push{background:#4d7a651f;color:var(--accent);border:1px solid rgba(77,122,101,.3)}.np-btn--push:hover{background:#4d7a6533}.np-push-ok{font-size:11px;color:var(--muted);text-align:center}.btn-login{font-size:12px;font-weight:600;padding:5px 14px;border-radius:7px;border:1.5px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;font-family:inherit;transition:background .15s,color .15s;white-space:nowrap}.btn-login:hover{background:var(--accent);color:#fff}.save-status{font-size:11px;font-weight:600;padding:3px 8px;border-radius:5px;white-space:nowrap}.save-status.saving{color:var(--muted)}.save-status.saved{color:var(--accent)}.save-status.error{color:var(--warn)}.user-menu{position:relative;display:flex;align-items:center}.user-avatar-btn{background:none;border:none;padding:0;cursor:pointer;border-radius:50%;display:flex}.user-avatar-btn.open .user-avatar,.user-avatar-btn.open .user-avatar-initial{outline:2px solid var(--accent);outline-offset:2px}.user-avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--accent);object-fit:cover;display:block}.user-avatar-initial{width:32px;height:32px;border-radius:50%;border:2px solid var(--accent);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.user-menu-backdrop{position:fixed;inset:0;z-index:199}.user-dropdown{position:absolute;top:calc(100% + 10px);right:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;min-width:200px;box-shadow:0 8px 28px #00000024;z-index:200}.user-dropdown-name{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap}.user-dropdown-email{font-size:11px;color:var(--muted);white-space:nowrap;margin-top:2px}.user-dropdown-sep{border:none;border-top:1px solid var(--line);margin:10px 0}.user-dropdown-logout{font-size:13px;font-weight:600;color:var(--warn);background:#c2463412;border:1px solid rgba(194,70,52,.18);border-radius:7px;padding:7px 14px;cursor:pointer;font-family:inherit;width:100%;text-align:left}.user-dropdown-logout:hover{background:#c2463426}.lp-shell{display:flex;min-height:100vh;min-height:100dvh}.lp-left{flex:1;background:linear-gradient(145deg,#0f2018,#163222 60%,#1a3d28);display:flex;flex-direction:column;justify-content:center;padding:60px 56px;color:#fff;position:relative;overflow:hidden}.lp-left:before{content:"\25c6";position:absolute;font-size:320px;color:#ffffff08;right:-60px;bottom:-80px;line-height:1}.lp-brand{display:flex;align-items:center;gap:10px;margin-bottom:48px}.lp-logo{font-size:22px;color:var(--accent)}.lp-app-name{font-size:16px;font-weight:700;letter-spacing:.02em;color:#ffffffe6}.lp-headline{font-size:40px;font-weight:800;line-height:1.15;margin:0 0 16px;color:#fff}.lp-tagline{font-size:15px;color:#fff9;line-height:1.6;margin:0 0 40px;max-width:360px}.lp-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.lp-features li{display:flex;align-items:center;gap:14px;font-size:14px;color:#ffffffbf}.lp-feat-icon{width:34px;height:34px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}.lp-right{width:440px;flex:none;display:flex;align-items:center;justify-content:center;background:#f7f9f7;padding:40px 32px}.lp-card{width:100%;max-width:360px}.lp-card-title{font-size:26px;font-weight:800;color:var(--ink);margin:0 0 8px}.lp-card-sub{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 32px}.lp-btn-google{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 20px;border-radius:10px;border:1.5px solid #dadce0;background:#fff;color:#3c4043;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:box-shadow .15s,border-color .15s;box-shadow:0 1px 3px #00000014}.lp-btn-google:hover{box-shadow:0 3px 12px #00000021;border-color:#bdc1c6}.lp-btn-google:disabled{opacity:.6;cursor:not-allowed}.lp-btn-spinner{width:18px;height:18px;border:2px solid #dadce0;border-top-color:#3c4043;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lp-error{margin:14px 0 0;padding:10px 14px;background:#c2463412;border:1px solid rgba(194,70,52,.18);border-radius:8px;font-size:13px;color:var(--warn);line-height:1.4}.lp-divider{display:flex;align-items:center;gap:12px;margin:24px 0;color:var(--muted);font-size:12px}.lp-divider:before,.lp-divider:after{content:"";flex:1;height:1px;background:var(--line)}.lp-btn-skip{display:block;width:100%;padding:12px 20px;border-radius:10px;border:1.5px solid var(--line);background:transparent;color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}.lp-btn-skip:hover{background:var(--surface)}.lp-skip-note{font-size:12px;color:var(--muted);margin:10px 0 0;text-align:center;line-height:1.4}.lp-footer-links{margin-top:20px;text-align:center}.lp-link{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:2px;padding:0;transition:color .15s}.lp-link:hover{color:var(--ink)}@media(max-width:768px){.lp-shell{flex-direction:column}.lp-left{padding:32px 24px 28px;flex:none}.lp-headline{font-size:28px}.lp-features{display:none}.lp-right{width:100%;flex:1;padding:32px 20px}}.cp-shell{display:flex;min-height:100vh;min-height:100dvh}.cp-left{flex:1;background:linear-gradient(145deg,#0f2018,#163222 60%,#1a3d28);display:flex;flex-direction:column;justify-content:center;padding:60px 56px;color:#fff;position:relative;overflow:hidden}.cp-left:before{content:"\25c6";position:absolute;font-size:320px;color:#ffffff08;right:-60px;bottom:-80px;line-height:1}.cp-brand{display:flex;align-items:center;gap:10px;margin-bottom:48px}.cp-logo{font-size:22px;color:var(--accent)}.cp-app-name{font-size:16px;font-weight:700;letter-spacing:.02em;color:#ffffffe6}.cp-headline{font-size:40px;font-weight:800;line-height:1.15;margin:0 0 16px;color:#fff}.cp-tagline{font-size:15px;color:#fff9;line-height:1.6;margin:0 0 40px;max-width:360px}.cp-contact-info{display:flex;flex-direction:column;gap:14px}.cp-info-row{display:flex;align-items:center;gap:14px;font-size:14px;color:#ffffffbf}.cp-info-icon{width:34px;height:34px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}.cp-right{width:480px;flex:none;display:flex;align-items:flex-start;justify-content:center;background:#f7f9f7;padding:40px 32px;overflow-y:auto}.cp-card{width:100%;max-width:400px;padding-top:8px}.cp-back{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;font-family:inherit;padding:0 0 20px;display:flex;align-items:center;gap:4px;transition:color .15s}.cp-back:hover{color:var(--ink)}.cp-card-title{font-size:26px;font-weight:800;color:var(--ink);margin:0 0 8px}.cp-card-sub{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 28px}.cp-form{display:flex;flex-direction:column;gap:16px}.cp-field{display:flex;flex-direction:column;gap:5px}.cp-label{font-size:13px;font-weight:600;color:var(--ink)}.cp-input{width:100%;padding:11px 14px;border-radius:8px;border:1.5px solid var(--line);background:#fff;font-size:14px;font-family:inherit;color:var(--ink);outline:none;transition:border-color .15s}.cp-input:focus{border-color:var(--accent)}.cp-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7280' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.cp-textarea{resize:vertical;min-height:120px}.cp-error{padding:10px 14px;background:#c2463412;border:1px solid rgba(194,70,52,.18);border-radius:8px;font-size:13px;color:var(--warn);line-height:1.4}.cp-btn-submit{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;border-radius:10px;border:none;background:var(--accent);color:#0f1f1a;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}.cp-btn-submit:hover:not(:disabled){background:var(--accent-d);color:#fff}.cp-btn-submit:disabled{opacity:.6;cursor:not-allowed}.cp-spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.2);border-top-color:#0f1f1a;border-radius:50%;animation:spin .7s linear infinite}.cp-success{text-align:center;padding:40px 20px}.cp-success-icon{width:56px;height:56px;background:#22c55e1f;border:2px solid var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--accent);margin:0 auto 20px}.cp-success h2{font-size:22px;font-weight:800;color:var(--ink);margin:0 0 10px}.cp-success p{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 24px}.cp-btn-back-success{padding:11px 24px;border-radius:8px;border:1.5px solid var(--line);background:transparent;color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}.cp-btn-back-success:hover{background:var(--line)}@media(max-width:768px){.cp-shell{flex-direction:column}.cp-left{padding:32px 24px 28px;flex:none}.cp-headline{font-size:28px}.cp-contact-info{display:none}.cp-right{width:100%;flex:1;padding:28px 20px}}.sigla-wrap{display:flex;flex-direction:column;align-items:center;gap:2px}.sigla-wrap .field-sub{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}@media(min-width:769px)and (max-width:1024px){.app-content{padding:20px 24px}}.nav-item-storico{margin-top:4px;border-top:1px solid #1e3028;padding-top:4px}.hist-loading{padding:48px;text-align:center;color:var(--muted);font-size:14px}.hist-empty{padding:64px 20px;text-align:center}.hist-empty-icon{font-size:40px;margin-bottom:14px}.hist-empty-title{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:8px}.hist-empty-sub{font-size:14px;color:var(--muted);line-height:1.55;max-width:340px;margin:0 auto}.hist-list{display:flex;flex-direction:column;gap:10px}.hist-week{border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);transition:border-color .15s}.hist-week.hist-open{border-color:var(--accent)}.hist-week-head{width:100%;background:none;border:none;padding:14px 16px;cursor:pointer;display:flex;align-items:center;gap:10px;text-align:left;font-family:inherit;transition:background .1s}.hist-week-head:hover{background:#00000006}.hist-week-info{flex:1;min-width:0}.hist-week-range{font-size:14px;font-weight:700;color:var(--ink)}.hist-week-meta{font-size:11px;color:var(--muted);margin-top:2px}.hist-pills{display:flex;gap:5px;flex-wrap:wrap}.hist-pill{font-size:11px;font-weight:600;padding:2px 7px;border-radius:20px;white-space:nowrap}.hist-plan{background:#6b72801a;color:var(--muted)}.hist-ok{background:#16a34a1f;color:#15803d}.hist-ko{background:#dc26261a;color:#b91c1c}.hist-chev{font-size:10px;color:var(--muted);flex:none}.hist-week-body{border-top:1px solid var(--line)}.hist-day{border-bottom:1px solid var(--line)}.hist-day:last-child{border-bottom:none}.hist-day-title{font-size:11px;font-weight:700;text-transform:capitalize;letter-spacing:.03em;color:var(--muted);padding:10px 16px 4px}.hist-shift{padding:4px 16px 12px}.hist-shift-label{display:flex;align-items:center;gap:7px;margin-bottom:7px}.hist-dot{width:8px;height:8px;border-radius:50%;flex:none}.hist-shift-label strong{font-size:13px;color:var(--ink);font-weight:600}.hist-shift-label em{font-size:12px;color:var(--muted);font-style:normal}.hist-workers{display:flex;flex-wrap:wrap;gap:6px}.hist-slot{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;border:1.5px solid var(--line);background:var(--panel);cursor:pointer;font-family:inherit;font-size:12px;transition:border-color .12s,background .12s}.hist-slot:hover{border-color:var(--accent);background:#22c55e0d}.hist-slot.hist-present{border-color:#16a34a;background:#16a34a17}.hist-slot.hist-absent{border-color:#dc2626;background:#dc262612}.hist-slot-name{color:var(--ink);font-weight:500}.hist-slot-icon{font-size:11px;font-weight:700;color:var(--muted)}.hist-slot.hist-present .hist-slot-icon{color:#16a34a}.hist-slot.hist-absent .hist-slot-icon{color:#dc2626}@media(max-width:600px){.hist-pills{display:none}.hist-week-head{flex-wrap:wrap}}.stat-loading{padding:48px;text-align:center;color:var(--muted);font-size:14px}.stat-empty{padding:64px 20px;text-align:center}.stat-empty-icon{font-size:40px;margin-bottom:14px}.stat-empty-title{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:8px}.stat-empty-sub{font-size:14px;color:var(--muted);line-height:1.55;max-width:340px;margin:0 auto}.stat-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.stat-card{flex:1;min-width:120px;background:var(--panel);border:1.5px solid var(--line);border-radius:10px;padding:14px 16px}.stat-card-ok{border-color:#16a34a59;background:#16a34a0d}.stat-card-ko{border-color:#dc262640;background:#dc26260a}.stat-card-val{font-size:26px;font-weight:800;color:var(--ink);line-height:1}.stat-card-ok .stat-card-val{color:#15803d}.stat-card-ko .stat-card-val{color:#b91c1c}.stat-card-lbl{font-size:11px;color:var(--muted);margin-top:4px}.stat-table-wrap{overflow-x:auto;border:1.5px solid var(--line);border-radius:10px;margin-bottom:14px}.stat-table{width:100%;border-collapse:collapse;font-size:13px}.stat-table th{background:#f9fafb;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:10px 14px;border-bottom:1.5px solid var(--line);white-space:nowrap}.stat-table td{padding:10px 14px;border-bottom:1px solid var(--line);color:var(--ink)}.stat-table tbody tr:last-child td{border-bottom:none}.stat-table tbody tr:hover td{background:#00000005}.stat-table tfoot td{border-top:2px solid var(--line);border-bottom:none;background:#f9fafb}.stat-num{text-align:right;font-variant-numeric:tabular-nums}.stat-name-cell{font-weight:600}.stat-green{color:#15803d;font-weight:600}.stat-red{color:#b91c1c;font-weight:600}.stat-muted{color:var(--muted)}.stat-badge{display:inline-block;padding:1px 7px;border-radius:20px;font-size:11px;font-weight:700;background:#16a34a1f;color:#15803d}.stat-badge.stat-badge-warn{background:#dc26261a;color:#b91c1c}.stat-note{font-size:12px;color:var(--muted);line-height:1.55}.stat-totals td{font-size:13px}@media(max-width:600px){.stat-summary{gap:8px}.stat-card{min-width:calc(50% - 4px);flex:none}.stat-card-val{font-size:22px}}
