@font-face{font-family:Finlandica;src:url(/fonts/Finlandica.ttf) format("truetype");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Ndot;src:url(/fonts/Ndot.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--bd-mint: #5BC8D6;--bd-mint-deep: #3FA9B8;--bd-mint-soft: #E6F6F8;--bd-black: #111111;--bd-ink: #1B1F22;--bd-white: #FFFFFF;--bd-off-white: #F7F8F9;--bd-titanium: #B7BDC3;--bd-silver: #DDE2E6;--bd-fog: #EEF1F3;--bd-blue: #2976BD;--bd-blue-soft: #E6EFF8;--fg-1: var(--bd-black);--fg-2: #4A5158;--fg-3: #8A9098;--fg-on-mint: var(--bd-black);--fg-on-dark: var(--bd-white);--bg-1: var(--bd-white);--bg-2: var(--bd-off-white);--bg-3: var(--bd-fog);--bg-inverse: var(--bd-black);--border-1: #E4E7EA;--border-2: var(--bd-silver);--border-strong: var(--bd-titanium);--accent: var(--bd-mint);--accent-deep: var(--bd-mint-deep);--accent-secondary: var(--bd-blue);--success: #3FB58E;--warning: #D7A24A;--danger: #C4544A;--info: var(--bd-blue);--font-sans: "Finlandica", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Finlandica", "Inter", system-ui, sans-serif;--font-mark: "Ndot", "Finlandica", monospace;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--w-regular: 400;--w-medium: 500;--w-semibold: 600;--w-bold: 700;--fs-display: clamp(48px, 6vw, 88px);--fs-h1: clamp(36px, 4vw, 56px);--fs-h2: clamp(28px, 3vw, 40px);--fs-h3: 24px;--fs-h4: 20px;--fs-body-lg: 18px;--fs-body: 16px;--fs-body-sm: 14px;--fs-caption: 13px;--fs-micro: 11px;--lh-tight: 1.05;--lh-snug: 1.2;--lh-normal: 1.45;--lh-relaxed: 1.6;--tracking-display: -.02em;--tracking-tight: -.01em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-mark: .18em;--s-0: 0;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 128px;--r-xs: 6px;--r-sm: 10px;--r-md: 14px;--r-lg: 16px;--r-xl: 20px;--r-2xl: 28px;--r-pill: 999px;--shadow-1: 0 1px 2px rgba(17,17,17,.04), 0 1px 1px rgba(17,17,17,.03);--shadow-2: 0 4px 12px rgba(17,17,17,.06), 0 1px 2px rgba(17,17,17,.04);--shadow-3: 0 12px 32px rgba(17,17,17,.08), 0 2px 6px rgba(17,17,17,.04);--shadow-4: 0 24px 60px rgba(17,17,17,.1), 0 6px 12px rgba(17,17,17,.05);--shadow-mint: 0 12px 32px rgba(91,200,214,.3);--shadow-cyan-glow: 0 0 0 4px rgba(91,200,214,.18);--shadow-cyan-soft: 0 4px 16px rgba(91,200,214,.18);--shadow-inner: inset 0 1px 0 rgba(255,255,255,.6);--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .18s;--dur-base: .26s;--dur-slow: .48s;--dur-xslow: .8s}.eyebrow{font-family:Ndot,monospace;font-size:12px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3)}.mark{font-family:var(--font-mark);letter-spacing:var(--tracking-mark);text-transform:uppercase}.card-flat{background:var(--bd-white);border:1px solid var(--border-1);border-radius:var(--r-lg)}.card-elevated{background:var(--bd-white);border-radius:var(--r-lg);box-shadow:var(--shadow-2);border:1px solid transparent}.card-featured{background:var(--bd-white);border-radius:var(--r-lg);border:1px solid var(--bd-mint);box-shadow:var(--shadow-cyan-soft);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.card-featured:hover{transform:translateY(-2px);box-shadow:var(--shadow-cyan-soft),var(--shadow-3)}.cyan-border{border:1px solid var(--bd-mint)}.cyan-tint{background:var(--bd-mint-soft)}.cyan-text{color:var(--bd-mint-deep)}.cyan-glow{box-shadow:var(--shadow-cyan-glow)}.cyan-fill{background:var(--bd-mint);color:var(--bd-black)}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{background:var(--bd-off-white);color:var(--bd-black);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:16px}a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--bd-white);border-right:1px solid var(--border-1);display:flex;flex-direction:column;padding:16px 0;position:sticky;top:0;height:100vh}.brand{padding:0 20px 16px;border-bottom:1px solid var(--border-1);margin-bottom:12px}.brand-name{font-weight:700;font-size:17px;letter-spacing:-.01em}.brand-sub{font-size:11px;color:var(--fg-3);display:block;margin-top:2px}.nav{display:flex;flex-direction:column;gap:2px;padding:0 10px;flex:1}.nav-item{padding:10px 14px;border-radius:8px;color:var(--fg-2);font-size:14px;font-weight:500;transition:background .12s,color .12s}.nav-item:hover{background:var(--bd-fog)}.nav-item.active{background:var(--bd-mint-soft);color:var(--bd-black);font-weight:600}.sidebar-foot{padding:12px 16px 0;border-top:1px solid var(--border-1);margin-top:12px;display:flex;align-items:center;gap:10px;font-size:13px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--bd-mint);display:grid;place-items:center;font-weight:700;color:var(--bd-black)}.who{font-weight:600}.role{font-size:11px;color:var(--fg-3)}.content{padding:24px 28px;max-width:1100px;width:100%}.topbar{display:none}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3)}h1{font-size:24px;margin:4px 0 2px;font-weight:700;letter-spacing:-.01em}h2{font-size:18px;margin:0 0 12px;font-weight:600}h3{font-size:15px;margin:0;font-weight:600}.sub{font-size:13px;color:var(--fg-3)}.head-actions{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--bd-white);border:1px solid var(--border-1);border-radius:12px;padding:16px 18px;margin-bottom:16px}.card-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.tile{background:var(--bd-white);border:1px solid var(--border-1);border-radius:12px;padding:14px 16px}.tile.accent{background:var(--bd-mint-soft);border-color:var(--bd-mint)}.tile-label{font-size:12px;color:var(--fg-3)}.tile-value{font-size:22px;font-weight:700;margin-top:4px}.btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;padding:9px 16px;border-radius:9px;border:1px solid transparent;font-size:14px;font-weight:600;transition:all .12s;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-pri{background:var(--bd-mint);color:var(--bd-black)}.btn-pri:hover:not(:disabled){background:var(--bd-mint-deep)}.btn-sec{background:var(--bd-white);border-color:var(--border-2);color:var(--bd-black)}.btn-sec:hover:not(:disabled){background:var(--bd-fog)}.btn-ghost{background:transparent;color:var(--fg-2)}.btn-ghost:hover:not(:disabled){background:var(--bd-fog)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 12px;font-size:13px}.btn-block{width:100%}.tbl-wrap{overflow-x:auto;border:1px solid var(--border-1);border-radius:12px;background:var(--bd-white)}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl thead th{text-align:left;padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);border-bottom:1px solid var(--border-1);white-space:nowrap}.tbl tbody td{padding:11px 14px;border-bottom:1px solid var(--border-1)}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr.clickable{cursor:pointer}.tbl tbody tr.clickable:hover td{background:var(--bd-off-white)}.num{text-align:right;font-variant-numeric:tabular-nums}.sku{font-family:var(--font-mono);font-size:12px;color:var(--fg-3)}.strong{font-weight:600}.muted{color:var(--fg-3)}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pill-slate{background:#eef1f3;color:#5a6470}.pill-mint{background:var(--bd-mint-soft);color:var(--bd-mint-deep)}.pill-blue{background:#e6eff8;color:#2976bd}.pill-green{background:#e3f5ee;color:#2e9b76}.pill-amber{background:#fbf1dc;color:#b7842b}.pill-red{background:#fbe4e2;color:#c4544a}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.lab{font-size:12px;font-weight:600;color:var(--fg-2)}.input,.select,.textarea{border:1px solid var(--border-2);border-radius:9px;padding:10px 12px;background:var(--bd-white);width:100%}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--bd-mint);border-color:var(--bd-mint)}.textarea{min-height:80px;resize:vertical}.row{display:flex;align-items:center;gap:8px}.between{justify-content:space-between}.col{display:flex;flex-direction:column}.loading-shell{padding:48px;text-align:center;color:var(--fg-3)}.empty{padding:40px 20px;text-align:center;color:var(--fg-3)}.empty h4{margin:0 0 6px;color:var(--fg-2)}.dialog-error{background:#fbe4e2;color:#9b3127;padding:12px 14px;border-radius:10px;font-size:14px}.dialog-info{background:var(--bd-mint-soft);color:var(--bd-mint-deep);padding:12px 14px;border-radius:10px;font-size:13px}.dialog-warn{background:#fbf1dc;color:#8a6320;padding:12px 14px;border-radius:10px;font-size:13px}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,var(--bd-mint-soft),var(--bd-off-white))}.auth-card{background:var(--bd-white);border-radius:16px;padding:32px;width:100%;max-width:400px;box-shadow:0 10px 40px #00000014}.auth-brand{text-align:center;margin-bottom:24px}.auth-brand .bn{font-size:22px;font-weight:700}.auth-brand .bs{font-size:13px;color:var(--fg-3);margin-top:4px}.cart-line{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-1)}.cart-line:last-child{border-bottom:none}.qty-ctl{display:inline-flex;align-items:center;border:1px solid var(--border-2);border-radius:8px;overflow:hidden}.qty-ctl button{width:32px;height:32px;border:none;background:var(--bd-white);font-size:16px}.qty-ctl button:hover{background:var(--bd-fog)}.qty-ctl span{min-width:34px;text-align:center;font-weight:600}.timeline{display:flex;flex-direction:column;gap:0}.tl-row{display:grid;grid-template-columns:14px 1fr;gap:10px}.tl-dot{width:9px;height:9px;border-radius:50%;background:var(--bd-mint);margin-top:5px}.tl-line{border-left:2px solid var(--border-1);margin-left:4px;padding-bottom:12px;padding-left:14px}.tl-title{font-size:14px;font-weight:500}.tl-when{font-size:12px;color:var(--fg-3)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:100;display:grid;place-items:center;padding:16px}.modal{background:var(--bd-white);border-radius:14px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto}.modal-h{padding:18px 20px;border-bottom:1px solid var(--border-1);font-weight:700;font-size:17px}.modal-b{padding:20px}.modal-f{padding:14px 20px;border-top:1px solid var(--border-1);display:flex;justify-content:flex-end;gap:8px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.chip{padding:6px 12px;border-radius:999px;border:1px solid var(--border-2);background:var(--bd-white);font-size:13px;color:var(--fg-2)}.chip.active{background:var(--bd-black);color:var(--bd-white);border-color:var(--bd-black)}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.cat-card{background:var(--bd-white);border:1px solid var(--border-1);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px}.cat-card .price{font-size:18px;font-weight:700;margin-top:auto}.cat-card .name{font-weight:600;font-size:14px;line-height:1.3}@media (max-width: 860px){.app{grid-template-columns:1fr}.sidebar{display:none}.sidebar.open{display:flex;position:fixed;z-index:50;width:260px;box-shadow:0 0 40px #0003}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bd-white);border-bottom:1px solid var(--border-1);position:sticky;top:0;z-index:40}.topbar .burger{width:40px;height:40px;border-radius:9px;border:1px solid var(--border-2);background:var(--bd-white);font-size:18px}.content{padding:16px}.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}h1{font-size:21px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:45}}
