@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-normal-Yta7XZ9C.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-normal-lsPpqi9g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-normal-DkJXBcIH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-normal-DqXqCC0q.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-ext-600-normal-BMhMHfrj.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-600-normal-CsIYWmWK.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-600-normal-C2atO-64.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-600-normal-FNmA3REe.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-vietnamese-600-normal-BoXdMtcr.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-600-normal-C4HEjEaf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-ext-600-normal-DaBc-lu7.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-600-normal-Dk3-quAP.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#101010;--surface:#171717;--surface-2:#1e1e1e;--border:#2b2b2b;--text:#ddd;--muted:#8d8d8d;--primary:#144846;--primary-hi:#1c6360;--accent:#6cc4b4;--accent-hi:#9adbd0;--accent-soft:#6cc4b41a;--accent-line:#6cc4b466;--radius:4px;--radius-lg:8px;--shadow:0 10px 30px #0009;--green:#2f7d55;--red:#a63a3a;--yellow:#c39a22;--gray:#333;--danger:#a63a3a;--sans:"Inter", system-ui, sans-serif;--serif:"Cormorant Garamond", Georgia, serif;--emp-w:270px;--day-w:42px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--sans);-webkit-font-smoothing:antialiased;scrollbar-color:#3a3a3a transparent;margin:0;overflow-x:hidden}::selection{background:#6cc4b455}h1{font:600 30px/1.1 var(--serif);letter-spacing:.02em;margin:0}h2{font:600 22px var(--serif);margin:0}h3{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);align-items:center;gap:10px;margin:24px 0 10px;display:flex}h3:after{content:"";background:var(--border);flex:1;height:1px}p{margin:0 0 8px}.muted{color:var(--muted)}.tiny{font-size:12px}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:7px 10px;transition:border-color .12s,box-shadow .12s}input:hover,select:hover,textarea:hover{border-color:#3a3a3a}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox]{accent-color:var(--accent)}button{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:7px 14px;transition:background .12s,border-color .12s,color .12s}button:hover:not(:disabled){background:#262626;border-color:#444}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--primary);border-color:var(--primary-hi);color:#fff;font-weight:500}button.primary:hover:not(:disabled){background:var(--primary-hi);border-color:var(--primary-hi)}button.warn{color:#fff;background:#6b5412;border-color:#8a6c18}button.danger{color:#e08a8a}button.danger:hover:not(:disabled){border-color:var(--danger);background:#3a1d1d}button.icon{padding:2px 9px;font-size:16px;line-height:1.2}button.icon.add{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent);padding:0 8px}button.icon.add:hover:not(:disabled){border-color:var(--accent);background:#6cc4b42e}button.link{color:var(--text);text-underline-offset:3px;background:0 0;border:none;padding:0;-webkit-text-decoration:underline #555;text-decoration:underline #555}button.link:hover:not(:disabled){color:var(--accent-hi);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);background:0 0}button.outline{border-color:var(--accent-line);color:var(--accent-hi)}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--primary);z-index:40;border-bottom:1px solid #0d3533;align-items:center;gap:40px;height:64px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 6px 24px #0007}.logo{height:40px}.topbar nav{flex:1;align-self:stretch;gap:4px;display:flex}.topbar nav a{font:600 20px var(--serif);letter-spacing:.03em;color:#b9d0ce;border-bottom:2px solid #0000;align-items:center;padding:0 16px;text-decoration:none;transition:color .12s,border-color .12s;display:flex}.topbar nav a:hover{color:#fff;border-bottom-color:var(--accent-line)}.topbar nav a.active{color:#fff;border-bottom-color:var(--accent)}.health{color:#cfdedd;background:#00000026;border:1px solid #ffffff1f;border-radius:999px;gap:10px;padding:4px 12px;font-size:12px;text-decoration:none;display:flex}.health.ok{color:var(--accent-hi)}.health.bad{color:#ffb4b4;border-color:#ffb4b4}main{flex:1;padding:28px 32px 48px}.page.narrow{max-width:820px}.page-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:14px;display:flex;position:relative}.page-head:after{content:"";background:var(--accent);width:56px;height:2px;position:absolute;bottom:-1px;left:0}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.month-nav,.toolbar-extra{align-items:center;gap:8px;display:flex}.toolbar-extra{gap:16px}.month-label-wrap{position:relative}.month-label{min-width:190px;font:600 20px var(--serif);background:0 0}.month-label:hover:not(:disabled){color:var(--accent-hi)}.check{cursor:pointer;align-items:center;gap:6px;display:flex}.legend{color:var(--muted);gap:16px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.swatch.green,.day-cell.green,.comp.green{background:var(--green)}.swatch.red,.day-cell.red,.comp.red{background:var(--red)}.swatch.yellow,.day-cell.yellow,.comp.yellow{background:var(--yellow)}.swatch.gray,.day-cell.gray,.comp.gray{background:var(--gray)}.popover,.context-menu{z-index:60;background:var(--surface-2);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid #3a3a3a;position:absolute}.month-picker{width:240px;margin-top:6px;padding:12px;top:100%;left:0}.year-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.months{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.context-menu{flex-direction:column;min-width:200px;padding:4px;display:flex;position:fixed}.context-menu button{text-align:left;border-radius:var(--radius);background:0 0;border:none;padding:8px 12px}.context-menu button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-hi)}.shift-popover{min-width:250px;padding:10px 12px;position:fixed}.shift-popover header{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;margin-bottom:6px;padding-bottom:6px;display:flex}.shift-popover header span{color:var(--muted)}.check-row{cursor:pointer;align-items:center;gap:10px;padding:6px 2px;display:flex}.check-row small{color:var(--muted);display:block}.check-row.inactive{opacity:.6}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#000b;justify-content:center;align-items:flex-start;padding:6vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog{background:var(--surface);border-radius:var(--radius-lg);border:1px solid #333;width:520px;max-width:100%;overflow:hidden;box-shadow:0 24px 64px #000d}.dialog.wide{width:860px}.dialog header{background:var(--primary);box-shadow:inset 0 -2px 0 var(--accent);justify-content:space-between;align-items:center;padding:14px 22px;display:flex}.dialog header button{background:0 0;border:none;font-size:22px}.dialog .body{max-height:70vh;padding:10px 22px 20px;overflow-y:auto}.dialog footer{border-top:1px solid var(--border);background:#141414;justify-content:flex-end;gap:8px;padding:12px 22px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:10px 16px;display:grid}.field{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.field>span{color:var(--muted);font-size:12px}.field small{color:var(--muted);font-size:11px}.field textarea{resize:vertical}.row-inline{align-items:center;gap:8px;margin-bottom:6px;display:flex}.row-inline input{flex:1}.row-inline input[type=number]{flex:0 0 110px}.row-inline select{flex:0 0 130px}.grow{flex:1}.error-box{border:1px solid var(--danger);border-radius:var(--radius);background:#3a1d1d;margin:8px 0;padding:8px 12px}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{white-space:nowrap;background:#242424;border:1px solid #333;border-radius:10px;padding:1px 8px;font-size:11px}.chip.warn{color:#e0c060;border-color:#8a6c18}.chip.toggle{cursor:pointer;padding:3px 12px;font-size:13px}.chip.toggle:hover{border-color:#4a4a4a}.chip.toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hi)}.weekday-toggles{gap:4px;display:flex}.toasts{z-index:200;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{border:1px solid #3a3a3a;border-left:4px solid var(--accent);border-radius:var(--radius);background:#222;align-items:center;gap:16px;padding:10px 14px;display:flex;box-shadow:0 8px 24px #000a}.toast.error{border-left-color:var(--danger)}.toast button{background:var(--primary);border-color:var(--primary)}.violations,.plain-list{margin:0 0 12px;padding:0;list-style:none}.violations>li{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;padding:8px 12px}.violations ul{margin:6px 0 0;padding:0;list-style:none}.violations ul li{padding:2px 0}.rule-badge{background:#5b4710;margin-right:4px;padding:1px 6px;font-size:11px}.rule-badge.error{background:#6a2a2a}.rule-badge.block{background:#7a1f1f}.violations em{color:#e08a8a}table.list{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;overflow:hidden}table.list th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;background:#141414;font-size:11px;font-weight:500}table.list tbody tr{transition:background .1s}table.list tbody tr:hover{background:#1b1b1b}table.list tbody tr:last-child td{border-bottom:none}table.list th,table.list td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}table.list td.actions{text-align:right;white-space:nowrap}table.list td.actions button{margin-left:6px}table.list td input{width:100%}table.compact th,table.compact td{padding:6px 10px}.dialog table.list{background:var(--surface-2)}.status-grid{gap:16px;margin-top:20px;display:flex}.status-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex:1;justify-content:space-between;align-items:center;padding:24px;display:flex}.status-tile strong{font-size:36px}.status-tile.ok{border-color:var(--accent-line)}.status-tile.ok strong{color:var(--accent)}.status-tile.bad strong{color:#ff8a8a}.scroll-x{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:8px;overflow-x:auto}table.overview{border-collapse:separate;border-spacing:2px;width:100%}table.overview .prop-col{text-align:left;background:var(--surface);z-index:2;width:280px;min-width:280px;padding:8px 12px;font-weight:400;position:sticky;left:0}.prop-cell{justify-content:space-between;align-items:center;gap:8px;display:flex}.prop-cell small{color:var(--muted);display:block}.day-head{color:var(--muted);min-width:24px;padding:2px 0;font-size:11px;font-weight:400}.day-head span,.day-head strong{text-align:center;display:block}.day-head strong{color:var(--text);font-size:13px}.day-head.weekend,td.weekend{background:#131313}.day-head.today,.day-head.today strong{color:var(--accent)}.day-head.today strong{border-bottom:2px solid var(--accent)}table.overview tr.clickable{cursor:pointer}table.overview tr.clickable:hover .prop-col{box-shadow:inset 2px 0 0 var(--accent);background:#1d1d1d}.day-cell{border-radius:2px;min-width:22px;height:44px}table.overview tr.clickable:hover .day-cell{filter:brightness(1.15)}.grid-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);max-height:calc(100vh - 230px);overflow:auto}table.plan-grid{border-collapse:separate;border-spacing:0;-webkit-user-select:none;user-select:none;width:max-content}.plan-grid th,.plan-grid td{border-bottom:1px solid #222;border-right:1px solid #222;padding:0}.plan-grid .emp-col{z-index:3;background:var(--surface);width:var(--emp-w);min-width:var(--emp-w);max-width:var(--emp-w);text-align:left;border-right:1px solid #333;padding:4px 10px;font-weight:400;position:sticky;left:0}.plan-grid thead th{background:var(--surface);z-index:4;position:sticky}.plan-grid thead .emp-col{z-index:6}.plan-grid .head-dates th{height:40px;min-width:var(--day-w);width:var(--day-w);color:var(--muted);text-align:center;font-size:11px;font-weight:400;top:0}.plan-grid .head-dates strong{color:var(--text);font-size:13px;display:block}.plan-grid .head-dates th.today,.plan-grid .head-dates th.today strong{color:var(--accent)}.plan-grid .head-dates th.today strong{border-bottom:2px solid var(--accent)}.plan-grid .head-dates .corner{text-align:left;height:40px}.plan-grid .head-dates .corner strong{margin-right:6px;display:inline}.plan-grid .head-dates .corner span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.plan-grid .head-comps th{padding:3px;top:40px}.plan-grid .head-comps .emp-col small{color:var(--muted);font-size:11px}.compartments{flex-direction:column;gap:2px;display:flex}.comp{height:10px;display:block}.plan-grid th.weekend,.plan-grid td.weekend{background:#1a1a1a}.emp-cell{justify-content:space-between;align-items:center;gap:8px;display:flex}.emp-cell .hours{color:var(--muted);white-space:nowrap;font-size:12px}.chips.tiny{flex-wrap:nowrap;margin-top:2px;overflow:hidden}.chips.tiny .chip{text-overflow:ellipsis;max-width:92px;padding:0 6px;font-size:10px;overflow:hidden}td.cell{height:46px;min-width:var(--day-w);width:var(--day-w);text-align:center;vertical-align:middle;cursor:cell;background:var(--surface);position:relative}td.cell.weekend{background:#1a1a1a}td.cell.idle{background-image:linear-gradient(#ffffff08,#ffffff08)}td.cell.out-contract{background-image:repeating-linear-gradient(135deg,#0000 0 5px,#ffffff14 5px 6px)}td.cell.absent{background-color:#231f2b}td.cell.selected{box-shadow:inset 0 0 0 1px var(--accent);background-color:#1d4a48!important}td.cell.preview{box-shadow:inset 0 0 0 1px var(--accent-line);background-color:#1d4a4866}.tag{background:var(--green);color:#fff;border-radius:2px;margin:1px;padding:1px 5px;font-size:12px;font-weight:500;line-height:1.25;display:inline-block}.tag small{font-size:9px;font-weight:400;display:block}.tag.irr,.tag.ovr{background:var(--yellow);color:#1a1400}.abs{color:#b7a6e0;font-size:9px;position:absolute;top:1px;right:3px}.fill-handle{background:var(--accent);border:1px solid var(--bg);cursor:crosshair;z-index:2;border-radius:2px;width:9px;height:9px;position:absolute;bottom:-4px;right:-4px}.plan-grid.dragging td.cell{cursor:crosshair}.hint{color:var(--muted);margin-top:10px;font-size:12px}.pad{padding:16px!important}.dialog footer .left{margin-right:auto}.app{max-width:100vw}.page{min-width:0}@media (width<=1000px){.topbar{flex-wrap:wrap;gap:8px 20px;height:auto;padding:8px 14px}.topbar nav{flex-wrap:wrap;flex:1 0 100%;order:3}.topbar nav a{padding:4px 10px;font-size:17px}.logo{height:32px}.health{margin-left:auto}main{padding:16px 14px 32px}h1{font-size:24px}.page-head,.toolbar,.toolbar-extra{flex-wrap:wrap}.legend{flex-wrap:wrap;gap:6px 12px}.grid-wrap{max-height:calc(100vh - 280px)}:root{--emp-w:190px}.emp-cell .hours{display:none}table.list{display:block;overflow-x:auto}.form-grid{grid-template-columns:1fr}.dialog.wide{width:100%}.overlay{padding:3vh 8px}.row-inline{flex-wrap:wrap}.row-inline input,.row-inline select{flex:120px}.status-grid{flex-direction:column}}@media (width<=600px){table.overview .prop-col{width:150px;min-width:150px;position:static}.month-label{min-width:140px}.toasts{left:8px;right:8px;transform:none}}.login{background:radial-gradient(ellipse 70% 55% at 50% 0%, #14484666, transparent 70%), var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius-lg);flex-direction:column;gap:14px;width:100%;max-width:380px;padding:32px 32px 28px;display:flex;box-shadow:0 24px 64px #000a}.login-card .logo{align-self:center;height:48px;margin-bottom:6px}.login-card h1{text-align:center;margin:0 0 4px;font-size:26px}.login-card .field{margin-bottom:0}.login-card button{margin-top:6px}.user-menu{color:#cfdedd;align-items:center;gap:10px;font-size:12px;display:flex}.user-menu .avatar{background:var(--accent-soft);border:1px solid var(--accent-line);width:28px;height:28px;color:var(--accent-hi);text-transform:uppercase;border-radius:50%;place-items:center;font-weight:600;display:grid}.user-menu button{color:#cfdedd;background:0 0;border-color:#ffffff30;border-radius:999px;padding:4px 12px;font-size:12px}.user-menu button:hover:not(:disabled){border-color:var(--accent-line);color:#fff;background:#ffffff14}.draft-notice{border:1px solid var(--yellow);border-radius:var(--radius);background:#2e2913;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;padding:6px 12px;display:flex}.draft-notice button{padding:3px 10px;font-size:12px}
