:root{--bg:#f4f6f8;--surface:#fff;--ink:#1f2733;--ink-soft:#5b6572;--border:#e2e6ea;--brand:#2f6fed;--brand-dark:#1f4fb8;--brand-soft:#eaf0ff;--green:#1f9d55;--green-soft:#e7f8ee;--red:#d64545;--red-soft:#fdecec;--radius:10px;--shadow:0 1px 3px #141e3214, 0 1px 2px #141e320a}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;position:sticky;top:0}.topbar .brand{align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.topbar .brand .dot{background:var(--brand);border-radius:50%;width:8px;height:8px;display:inline-block}.topbar nav{text-align:right;flex:1}.topbar nav a,.topbar nav .navlink{color:var(--ink-soft);cursor:pointer;margin-left:18px;font-weight:500}.topbar nav a:hover,.topbar nav .navlink:hover{color:var(--brand);text-decoration:none}.topbar nav a.active{color:var(--brand)}.topbar .user{color:var(--ink-soft);margin-left:18px;font-size:13px}.topbar .logout{color:var(--red);cursor:pointer;background:0 0;border:none;font-size:14px;font-weight:500}.container{max-width:1180px;margin:28px auto;padding:0 20px 60px}.page-title{margin:0 0 18px;font-size:20px;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:20px}.card h2,.card h3{margin-top:0;font-size:15px;font-weight:700}.grid-2{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=900px){.grid-2{grid-template-columns:1fr}}label{color:var(--ink-soft);margin-bottom:4px;font-size:12.5px;font-weight:600;display:block}input[type=text],input[type=date],input[type=number],input[type=password],select,textarea{border:1px solid var(--border);width:100%;color:var(--ink);background:#fff;border-radius:7px;padding:8px 10px;font-family:inherit;font-size:13.5px}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.field{margin-bottom:14px}.field-row{flex-wrap:wrap;gap:12px;display:flex}.field-row>.field{flex:1;min-width:140px}.btn{cursor:pointer;background:var(--brand);color:#fff;border:none;border-radius:7px;padding:9px 18px;font-size:13.5px;font-weight:600;display:inline-block}.btn:hover{background:var(--brand-dark)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.secondary{color:var(--ink);border:1px solid var(--border);background:#fff}.btn.secondary:hover{background:var(--bg)}.btn.success{background:var(--green)}.btn.success:hover{background:#157a41}.btn.danger{background:var(--red)}.btn.small{padding:5px 12px;font-size:12.5px}.btn.full{width:100%}table{border-collapse:collapse;width:100%}table th,table td{border-bottom:1px solid var(--border);text-align:left;padding:9px 10px;font-size:13px}table th{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.02em;background:#fafbfc;font-size:12px;font-weight:600}table tr:hover td{background:#fafbfd}table.center th,table.center td{text-align:center}.badge{border-radius:100px;padding:2px 9px;font-size:11.5px;font-weight:700;display:inline-block}.badge.open{background:var(--brand-soft);color:var(--brand-dark)}.badge.final,.badge.dena,.badge.litta{background:var(--green-soft);color:var(--green)}.badge.laina,.badge.ditta{background:var(--red-soft);color:var(--red)}.row-positive td{background:var(--green-soft)}.row-negative td{background:var(--red-soft)}.flash{border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13.5px;font-weight:500}.flash.success{background:var(--green-soft);color:var(--green)}.flash.error{background:var(--red-soft);color:var(--red)}.flash.info{background:var(--brand-soft);color:var(--brand-dark)}.totals-summary{flex-wrap:wrap;gap:14px;margin-top:6px;margin-bottom:20px;display:flex}.totals-summary .stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:170px;box-shadow:var(--shadow);padding:14px 18px}.totals-summary .stat h4{color:var(--ink-soft);margin:0 0 6px;font-size:12.5px;font-weight:600}.totals-summary .stat .line{justify-content:space-between;padding:2px 0;font-size:13px;display:flex}.totals-summary .stat .line.total{border-top:1px dashed var(--border);margin-top:4px;padding-top:6px;font-weight:700}.login-wrap{background:linear-gradient(160deg, #eef2ff 0%, var(--bg) 60%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:340px;padding:34px 30px;box-shadow:0 8px 30px #141e321f}.login-card h1{margin:0 0 4px;font-size:19px}.login-card p.sub{color:var(--ink-soft);margin:0 0 22px;font-size:13px}.login-card .btn{width:100%;margin-top:6px;padding:10px}.helper{color:var(--ink-soft);margin-top:4px;font-size:12px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.spinner-wrap{min-height:60vh;color:var(--ink-soft);justify-content:center;align-items:center;display:flex}.empty{text-align:center;color:#999;padding:20px 0}@media print{.no-print{display:none!important}body{background:#fff;font-size:12px}.card{box-shadow:none;page-break-inside:avoid;border:1px solid #999}.container{max-width:100%;margin:0;padding:0}table{font-size:10.5px}table th,table td{padding:5px 6px}.totals-summary{page-break-inside:avoid}@page{size:landscape;margin:12mm}}
