:root{--bg: oklch(98% .004 240);--surface: oklch(100% 0 0);--fg: oklch(20% .02 240);--muted: oklch(50% .018 240);--border: oklch(90% .006 240);--accent: oklch(56% .12 170);--accent-ink: oklch(42% .1 170);--success: oklch(60% .14 150);--warn: oklch(66% .13 70);--danger: oklch(53% .19 27);--font-display: "Söhne", "Avenir Next", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--r-s: 12px;--r-m: 14px;--r-l: 18px;--shadow-1: 0 1px 2px oklch(20% .02 240 / .06);--shadow-2: 0 6px 20px -6px oklch(20% .02 240 / .14);--tint-accent: color-mix(in oklab, var(--accent) 9%, var(--surface));--tint-success: color-mix(in oklab, var(--success) 12%, var(--surface));--tint-warn: color-mix(in oklab, var(--warn) 14%, var(--surface));--tint-danger: color-mix(in oklab, var(--danger) 9%, var(--surface))}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:15px;line-height:1.55}h1,h2,h3,h4{font-family:var(--font-display);font-weight:650;line-height:1.15;margin:0}h1{font-size:24px;letter-spacing:-.015em}h2{font-size:19px;letter-spacing:-.01em}h3{font-size:16px}p{margin:0 0 10px}a{color:inherit}svg.ic{width:20px;height:20px;flex:none}.app{display:grid;grid-template-columns:248px minmax(0,1fr);align-items:start;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow:auto;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 14px}.brand{display:flex;align-items:center;gap:10px;padding:2px 10px 18px}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--accent);color:#fcfcfc;display:grid;place-items:center;box-shadow:var(--shadow-1)}.brand-name{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em}.brand-sub{font-size:11.5px;color:var(--muted);margin-top:-2px}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:11px;min-height:42px;padding:0 12px;border-radius:var(--r-s);text-decoration:none;color:var(--muted);font-weight:510;font-size:14.5px;transition:background .15s,color .15s}.nav-item:hover{background:color-mix(in oklab,var(--border) 30%,var(--surface));color:var(--fg)}.nav-item[aria-current=page]{background:var(--tint-accent);color:var(--accent-ink)}.nav-item[aria-current=page] svg.ic{color:var(--accent)}.nav-group{display:flex;align-items:center;gap:11px;width:100%;min-height:42px;padding:0 12px;border-radius:var(--r-s);border:none;background:transparent;cursor:pointer;color:var(--fg);font-weight:560;font-size:14.5px;font-family:inherit;text-align:left;margin-top:6px;transition:background .15s}.nav-group:hover{background:color-mix(in oklab,var(--border) 30%,var(--surface))}.nav-group svg.ic{width:14px;height:14px;color:var(--muted);flex:none;transition:transform .18s}.nav-group[aria-expanded=true] svg.ic{transform:rotate(90deg)}.nav-sub{display:flex;flex-direction:column;gap:2px;padding-left:24px;margin:1px 0 6px}.nav-sub[hidden]{display:none}.nav-sub .nav-item{min-height:38px;font-size:14px}.nav-bottom{margin-top:auto;padding:8px 0 0}.sidefoot{padding:12px 10px 2px;border-top:1px solid var(--border)}.sidefoot .co{font-size:13px;font-weight:560}.sidefoot .pe{font-size:12px;color:var(--muted)}.main{min-width:0}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 32px;border-bottom:1px solid var(--border);background:color-mix(in oklab,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topmeta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.topmeta .chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:5px 12px;font-weight:520;color:var(--fg);white-space:nowrap}.topsearch{display:flex;align-items:center;gap:8px;margin-left:auto;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:7px 12px;color:var(--muted);font-size:13px;font-weight:520;cursor:pointer;font-family:inherit;white-space:nowrap}.topsearch:hover{border-color:color-mix(in oklab,var(--accent) 45%,var(--border));color:var(--fg)}.topsearch .ic{width:15px;height:15px;flex:none}.topsearch kbd{font-family:inherit;font-size:11px;border:1px solid var(--border);border-radius:6px;padding:1px 6px;color:var(--muted);background:var(--bg)}.gs-input{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:14px;background:var(--bg);color:var(--fg)}.gs-input:focus{outline:2px solid color-mix(in oklab,var(--accent) 55%,transparent);outline-offset:-1px}.gs-chips{display:flex;flex-wrap:wrap;gap:4px;margin:10px 0 4px}.gs-results{max-height:46vh;overflow:auto;margin-top:4px}.gs-row{display:flex;align-items:center;gap:12px;padding:10px 8px;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.gs-row:hover{background:color-mix(in oklab,var(--accent) 6%,var(--surface));border-radius:8px}.gs-sarja{flex:none;min-width:76px;justify-content:center}.gs-mid{min-width:0;display:flex;flex-direction:column;gap:2px}.gs-selite{font-weight:560;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-sub{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gs-right{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none}.gs-sum{font-weight:620;font-size:13.5px;font-variant-numeric:tabular-nums}.gs-tila{font-size:12px;color:var(--muted)}.gs-empty{padding:26px 8px;text-align:center;color:var(--muted);font-size:13.5px}.content{padding:26px 32px 64px;display:flex;flex-direction:column;gap:20px;max-width:1180px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-l);box-shadow:var(--shadow-1);padding:20px}.card-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.card-h .more{font-size:13.5px;font-weight:530;color:var(--accent-ink);text-decoration:none}.card-h .more:hover{text-decoration:underline}.grid-kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-m);padding:16px 18px;box-shadow:var(--shadow-1)}.kpi .l{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.kpi .v{font-family:var(--font-display);font-size:24px;font-weight:650;letter-spacing:-.015em;margin-top:6px;font-variant-numeric:tabular-nums}.kpi .s{font-size:12.5px;color:var(--muted);margin-top:3px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 18px;border-radius:var(--r-s);border:1px solid transparent;cursor:pointer;text-decoration:none;font-family:var(--font-body);font-size:14.5px;font-weight:560;letter-spacing:.01em;transition:transform .12s,box-shadow .15s,background .15s,border-color .15s}.btn:focus-visible,.nav-item:focus-visible,.tab:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.rowbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:#fcfcfc;box-shadow:0 2px 6px #00896a59;box-shadow:0 2px 6px oklch(56% .12 170 / .35)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 18px -4px #00896a80;box-shadow:0 6px 18px -4px oklch(56% .12 170 / .5)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{background:color-mix(in oklab,var(--accent) 45%,var(--border));box-shadow:none;cursor:not-allowed;transform:none}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--fg);box-shadow:var(--shadow-1)}.btn-ghost:hover{border-color:color-mix(in oklab,var(--border) 60%,var(--muted))}.btn-ghost:disabled{color:var(--muted);cursor:not-allowed;box-shadow:none}.btn-sm{min-height:34px;padding:0 13px;font-size:13.5px;border-radius:10px}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:560;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.b-ok{background:var(--tint-success);color:#005e28;color:oklch(42% .12 150)}.b-warn{background:var(--tint-warn);color:#734700;color:oklch(44% .12 70)}.b-err{background:var(--tint-danger);color:#a21a1b}.b-info{background:color-mix(in oklab,var(--muted) 10%,var(--surface));color:var(--muted)}.b-info:before{display:none}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{min-height:38px;padding:0 15px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;font-size:14px;font-weight:540;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.tab:hover{color:var(--fg)}.tab[aria-selected=true]{background:var(--tint-accent);border-color:color-mix(in oklab,var(--accent) 35%,var(--border));color:var(--accent-ink)}.tablewrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:14.5px}.tbl th{text-align:left;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:8px 12px;border-bottom:1px solid var(--border)}.tbl td{padding:11px 12px;border-bottom:1px solid color-mix(in oklab,var(--border) 55%,var(--surface));vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr{transition:background .12s}.tbl tbody tr:hover{background:color-mix(in oklab,var(--border) 18%,var(--surface))}.tbl .r,.tbl th.r{text-align:right}.num{font-variant-numeric:tabular-nums}.tbl .strong{font-weight:600}.pos{color:var(--success);font-weight:600}.neg{color:var(--fg)}.clickable{cursor:pointer}.tbl tr.sub td{background:color-mix(in oklab,var(--bg) 55%,var(--surface));font-size:13.5px;padding-top:8px;padding-bottom:8px}.search{position:relative}.search svg.ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--muted)}.search input{padding-left:36px}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):not([type=button]):not([type=color]):not([type=range]),select,textarea{font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-s);min-height:40px;padding:8px 12px;width:100%;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:color-mix(in oklab,var(--border) 60%,var(--muted))}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 18%,transparent);outline:none}label{font-size:13px;font-weight:560;color:var(--fg);display:block;margin-bottom:5px}.field{margin-bottom:14px}.hint{font-size:12.5px;color:var(--muted);margin-top:4px}.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}dialog{border:1px solid var(--border);border-radius:var(--r-l);padding:0;max-width:620px;width:min(92vw,620px);max-height:88dvh;overflow:auto;box-shadow:0 24px 64px -16px #0e171e4d;background:var(--surface);color:var(--fg)}dialog::backdrop{background:#0e171e66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dlg-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px 0}.dlg-b{padding:14px 22px 8px}.dlg-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px 20px;position:sticky;bottom:0;background:linear-gradient(color-mix(in oklab,var(--surface) 0%,var(--surface)),var(--surface) 40%)}.rowbtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s}.rowbtn:hover{color:var(--fg);border-color:color-mix(in oklab,var(--border) 60%,var(--muted))}#toasts{position:fixed;bottom:22px;right:22px;z-index:90;display:flex;flex-direction:column;gap:10px}.toast{display:flex;align-items:center;gap:10px;max-width:380px;background:var(--fg);color:var(--bg);border-radius:var(--r-m);padding:12px 16px;font-size:14px;font-weight:530;box-shadow:var(--shadow-2);animation:toast-in .25s ease}.toast:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--success);flex:none}.toast.warn:before{background:var(--warn)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--tint-warn);border:1px solid color-mix(in oklab,var(--warn) 38%,var(--border));border-radius:var(--r-m);padding:14px 18px}.banner>svg.ic{color:#8a5600;color:oklch(50% .13 70)}.banner .t{font-weight:600;font-size:14.5px;color:#6c4300;color:oklch(42% .11 70)}.banner .d{font-size:13px;color:var(--muted)}.banner .btn{margin-left:auto}.meter{border-radius:var(--r-s);padding:10px 14px;font-size:13.5px;font-weight:600;display:flex;justify-content:space-between;gap:10px}.meter.ok{background:var(--tint-success);color:#005e28;color:oklch(42% .12 150)}.meter.bad{background:var(--tint-danger);color:#a21a1b}.dropzone{border:1.5px dashed color-mix(in oklab,var(--border) 70%,var(--muted));border-radius:var(--r-m);padding:34px 20px;text-align:center;cursor:pointer;color:var(--muted);background:var(--surface);transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--tint-accent)}.dropzone .big{font-size:15px;font-weight:600;color:var(--fg);margin-top:10px}.dropzone svg.ic{width:26px;height:26px}.feed{display:flex;flex-direction:column}.feed-i{display:flex;gap:12px;padding:11px 2px;border-bottom:1px solid color-mix(in oklab,var(--border) 55%,var(--surface));font-size:14px}.feed-i:last-child{border-bottom:none}.feed-i svg.ic{width:18px;height:18px;color:var(--muted);margin-top:2px}.feed-i .w{font-weight:560}.feed-i .tm{color:var(--muted);font-size:12.5px;margin-left:auto;white-space:nowrap}.empty{text-align:center;color:var(--muted);padding:34px 10px;font-size:14px}.empty svg.ic{width:26px;height:26px;margin-bottom:8px;color:var(--muted)}.legend{display:flex;gap:16px;font-size:12.5px;color:var(--muted);margin-bottom:10px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.expander{display:flex;align-items:center;gap:6px;color:var(--muted);transition:transform .15s}.expander svg.ic{width:16px;height:16px}tr.open .expander{transform:rotate(90deg)}.rep tr.sec td{padding-top:16px}.rep .sec-l{font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.rep tr.sub td:first-child{padding-left:28px}.rep tr.tot td{border-top:1px solid var(--border);font-weight:650}.rep tr.grand td{border-top:2px solid var(--fg);font-weight:700;font-family:var(--font-display);font-size:15.5px}.rep td.neg-value{color:var(--fg)}.rep .headcell{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.switchrow{display:flex;align-items:center;gap:10px}.switch{position:relative;width:40px;height:24px;border-radius:999px;background:var(--border);border:none;cursor:pointer;transition:background .2s;flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-1);transition:transform .2s}.switch[aria-pressed=true]{background:var(--accent)}.switch[aria-pressed=true]:after{transform:translate(16px)}.seg{display:flex;gap:4px;background:color-mix(in oklab,var(--border) 40%,var(--surface));border-radius:12px;padding:4px}.seg button{flex:1;min-height:38px;border:none;background:none;border-radius:9px;color:var(--muted);font:inherit;font-size:13px;font-weight:560;cursor:pointer}.seg button:hover{color:var(--fg)}.seg button.on{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-1)}.split{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;align-items:start}.mnav{display:none}@media(max-width:1024px){.grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media(max-width:820px){.app{display:block}.sidebar{display:none}.topbar{padding:14px 18px}.topmeta .chip:first-child,.topsearch span,.topsearch kbd{display:none}.topsearch{padding:8px}.content{padding:18px 16px 56px}.mnav{display:flex;gap:8px;overflow-x:auto;position:sticky;top:57px;z-index:25;padding:10px 16px;background:color-mix(in oklab,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);scrollbar-width:none}.mnav::-webkit-scrollbar{display:none}.mnav a{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:7px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);text-decoration:none;font-size:13.5px;font-weight:540;color:var(--muted)}.mnav a[aria-current=page]{background:var(--tint-accent);color:var(--accent-ink);border-color:color-mix(in oklab,var(--accent) 35%,var(--border))}.mnav svg.ic{width:16px;height:16px}.banner .btn{margin-left:0;width:100%}dialog{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:var(--r-l) var(--r-l) 0 0;max-height:92dvh}.rtable thead{display:none}.rtable,.rtable tbody,.rtable tr,.rtable td{display:block;width:100%}.rtable tr[hidden]{display:none}.rtable tr{border-bottom:1px solid var(--border);padding:6px 0}.rtable tr:hover{background:transparent}.rtable td{border:none;padding:4px 2px;display:flex;justify-content:space-between;align-items:baseline;gap:16px}.rtable td:before{content:attr(data-l);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);flex:none}.rtable td:first-child{padding-top:10px}.rtable td:last-child{padding-bottom:10px}.rtable .r{text-align:right}.frow{grid-template-columns:1fr}#toasts{left:16px;right:16px;bottom:16px}.toast{max-width:none}}.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:28px 16px 44px}.auth-card{width:min(430px,100%)}.auth-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:22px;text-decoration:none;color:inherit}.auth-brand .brand-mark{width:40px;height:40px;border-radius:12px}.auth-brand .brand-name{font-family:var(--font-display);font-size:21px;font-weight:700;letter-spacing:-.01em}.auth-links{display:flex;flex-direction:column;gap:8px;text-align:center;margin-top:16px;font-size:14px}.auth-links a{color:var(--accent-ink);font-weight:540;text-decoration:none}.auth-links a:hover{text-decoration:underline}.pw-wrap{position:relative}.pw-wrap input{padding-right:48px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:none;background:transparent;border-radius:8px;color:var(--muted);cursor:pointer;display:grid;place-items:center}.pw-toggle:hover{color:var(--fg);background:color-mix(in oklab,var(--border) 25%,var(--surface))}.err{display:none;align-items:center;gap:8px;color:#a21a1b;background:var(--tint-danger);border:1px solid color-mix(in oklab,var(--danger) 28%,var(--border));border-radius:10px;padding:9px 12px;font-size:13.5px;font-weight:530;margin-bottom:12px}.err.show{display:flex}.err svg.ic{width:16px;height:16px}.steps{display:flex;gap:7px;margin-bottom:20px}.steps i{flex:1;height:5px;border-radius:4px;background:var(--border);transition:background .2s}.steps i.done{background:var(--accent)}.step-lbl{font-size:12px;font-weight:620;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.plan{position:relative;border:1px solid var(--border);border-radius:var(--r-m);background:var(--surface);padding:14px;cursor:pointer;transition:border-color .15s,box-shadow .15s;text-align:left;font:inherit}.plan:hover{border-color:color-mix(in oklab,var(--accent) 40%,var(--border))}.plan.sel{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 16%,transparent)}.plan b{display:block;font-family:var(--font-display);font-size:15px;margin-bottom:2px}.plan .price{font-family:var(--font-display);font-size:19px;font-weight:700;letter-spacing:-.01em;margin:6px 0 2px;font-variant-numeric:tabular-nums}.plan .price small{font-size:12px;font-weight:500;color:var(--muted)}.plan small{font-size:12px;color:var(--muted);line-height:1.4;display:block}.pw-meter{height:6px;border-radius:4px;background:var(--border);overflow:hidden;margin-top:8px}.pw-meter i{display:block;height:100%;width:0;border-radius:4px;background:var(--danger);transition:width .25s,background .25s}.pw-hint{font-size:12px;color:var(--muted);margin-top:5px}.wiz-wrap{max-width:640px;margin:0 auto;padding:26px 18px 64px}.wiz-top{display:flex;align-items:center;gap:12px;margin-bottom:22px;text-decoration:none;color:inherit}.wiz-top h1{font-size:20px}.wiz-top .ksub{font-size:12.5px;color:var(--muted);margin-top:1px}.kback{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--fg);text-decoration:none}.checkline{display:flex;align-items:center;gap:10px;padding:10px 2px;font-size:14px;border-bottom:1px solid color-mix(in oklab,var(--border) 50%,var(--surface))}.checkline:last-child{border-bottom:none}.checkline svg.ic{width:18px;height:18px;color:var(--success);flex:none}.checkline .v{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13.5px}.checkline .v.same{color:var(--success)}@media(max-width:560px){.plan-grid{grid-template-columns:1fr}}.alv-info{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;transition:color .15s ease,border-color .15s ease}.alv-info:hover,.alv-info:focus-visible{color:var(--accent-ink);border-color:var(--accent);outline:none}.alv-info svg{width:15px;height:15px}.budjetti-ind{display:inline-flex;align-items:center;margin-left:6px;vertical-align:middle}.budjetti-ind svg.ic{width:14px;height:14px}.tp{position:relative;min-width:0}.tp-input{width:100%}.tp-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;max-height:320px;overflow:auto;min-width:260px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-2);padding:6px;display:flex;flex-direction:column;gap:2px}.tp-list[hidden]{display:none}.tp-item,.tp-all{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:8px;border:none;background:transparent;cursor:pointer;text-align:left;font-size:13.5px;color:var(--fg);font-family:inherit}.tp-item:hover{background:color-mix(in oklab,var(--accent) 8%,var(--surface))}.tp-item .num{font-weight:600;color:var(--muted);flex:none;font-variant-numeric:tabular-nums}.tp-all{color:var(--accent-ink);font-weight:600;border-top:1px solid var(--border);border-radius:0;margin-top:4px;padding-top:10px}.tp-empty{padding:8px 10px;font-size:13px;color:var(--muted)}.tp-chips{display:flex;flex-wrap:wrap;gap:4px;padding:2px 2px 8px;border-bottom:1px solid var(--border);margin-bottom:6px}.tp-chip{padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--muted);font-size:12.5px;font-weight:540;cursor:pointer;font-family:inherit}.tp-chip:hover{color:var(--fg);border-color:color-mix(in oklab,var(--border) 60%,var(--muted))}.tp-chip.on{background:var(--accent);border-color:var(--accent);color:#fcfcfc}.tyyppi-myynti{color:var(--success);font-weight:600}.tyyppi-osto{color:#0c60a3;font-weight:600}.tyyppi-siirto{color:var(--muted)}.tyyppi-muu{color:var(--fg)}tr.rivi-klik{cursor:pointer}tr.rivi-klik:hover{background:var(--tint-accent)!important}.liite-lkm{color:var(--accent-ink);text-decoration:underline;cursor:pointer;white-space:nowrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#121c2373;display:grid;place-items:center;padding:20px}.modal-box{background:var(--surface);border-radius:var(--r-m);box-shadow:var(--shadow-2);width:min(94vw,460px);max-height:84vh;overflow:auto;padding:20px}.tilihaku{position:relative}.tilihaku input{width:100%;min-width:190px}.tilihaku-lista{position:fixed;z-index:70;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-2);max-height:280px;overflow:auto;padding:4px}.tilihaku-rivi{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 10px;border-radius:7px;cursor:pointer;font-size:14px}.tilihaku-rivi:hover{background:var(--tint-accent)}.tilihaku-rivi .nro{font-weight:600;font-variant-numeric:tabular-nums;flex:none}.tilihaku-rivi .nimi{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.tilihaku-rivi .saldo{margin-left:auto;padding-left:18px;color:var(--fg);font-weight:540;font-variant-numeric:tabular-nums;white-space:nowrap}.tilihaku-tyhja{padding:10px 12px;color:var(--muted);font-size:13.5px}.nav-section{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:16px 12px 4px}.nav-group>span{flex:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1 / -1}.field-error{color:var(--danger);font-size:12.5px;margin-top:4px}.alert{border-radius:var(--r-m);padding:12px 16px;font-size:14px;border:1px solid}.alert-ok{background:var(--tint-success);border-color:color-mix(in oklab,var(--success) 38%,var(--border));color:#005e28;color:oklch(42% .12 150)}.alert-err{background:var(--tint-danger);border-color:color-mix(in oklab,var(--danger) 38%,var(--border));color:#a21a1b}.alert-warn{background:color-mix(in oklab,#f59e0b 12%,var(--surface));border-color:color-mix(in oklab,#f59e0b 45%,var(--border));color:#744c00;color:oklch(45% .12 75)}.inline-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.inline-form .field{margin-bottom:0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.kpi-link{text-decoration:none;color:inherit;display:block}.kpi-link:hover .kpi{border-color:color-mix(in oklab,var(--accent) 40%,var(--border))}.stack{display:flex;flex-direction:column;gap:12px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}@media(max-width:720px){.form-grid{grid-template-columns:1fr}}@media print{.no-print{display:none!important}body{background:#fff}}.landing{min-height:100vh;display:flex;flex-direction:column}.landing-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-bottom:1px solid var(--border);background:color-mix(in oklab,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:40}.landing-actions{display:flex;gap:10px}.landing-hero{padding:76px 24px 48px;text-align:center;max-width:760px;margin:0 auto}.landing-hero h1{font-size:46px;letter-spacing:-.03em;line-height:1.05}.landing-hero .sub{font-size:18px;color:var(--muted);margin:18px 0 0;line-height:1.6}.landing-cta{display:flex;gap:12px;justify-content:center;margin-top:28px}.landing-hero-split{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;text-align:left;max-width:1080px}.landing-hero-split .landing-cta{justify-content:flex-start}.landing-art{display:flex;justify-content:center}.landing-art svg{width:100%;max-width:460px;height:auto}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:980px;margin:0 auto;padding:0 24px 72px;width:100%}.landing-foot{margin-top:auto;border-top:1px solid var(--border);padding:24px;text-align:center;color:var(--muted);font-size:13px}@media(max-width:760px){.landing-features{grid-template-columns:1fr}.landing-hero h1{font-size:32px}.landing-hero-split{grid-template-columns:1fr}}
