:root{--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--subtle: #f1f5f9;--text: #0f172a;--secondary: #334155;--muted: #64748b;--brand: #f27c38;--brand-dark: #db6a2e;--brand-soft: #fff4ec;--brand-ring: rgba(242, 124, 56, .18);--ok: #15803d;--ok-bg: #f0fdf4;--ok-border: #86efac;--warn: #b45309;--warn-bg: #fffbeb;--warn-border: #fde68a;--danger: #b91c1c;--danger-bg: #fef2f2;--danger-border: #fca5a5;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 1px rgba(15, 23, 42, .04);--shadow-md: 0 8px 24px rgba(15, 23, 42, .08);--radius: 16px;--radius-sm: 12px;color:var(--text);background:var(--bg);font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline:3px solid var(--brand-ring);outline-offset:0}.login{min-height:100vh;display:grid;grid-template-columns:minmax(320px,460px) 1fr;background:var(--bg)}.login-side{background:linear-gradient(180deg,rgba(242,124,56,.08),transparent 42%),var(--surface);border-right:1px solid var(--border);padding:36px 40px;display:flex;flex-direction:column;gap:22px}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-lockup img{height:56px;width:auto}.brand-lockup strong{display:block;font-size:15px;letter-spacing:-.02em}.brand-lockup span{color:var(--muted);font-size:12px}.login-side h1{margin:8px 0 0;font-size:32px;line-height:1.12;letter-spacing:-.03em;font-weight:700}.login-side p{margin:0;color:var(--secondary)}.login-side ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.login-side li{background:var(--subtle);border-radius:var(--radius-sm);padding:10px 12px;color:var(--secondary);font-weight:500}.panel{width:min(420px,100%);background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow-md);padding:28px;display:flex;flex-direction:column;gap:14px}.panel h2{margin:0;font-size:20px;letter-spacing:-.02em}.niji-by{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.niji-by img{width:28px;height:28px;border-radius:50%}label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}input,select{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:10px 12px;height:42px}input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring);outline:none}.btn{border:0;background:var(--brand);color:#fff;height:40px;padding:0 14px;border-radius:var(--radius-sm);font-weight:600;font-size:13px}.panel .btn{width:100%}.btn:hover{background:var(--brand-dark)}.btn.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn.secondary:hover{background:var(--subtle)}.btn.ghost{background:transparent;color:var(--secondary);height:32px}.btn.ghost:hover{background:var(--subtle)}.btn:disabled{opacity:.45;cursor:not-allowed}.err{color:var(--danger);margin:0;font-size:13px}.hint{margin:0;color:var(--muted);font-size:12px}.shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.side{background:var(--surface);border-right:1px solid var(--border);padding:16px 12px 18px;display:flex;flex-direction:column;gap:16px;position:sticky;top:0;height:100vh}.side nav{display:flex;flex-direction:column;gap:14px;overflow:auto}.group{display:flex;flex-direction:column;gap:2px}.group span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:6px 10px 4px}.side a{text-decoration:none;padding:8px 10px;border-radius:10px;color:var(--secondary);font-weight:500}.side a:hover{background:var(--subtle)}.side a.active{background:var(--brand-soft);color:var(--brand-dark);font-weight:700}.side-foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding:10px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}.side-foot img{width:28px;height:28px;border-radius:50%}.main{min-width:0;display:flex;flex-direction:column}.top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px 24px;border-bottom:1px solid var(--border);background:#f8fafceb;position:sticky;top:0;z-index:2}.top>.row:last-child{justify-self:end}.top>.row:nth-child(2){justify-self:center}.who{display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-soft);color:var(--brand-dark);display:grid;place-items:center;font-weight:700;font-size:12px}.who small{display:block;color:var(--muted)}.content{padding:24px;display:flex;flex-direction:column;gap:16px}.page-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end}.page-head h1{margin:0;font-size:26px;letter-spacing:-.03em;font-weight:700}.page-head p{margin:6px 0 0;color:var(--muted);max-width:640px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.stat b{display:block;font-size:18px;letter-spacing:-.03em;font-weight:700}.stat span{color:var(--muted);font-size:12px;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto;min-width:0}.card h2,.card h3{margin:0;padding:14px 16px;font-size:14px;letter-spacing:-.01em;border-bottom:1px solid var(--border)}.card .pad{padding:16px;display:flex;flex-direction:column;gap:10px}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.card table{border:0;border-radius:0;box-shadow:none}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:0}th{font-size:12px;font-weight:700;color:var(--muted);background:var(--subtle)}tbody tr:hover td{background:#fafbfc}.num,.mono{font-variant-numeric:tabular-nums}.num{text-align:right;font-weight:600}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12.5px}.neg{color:var(--danger)}.tag{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;background:var(--subtle);color:var(--secondary)}.tag.warn{background:var(--warn-bg);color:var(--warn)}.tag.bad{background:var(--danger-bg);color:var(--danger)}.tag.ok{background:var(--ok-bg);color:var(--ok)}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.filters input,.filters select{min-width:200px}.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:12px;align-items:start}.bars{display:flex;flex-direction:column;gap:10px;padding:16px}.bar-line{display:grid;grid-template-columns:150px 1fr 110px;gap:10px;align-items:center;font-size:13px}.bar{height:8px;background:var(--subtle);border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--brand);border-radius:99px}.toast{position:fixed;right:16px;bottom:16px;background:#1a1714;color:#fff;padding:12px 14px;border-radius:14px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow-md)}.steps{display:flex;flex-direction:column;gap:6px}.steps a{display:flex;align-items:center;gap:10px;text-decoration:none;padding:10px 12px;border-radius:12px;font-weight:600;color:var(--text)}.steps a:hover{background:var(--brand-soft)}.note{font-size:12px;color:var(--muted);margin:0}.grid{display:grid;gap:10px}.lines{display:flex;flex-direction:column;gap:8px}.line-head,.line{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(104px,.7fr) minmax(104px,.7fr) 36px;gap:8px;align-items:center}.line-head{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.02em;padding:0 2px}.line-head .num{text-align:right}.line select{min-width:0;width:100%}.line input.num-input{text-align:right;font-variant-numeric:tabular-nums}.line .btn.ghost{width:36px;height:36px;padding:0;display:grid;place-items:center;border-radius:10px;color:var(--muted)}.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}.dialog-actions .totals{margin:0;font-size:13px;color:var(--secondary);font-weight:600}.dialog-actions .totals em{font-style:normal;color:var(--muted);font-weight:500}.dialog-actions .totals.balanced{color:var(--ok)}.dialog-actions .totals.unbalanced{color:var(--danger)}.sheet a,.card a,table a{color:var(--brand-dark);font-weight:600;text-decoration:none}.sheet a:hover,.card a:hover,table a:hover{text-decoration:underline}body:has(.dialog){overflow:hidden}.login{min-height:100vh;display:grid;grid-template-columns:minmax(320px,440px) 1fr;background:var(--bg)}.login-side{background:linear-gradient(180deg,var(--brand-soft),var(--surface) 55%);border-right:1px solid var(--border);padding:40px;display:flex;flex-direction:column;gap:28px}.login-side h1{margin:0;font-size:34px;line-height:1.15;letter-spacing:-.03em}.login-side p{margin:10px 0 0;color:var(--secondary);max-width:320px}.login-side-foot{margin-top:auto;display:flex;flex-direction:column;gap:16px;align-items:flex-start}.login-main{display:grid;place-items:center;padding:32px}.login-logo{height:84px;width:auto}.sample{display:flex;flex-direction:column;gap:6px;margin-top:4px}.sample>span{font-size:12px;font-weight:700;color:var(--muted)}.sample button{text-align:left;background:var(--subtle);border:1px solid transparent;border-radius:12px;padding:8px 10px}.sample button strong{display:block;font-size:13px}.sample button small{color:var(--muted)}.sample button.active{background:var(--brand-soft);border-color:#f3c4a8}.settings{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:start}.settings-nav span{display:block;margin:14px 8px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.settings-nav button{width:100%;text-align:left;border:0;background:transparent;border-radius:10px;padding:8px 10px;font-weight:600;color:var(--secondary)}.settings-nav button.active{background:var(--brand-soft);color:var(--brand-dark)}.settings-nav button:hover{background:var(--subtle)}.settings-nav button.active:hover{background:var(--brand-soft)}.settings-body h2{margin:0;font-size:22px;letter-spacing:-.03em}.settings-body>p{margin:4px 0 14px;color:var(--muted)}.settings-body .pad{align-items:flex-start}.settings-body .pad>p{width:100%;margin:0;color:var(--secondary)}.settings-body .btn,.btn.compact{width:auto;min-width:0;padding:0 16px;align-self:flex-start}.langs{display:inline-flex;gap:2px;background:var(--subtle);border:1px solid var(--border);border-radius:999px;padding:2px}.langs button{border:0;background:transparent;height:28px;min-width:36px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.02em}.langs button.active{background:#fff;color:var(--brand-dark);box-shadow:var(--shadow)}@media(max-width:800px){.login,.settings{grid-template-columns:1fr}.login-side .niji-by{margin-top:12px}}.shell{grid-template-columns:196px 1fr}.brand-lockup img{height:48px}.side nav{gap:2px}.side a{font-size:14px;font-weight:600;padding:9px 10px}.period{font-weight:700;letter-spacing:-.02em}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tabs a{text-decoration:none;color:var(--muted);font-weight:600;font-size:13px;padding:8px 12px 10px;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a.active{color:var(--brand-dark);border-bottom-color:var(--brand)}.tabs a:hover{color:var(--text)}.stat span{display:block;margin-bottom:4px}.task-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.task-row a{display:flex;flex-direction:column;gap:4px;text-decoration:none;background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px 16px;font-weight:600;color:var(--text);box-shadow:var(--shadow)}.task-row a em{font-style:normal;font-size:11px;font-weight:700;color:var(--brand-dark)}.task-row a:hover{background:var(--brand-soft)}.sheet{min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto}.sheet table,.card table{border:0;border-radius:0;box-shadow:none}.dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0f172a7a;display:flex;justify-content:center;align-items:flex-start;padding:8vh 16px 32px;overflow:auto}.dialog-panel{width:min(720px,100%);background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;max-height:min(86vh,880px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.dialog-head h2{margin:0;font-size:17px;letter-spacing:-.02em}.dialog-body{padding:16px 18px;display:flex;flex-direction:column;gap:12px;overflow:auto;min-height:0}.dialog-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--border);background:var(--subtle);border-radius:0 0 18px 18px;flex-shrink:0}.toast .btn{color:#fff}@media(max-width:960px){.login{display:grid}.shell{display:block}.side{position:relative;height:auto}.stats,.task-row{grid-template-columns:1fr 1fr}.split,.settings{grid-template-columns:1fr}}@media(max-width:560px){.line-head,.line{grid-template-columns:1fr 1fr auto}.line select{grid-column:1 / -1}.line-head span:first-child{display:none}.stats,.task-row{grid-template-columns:1fr}}
