@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-ext-wght-normal-C8S-KRRz.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-ext-500-normal-C9ShMxGR.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-500-normal-CEVyPk4Y.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-vietnamese-500-normal-BvH7FW2L.woff2) format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-cyrillic-ext-700-normal-D6iG63UR.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-ext-700-normal-iEXTdOVf.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-cyrillic-700-normal-BWTpRfYl.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-700-normal-CEoEElIJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-greek-700-normal-C6CZE3T8.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-700-normal-DEigVDxa.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-vietnamese-700-normal-k5PzE07T.woff2) format("woff2"),url(/assets/jetbrains-mono-vietnamese-700-normal-BDLVIk2r.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-ext-700-normal-CZipNAKV.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-700-normal-CxPITLHs.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f4f6f8;--surface: #ffffff;--surface-2: #eef1f5;--line: #dde2e9;--fg: #1a2230;--muted: #5b6678;--faint: #8a94a6;--accent: #1f6f6b;--accent-ink: #ffffff;--green: #2e9e6b;--green-bg: #e5f5ec;--amber: #c8871b;--amber-bg: #faf0dc;--red: #cf4b43;--red-bg: #fbe7e5;--unset: #8a94a6;--unset-bg: #eef1f5;--shadow: 0 1px 2px rgba(20,30,50,.06), 0 6px 20px rgba(20,30,50,.06);--radius: 14px;--ui: "Manrope Variable", "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #10151c;--surface: #19212b;--surface-2: #131a22;--line: #2a333f;--fg: #e7ecf3;--muted: #9aa6b6;--faint: #6b7687;--accent: #4fd1c5;--accent-ink: #06211f;--green: #54c08a;--green-bg: #17322a;--amber: #e0a94a;--amber-bg: #352a16;--red: #e86b62;--red-bg: #3a1f1d;--unset: #6b7687;--unset-bg: #131a22;--shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.35);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--ui);line-height:1.5;-webkit-font-smoothing:antialiased;font-size:15px}h1,h2,h3{margin:0;text-wrap:balance;letter-spacing:-.01em}.card h2{font-size:16px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.grow{flex:1;min-width:0}header{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--line)}.bar,main{max-width:760px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0))}.bar{padding-block:12px;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}.brand{display:flex;align-items:center;gap:9px;margin-right:auto;font-weight:800;letter-spacing:-.02em}.dot{width:16px;height:16px;border-radius:5px;background:var(--accent);box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--accent) 55%,#000)}main{padding-block:22px 48px;display:flex;flex-direction:column;gap:18px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card.login{max-width:440px;width:100%;margin:6vh auto 0}.eyebrow{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);font-weight:700}.roletag{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);padding:4px 9px;border-radius:999px}.sub{color:var(--muted);font-size:13px;margin:4px 0 0}.faintlabel{font-size:12px;color:var(--faint)}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}hr{border:0;border-top:1px solid var(--line);margin:14px 0}.stack{display:flex;flex-direction:column;gap:12px;margin-top:12px}.field{display:flex;flex-direction:column;gap:4px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:560px){.grid2{grid-template-columns:1fr}}.error,.notice{margin:0;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600}.error{color:var(--red);background:var(--red-bg)}.notice{color:var(--green);background:var(--green-bg)}.status{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:16px 0}.status-meta{min-width:0}.ring{--p: 0;--c: var(--green);width:104px;height:104px;border-radius:50%;flex:0 0 auto;position:relative;background:conic-gradient(var(--c) calc(var(--p) * 1%),var(--surface-2) 0);display:grid;place-items:center}.ring:after{content:"";position:absolute;width:78px;height:78px;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.ring b{position:relative;z-index:1;font-family:var(--mono);font-size:20px;font-weight:700}.ring.amber{--c: var(--amber)}.ring.red{--c: var(--red)}.ring.unset{--c: var(--unset)}.pill{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:13px;padding:5px 11px;border-radius:999px;white-space:nowrap}.pill:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.pill.green{color:var(--green);background:var(--green-bg)}.pill.amber{color:var(--amber);background:var(--amber-bg)}.pill.red{color:var(--red);background:var(--red-bg)}.pill.unset{color:var(--unset);background:var(--unset-bg)}.big{font-family:var(--mono);font-weight:700;font-size:28px;letter-spacing:-.02em;margin-top:6px}.big.huge{font-size:44px;margin:14px 0 6px}.track{height:14px;border-radius:999px;background:var(--surface-2);overflow:hidden;border:1px solid var(--line)}.fill{height:100%;width:0;border-radius:999px;transition:width .3s ease,background .3s;background:var(--green)}.fill.amber{background:var(--amber)}.fill.red{background:var(--red)}.fill.unset{background:var(--unset)}.slider-row{display:grid;grid-template-columns:1fr auto;gap:4px 14px;align-items:center;padding:12px 0}.slider-row+.slider-row{border-top:1px solid var(--line)}.slider-row .name{font-weight:600}.slider-row .hrs{font-weight:700;text-align:right;min-width:64px}.slider-row input[type=range]{grid-column:1 / -1;width:100%;accent-color:var(--accent);margin:2px 0 0}select,input[type=text],input[type=number],input[type=password]{font:inherit;color:var(--fg);background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:8px 10px;width:100%;min-width:0}.row select{width:auto}input.num{font-family:var(--mono);text-align:right}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.act{font:inherit;font-weight:700;font-size:14px;cursor:pointer;border-radius:10px;padding:10px 14px;border:1px solid var(--line);background:var(--surface-2);color:var(--fg)}button.act:disabled{opacity:.5;cursor:default}button.act.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}button.act.ghost{background:transparent}button.act.small{font-size:13px;padding:6px 10px}button.act.danger{color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,var(--line))}.actions{display:flex;gap:10px;flex-wrap:wrap}.addrow{display:flex;gap:8px;margin-top:12px}.addrow input[type=text]{flex:1}.addrow input.rate{width:110px;flex:0 0 auto}.seg{display:inline-flex;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}.seg button{font:inherit;font-weight:600;font-size:13px;border:0;background:transparent;color:var(--muted);padding:6px 11px;border-radius:7px;cursor:pointer}.seg button[aria-pressed=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow)}.snap{border-top:1px solid var(--line)}.snap:first-of-type{margin-top:8px}.snap summary{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer;list-style:none}.snap summary::-webkit-details-marker{display:none}.snap-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snap .when{color:var(--muted);font-size:12px}.snap .mini{width:7px;height:28px;border-radius:3px;flex:0 0 auto;background:var(--green)}.snap .mini.amber{background:var(--amber)}.snap .mini.red{background:var(--red)}.snap .mini.unset{background:var(--unset)}.snap-body{padding:0 0 14px 19px}.snap-hours{list-style:none;padding:0;margin:0 0 10px;font-size:13px}.snap-hours li{display:flex;justify-content:space-between;padding:3px 0;color:var(--muted)}.note{font-size:12.5px;color:var(--muted);display:flex;gap:8px;align-items:flex-start;margin-top:12px}.devline{display:grid;grid-template-columns:1fr 110px 56px 36px;gap:8px;align-items:center;padding:6px 0}.devline.head{padding-bottom:0;margin-top:10px}.devline.head span:nth-child(2),.devline.head span:nth-child(3),.devline>.mono{text-align:right}.card.danger{border-color:color-mix(in srgb,var(--red) 30%,var(--line))}.developer-wrap{text-align:center;padding:26px 18px}@media(max-width:480px){.devline{grid-template-columns:1fr 76px 44px 32px;gap:6px}.addrow input.rate{width:76px}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,#000 45%,transparent)}.card.dialog{width:100%;max-width:420px}.dialog-actions{justify-content:flex-end;margin-top:18px}button.act.danger-solid{background:var(--red);color:#fff;border-color:transparent}.page-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.page-head h1{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.2}.page-head h1{margin-right:auto}.month-nav{display:inline-flex;align-items:center;gap:4px}.month-nav button.arrow{padding:4px 11px;font-size:18px;line-height:1}.month-nav button.act.small:not(.arrow){padding:5px 10px;line-height:1.2}.month-nav .month-badge{min-width:9.5em;text-align:center}.copy-hint{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--surface-2)}.copy-hint .sub{margin:0}.month-badge{font-weight:700;font-size:14px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);padding:5px 12px;border-radius:999px;white-space:nowrap}.inlineunit{position:relative;min-width:0}.inlineunit .u{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--faint);font-size:12px;pointer-events:none}.inlineunit input{padding-right:58px}.devline{grid-template-columns:1fr 150px 64px 36px}.addrow .inlineunit{width:150px;flex:0 0 auto}.addrow .inlineunit input.rate{width:100%}.rowstatus{grid-column:1 / -1;margin:0;font-size:12px;color:var(--green);font-weight:600}.rowstatus.error-text{color:var(--red)}.addrow+.rowstatus{margin-top:6px}.removed{margin-top:16px;border-top:1px solid var(--line);padding-top:10px}.removed summary{cursor:pointer}.removed-line{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:8px 0 0}@media(max-width:480px){.devline{grid-template-columns:1fr 112px 44px 32px;gap:6px}.inlineunit input{padding-right:52px}.addrow{flex-wrap:wrap}.addrow input[type=text]{flex-basis:100%}.addrow .inlineunit{flex:1;width:auto}.removed-line{grid-template-columns:1fr auto}.removed-line .faintlabel{grid-row:2}}.devline{grid-template-columns:1fr 150px 56px auto 36px;grid-template-areas:"name rate hours hist remove"}.devline .dl-name{grid-area:name}.devline>.inlineunit{grid-area:rate}.devline .dl-hours{grid-area:hours;text-align:right}.devline .dl-hist{grid-area:hist}.devline .dl-remove{grid-area:remove}.devline.head .dl-rate{grid-area:rate;text-align:right}.devline>.rowstatus,.devline>.dev-history{grid-column:1 / -1}.rowstatus.muted-text{color:var(--faint);font-weight:600}.dev-history{display:flex;flex-direction:column;gap:8px;margin:4px 0 6px;padding:12px;border-radius:10px;background:var(--surface-2)}.dev-history select,.history-add select{width:auto}.history ul{list-style:none;margin:0;padding:0}.history li{display:grid;grid-template-columns:1fr auto 36px;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}.history-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.history-add .inlineunit{width:160px}.history-toggle{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.history-toggle summary{cursor:pointer}.history-toggle .sub{margin:8px 0}.adddev{flex-wrap:wrap}.adddev select{width:auto}.pwfield{display:flex;gap:6px}.pwfield input{flex:1}@media(max-width:480px){.devline{grid-template-columns:1fr auto auto;grid-template-areas:"name name remove" "rate hours hist";row-gap:6px;padding:10px 0}.devline+.devline{border-top:1px solid var(--line)}.devline.head{display:none}.history-add .inlineunit{width:auto;flex:1}}.project-line{display:grid;grid-template-columns:1fr 240px auto;gap:12px;align-items:end;margin-top:12px}@media(max-width:560px){.project-line{grid-template-columns:1fr auto}.project-line>.field:first-child{grid-column:1 / -1}}.project-line+.rowstatus{margin-top:8px}.notice-warn{margin:12px 0 0;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600;color:var(--amber);background:var(--amber-bg)}.notice-warn code{font-family:var(--mono);font-size:12px;background:color-mix(in srgb,var(--amber) 15%,transparent);padding:1px 5px;border-radius:5px}.breakdown{width:100%;border-collapse:collapse;margin-top:14px;font-size:14px}.breakdown th{text-align:right;font-size:12px;font-weight:600;color:var(--faint);padding:0 0 6px}.breakdown th:first-child,.breakdown td:first-child{text-align:left}.breakdown td{text-align:right;padding:7px 0;border-top:1px solid var(--line)}.breakdown td+td,.breakdown th+th{padding-left:12px}@media(max-width:480px){.breakdown{font-size:13px}}.change-note{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}
