/* QuantumPropertyPro — design DNA from QuantumFuel.IO + Quantum Grow Pro
   Glassmorphism · mesh background · Inter / Space Grotesk / JetBrains Mono */
:root,[data-theme="dark"]{
    --bg-0:#06090f;--bg-1:#0a1018;--bg-2:#111a24;--bg-3:#1b2733;--bg-4:#2c3d4d;
    --glass:rgba(10,16,24,0.7);--glass-border:rgba(255,255,255,0.06);--glass-hover:rgba(255,255,255,0.08);
    --cyan:#00e6d2;--cyan-glow:rgba(0,230,210,0.35);
    --teal:#14b8a6;--teal-glow:rgba(20,184,166,0.35);
    --green:#10b981;--green-glow:rgba(16,185,129,0.35);
    --blue:#3b82f6;--blue-glow:rgba(59,130,246,0.35);
    --red:#ef4444;--red-glow:rgba(239,68,68,0.35);
    --yellow:#f59e0b;--yellow-glow:rgba(245,158,11,0.35);
    --purple:#8b5cf6;--purple-glow:rgba(139,92,246,0.35);
    --orange:#f97316;--pink:#ec4899;
    --text-0:#eaf6f5;--text-1:#cde0e0;--text-2:#8ba3a8;--text-3:#5f7780;--text-4:#3f5660;
    --border:rgba(255,255,255,0.07);--input-bg:#06090f;
    --logo-gradient:linear-gradient(135deg,#00e6d2,#3b82f6,#8b5cf6);
    --header-gradient:linear-gradient(135deg,var(--text-0),var(--text-2));
    --scrollbar-thumb:#2c3d4d
}
[data-theme="light"]{
    --bg-0:#eef3f5;--bg-1:#f4f8f9;--bg-2:#e7eef1;--bg-3:#d6e1e6;--bg-4:#9fb4bc;
    --glass:rgba(255,255,255,0.78);--glass-border:rgba(0,0,0,0.08);--glass-hover:rgba(0,0,0,0.04);
    --cyan:#008a80;--cyan-glow:rgba(0,138,128,0.25);
    --teal:#0d9488;--teal-glow:rgba(13,148,136,0.25);
    --green:#059669;--green-glow:rgba(5,150,105,0.25);
    --blue:#2563eb;--blue-glow:rgba(37,99,235,0.25);
    --red:#dc2626;--red-glow:rgba(220,38,38,0.25);
    --yellow:#d97706;--yellow-glow:rgba(217,119,6,0.25);
    --purple:#7c3aed;--purple-glow:rgba(124,58,237,0.25);
    --orange:#ea580c;--pink:#db2777;
    --text-0:#0d1f2d;--text-1:#1e3340;--text-2:#47616c;--text-3:#647780;--text-4:#94a8b0;
    --border:rgba(0,0,0,0.08);--input-bg:#fff;
    --logo-gradient:linear-gradient(135deg,#008a80,#2563eb,#7c3aed);
    --header-gradient:linear-gradient(135deg,var(--text-0),var(--text-3));
    --scrollbar-thumb:#cbd5e1
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,sans-serif;background:var(--bg-0);color:var(--text-1);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background .5s,color .3s}

/* mesh background */
.mesh-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;transition:opacity .5s}
[data-theme="light"] .mesh-bg{opacity:.4}
.mesh-bg .orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.15;will-change:transform}
.mesh-bg .orb:nth-child(1){width:700px;height:700px;background:var(--cyan);top:-15%;left:-10%;animation:of1 30s ease-in-out infinite}
.mesh-bg .orb:nth-child(2){width:550px;height:550px;background:var(--blue);top:35%;right:-12%;animation:of2 25s ease-in-out infinite}
.mesh-bg .orb:nth-child(3){width:450px;height:450px;background:var(--purple);bottom:-12%;left:25%;animation:of3 28s ease-in-out infinite}
.mesh-bg .orb:nth-child(4){width:350px;height:350px;background:var(--teal);top:15%;left:45%;animation:of4 22s ease-in-out infinite}
.mesh-bg .orb:nth-child(5){width:250px;height:250px;background:var(--green);bottom:20%;right:20%;animation:of5 35s ease-in-out infinite}
@keyframes of1{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(80px,-50px) scale(1.15)}66%{transform:translate(-40px,70px) scale(.9)}}
@keyframes of2{0%,100%{transform:translate(0,0) scale(1)}25%{transform:translate(-60px,40px) scale(1.1)}75%{transform:translate(-20px,-50px) scale(1.05)}}
@keyframes of3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(60px,-60px) scale(1.1)}}
@keyframes of4{0%,100%{transform:translate(0,0)}33%{transform:translate(-40px,50px)}66%{transform:translate(30px,-40px)}}
@keyframes of5{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-50px,40px) scale(1.15)}}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px}
[data-theme="light"] .grain{opacity:.015}

.app{max-width:1440px;margin:0 auto;padding:1.5rem;position:relative;z-index:2}

/* header */
.header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem;padding:1rem 1.5rem;background:var(--glass);backdrop-filter:blur(24px) saturate(1.6);-webkit-backdrop-filter:blur(24px) saturate(1.6);border:1px solid var(--glass-border);border-radius:20px;animation:headerIn .8s cubic-bezier(.16,1,.3,1);position:relative;overflow:visible;z-index:50}
.header::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent)}
@keyframes headerIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.header-left{display:flex;align-items:center;gap:1rem}
.logo{width:48px;height:48px;position:relative;background:var(--logo-gradient);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;animation:logoGlow 4s ease-in-out infinite;box-shadow:0 0 24px var(--cyan-glow)}
.logo::before{content:'';position:absolute;inset:-2px;border-radius:16px;background:var(--logo-gradient);z-index:-1;filter:blur(8px);opacity:.5}
@keyframes logoGlow{0%,100%{box-shadow:0 0 20px var(--cyan-glow)}50%{box-shadow:0 0 40px var(--cyan-glow),0 0 60px var(--blue-glow)}}
.header-brand h1{font-family:'Space Grotesk',sans-serif;font-size:1.4rem;font-weight:700;background:var(--header-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.03em}
.header-brand .ver{display:inline-block;font-size:.55rem;font-weight:700;color:var(--cyan);background:rgba(0,230,210,.1);padding:.15rem .5rem;border-radius:20px;border:1px solid rgba(0,230,210,.2);letter-spacing:.05em;text-transform:uppercase;margin-left:.5rem}
.header-brand .tagline{font-size:.62rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-top:.15rem}
.header-right{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
.theme-toggle{width:44px;height:44px;border-radius:12px;background:var(--bg-3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}
.theme-toggle:hover{transform:scale(1.08);border-color:rgba(255,255,255,.15)}
.theme-toggle:active{transform:scale(.95)}
.theme-toggle svg{width:20px;height:20px;color:var(--text-2);transition:.3s;position:absolute}
.theme-toggle:hover svg{color:var(--yellow)}
[data-theme="dark"] .ti-sun{opacity:1;transform:rotate(0) scale(1)}
[data-theme="dark"] .ti-moon{opacity:0;transform:rotate(90deg) scale(.5)}
[data-theme="light"] .ti-sun{opacity:0;transform:rotate(-90deg) scale(.5)}
[data-theme="light"] .ti-moon{opacity:1;transform:rotate(0) scale(1)}
.ti-sun,.ti-moon{transition:all .5s cubic-bezier(.34,1.56,.64,1)}
.header-clock{text-align:right}
.header-clock .time{font-family:'JetBrains Mono',monospace;font-size:1.5rem;font-weight:800;color:var(--text-0);letter-spacing:.05em}
.header-clock .date{font-size:.72rem;color:var(--text-3);font-weight:500}

/* tab nav */
.tab-nav{display:flex;gap:.25rem;padding:.35rem .35rem .5rem;background:var(--glass);backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;margin-bottom:1.5rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent;animation:fadeUp .6s cubic-bezier(.16,1,.3,1) .1s both}
.tab-nav::-webkit-scrollbar{height:5px}
.tab-nav::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.tb{flex:0 0 auto;padding:.65rem 1.05rem;background:transparent;border:none;border-radius:12px;color:var(--text-3);font-family:'Inter',sans-serif;font-size:.8rem;font-weight:600;cursor:pointer;transition:color .25s,background .25s;white-space:nowrap}
.tb:hover{color:var(--text-1);background:var(--glass-hover)}
.tb.active{color:var(--text-0);background:var(--bg-3);box-shadow:0 2px 8px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.06)}
.tb .td{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:.4rem;vertical-align:middle}
.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;font-size:.6rem;font-weight:700;padding:0 5px;border-radius:10px;margin-left:.35rem;background:rgba(239,68,68,.2);color:var(--red)}
.tc{display:none;animation:tabFade .4s cubic-bezier(.16,1,.3,1)}.tc.active{display:block}
@keyframes tabFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* cards */
.card{background:var(--glass);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--glass-border);border-radius:18px;padding:1.5rem;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.16,1,.3,1)}
.card:hover{border-color:rgba(255,255,255,.1);box-shadow:0 8px 32px rgba(0,0,0,.2)}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}
.ca{position:absolute;top:0;left:0;right:0;height:2px;border-radius:18px 18px 0 0}
.ca.cyan{background:linear-gradient(90deg,var(--cyan),var(--blue))}.ca.green{background:linear-gradient(90deg,var(--green),var(--cyan))}.ca.yellow{background:linear-gradient(90deg,var(--yellow),var(--orange))}.ca.blue{background:linear-gradient(90deg,var(--blue),var(--cyan))}.ca.purple{background:linear-gradient(90deg,var(--purple),var(--pink))}.ca.red{background:linear-gradient(90deg,var(--red),var(--orange))}.ca.rainbow{background:linear-gradient(90deg,var(--cyan),var(--blue),var(--purple),var(--pink),var(--green))}.ca.orange{background:linear-gradient(90deg,var(--orange),var(--yellow))}
.ch{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap;gap:.5rem}
.ct{font-family:'Space Grotesk',sans-serif;font-size:1rem;font-weight:700;letter-spacing:-.01em;color:var(--text-0)}
.cs2{font-size:.72rem;color:var(--text-3);font-weight:500;margin-top:.15rem}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1.25rem}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.25rem}
.stack{display:grid;gap:1.25rem}

/* KPI gauges */
.gauge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}
.gc{background:var(--glass);backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:16px;padding:1.25rem 1.1rem;transition:all .35s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;cursor:default}
.gc:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 12px 40px rgba(0,0,0,.2);border-color:rgba(255,255,255,.1)}
.gc .kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.gc .kpi-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;background:var(--bg-3)}
.gc .kpi-trend{font-size:.66rem;font-weight:700;padding:.15rem .45rem;border-radius:20px}
.kpi-trend.up{color:var(--green);background:rgba(16,185,129,.12)}
.kpi-trend.down{color:var(--red);background:rgba(239,68,68,.12)}
.kpi-trend.flat{color:var(--text-3);background:rgba(100,116,139,.12)}
.gv{font-family:'JetBrains Mono',monospace;font-size:1.7rem;font-weight:800;line-height:1;color:var(--text-0)}
.gl{font-size:.72rem;color:var(--text-2);font-weight:600;margin-top:.35rem}
.gc.clickable{cursor:pointer}
.gc.clickable:hover{border-color:rgba(0,230,210,.35);box-shadow:0 12px 40px rgba(0,0,0,.2),0 0 0 1px var(--cyan-glow)}
.kpi-go{color:var(--cyan);font-weight:800;opacity:0;transform:translateX(-2px);transition:opacity .2s,transform .2s;display:inline-block;margin-left:.15rem}
.gc.clickable:hover .kpi-go{opacity:1;transform:translateX(2px)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-family:'Inter',sans-serif;font-size:.8rem;font-weight:600;border-radius:10px;border:1px solid var(--border);background:var(--bg-3);color:var(--text-1);cursor:pointer;transition:all .25s}
.btn:hover{background:var(--bg-4);border-color:rgba(255,255,255,.12);transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.2)}
.btn:active{transform:translateY(0) scale(.98)}
.btn-primary{background:var(--cyan);color:#00201d;border-color:var(--cyan);font-weight:700}
.btn-primary:hover{filter:brightness(1.1);box-shadow:0 4px 24px var(--cyan-glow)}
.btn-danger{border-color:rgba(239,68,68,.3);color:var(--red)}.btn-danger:hover{background:rgba(239,68,68,.1);border-color:var(--red)}
.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--glass-hover)}
.btn-sm{padding:.35rem .75rem;font-size:.72rem}

/* tables */
.tbl-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--border)}
table.tbl{width:100%;border-collapse:collapse;font-size:.82rem}
table.tbl th{text-align:left;padding:.7rem .85rem;background:var(--bg-1);color:var(--text-3);font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);white-space:nowrap}
table.tbl td{padding:.7rem .85rem;border-bottom:1px solid var(--border);color:var(--text-1);white-space:nowrap}
table.tbl tbody tr{transition:background .2s}
table.tbl tbody tr:hover{background:var(--glass-hover)}
table.tbl tbody tr:last-child td{border-bottom:none}
table.tbl tbody tr.row-active{background:rgba(0,230,210,.12)}
table.tbl tbody tr.row-active:hover{background:rgba(0,230,210,.16)}
.num{font-family:'JetBrains Mono',monospace;font-weight:600;text-align:right}
.muted{color:var(--text-3)}

/* badges */
.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .55rem;border-radius:20px;font-size:.66rem;font-weight:700;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}
.badge.ok{color:var(--green);background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.25)}
.badge.warn{color:var(--yellow);background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.25)}
.badge.err{color:var(--red);background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.25)}
.badge.info{color:var(--blue);background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.25)}
.badge.cyan{color:var(--cyan);background:rgba(0,230,210,.1);border-color:rgba(0,230,210,.22)}
.badge.purple{color:var(--purple);background:rgba(139,92,246,.12);border-color:rgba(139,92,246,.25)}
.badge.neutral{color:var(--text-3);background:rgba(100,116,139,.12);border-color:rgba(100,116,139,.2)}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}

/* list rows (Objekte / Verträge) */
.lrow{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:.9rem 1rem;background:var(--bg-1);border:1px solid var(--border);border-radius:12px;transition:all .3s;cursor:pointer;margin-bottom:.6rem}
.lrow:hover{border-color:rgba(0,230,210,.3);transform:translateX(4px);box-shadow:0 4px 16px rgba(0,0,0,.15)}
.lrow .l-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:var(--bg-3);border-radius:11px}
.lrow .l-name{font-weight:600;font-size:.9rem;color:var(--text-0)}
.lrow .l-meta{font-size:.72rem;color:var(--text-3);display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.2rem}
.lrow .l-right{text-align:right;display:flex;flex-direction:column;gap:.3rem;align-items:flex-end}

/* progress bar */
.pbar{height:8px;background:var(--bg-3);border-radius:4px;overflow:hidden}
.pbar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--cyan),var(--blue));transition:width 1s cubic-bezier(.16,1,.3,1)}

/* mini progress / split */
.kv{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.82rem}
.kv:last-child{border-bottom:none}
.kv .k{color:var(--text-3)}.kv .v{color:var(--text-0);font-weight:600;font-family:'JetBrains Mono',monospace}

/* doc render */
.doc{font-size:.86rem;line-height:1.7;color:var(--text-1)}
.doc h1{font-family:'Space Grotesk';font-size:1.5rem;color:var(--text-0);margin:.5rem 0 1rem}
.doc h2{font-family:'Space Grotesk';font-size:1.15rem;color:var(--cyan);margin:1.6rem 0 .7rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}
.doc h3{font-family:'Space Grotesk';font-size:.98rem;color:var(--text-0);margin:1.2rem 0 .5rem}
.doc h4{font-size:.88rem;color:var(--text-0);margin:1rem 0 .4rem}
.doc p{margin:.6rem 0}
.doc code{font-family:'JetBrains Mono';font-size:.82em;background:var(--bg-1);padding:.1rem .35rem;border-radius:5px;color:var(--cyan)}
.doc pre{background:var(--bg-0);border:1px solid var(--border);border-radius:12px;padding:1rem;overflow-x:auto;margin:.8rem 0}
.doc pre code{background:none;padding:0;color:var(--text-2);font-size:.78rem;line-height:1.5}
.doc table{width:100%;border-collapse:collapse;font-size:.8rem;margin:.8rem 0}
.doc th{text-align:left;padding:.5rem .7rem;background:var(--bg-1);color:var(--text-3);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border)}
.doc td{padding:.5rem .7rem;border:1px solid var(--border);color:var(--text-1)}
.doc ul,.doc ol{margin:.6rem 0 .6rem 1.4rem}
.doc li{margin:.3rem 0}
.doc strong{color:var(--text-0)}
.doc blockquote{border-left:3px solid var(--cyan);padding:.5rem 1rem;margin:.8rem 0;background:rgba(0,230,210,.05);border-radius:0 8px 8px 0;color:var(--text-2)}
.doc a{color:var(--cyan);text-decoration:none}.doc a:hover{text-decoration:underline}

/* banner */
.banner{display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;margin-bottom:1.25rem;border-radius:12px;font-size:.78rem;font-weight:600}
.banner.info{background:rgba(0,230,210,.07);border:1px solid rgba(0,230,210,.22);color:var(--cyan)}
.banner .b-dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* empty / toast */
.empty-s{text-align:center;padding:2.5rem 1rem;color:var(--text-4)}.empty-s .icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.35}
.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column-reverse;gap:.5rem;pointer-events:none}
.toast{pointer-events:auto;min-width:280px;max-width:380px;padding:.85rem 1.1rem;background:var(--bg-2);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:14px;display:flex;align-items:flex-start;gap:.7rem;font-size:.82rem;box-shadow:0 16px 48px rgba(0,0,0,.4);animation:toastIn .5s cubic-bezier(.34,1.56,.64,1)}
@keyframes toastIn{from{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}
.toast.removing{animation:toastOut .3s ease forwards}
@keyframes toastOut{to{opacity:0;transform:translateY(8px) scale(.95)}}
.toast .t-ico{font-size:1.05rem}

/* section title */
.sec-title{font-family:'Space Grotesk';font-size:1.1rem;font-weight:700;color:var(--text-0);margin:.25rem 0 1rem;display:flex;align-items:center;gap:.5rem}

::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}

/* ===== Login ===== */
.login-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}
.login-card{position:relative;z-index:2;width:100%;max-width:380px;background:var(--glass);backdrop-filter:blur(24px) saturate(1.5);border:1px solid var(--glass-border);border-radius:22px;padding:2.2rem 2rem;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.4);animation:headerIn .7s cubic-bezier(.16,1,.3,1)}
.login-logo{width:64px;height:64px;margin:0 auto 1rem;background:var(--logo-gradient);border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:2rem;box-shadow:0 0 32px var(--cyan-glow)}
.login-card h2{font-family:'Space Grotesk';font-size:1.25rem;color:var(--text-0);margin-bottom:.25rem}
.login-sub{font-size:.72rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.5rem}
.login-card form{text-align:left}
.login-card label{display:block;font-size:.7rem;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin:.75rem 0 .3rem}
.login-card input{width:100%;background:var(--input-bg);border:1px solid var(--border);border-radius:10px;padding:.65rem .8rem;color:var(--text-0);font-family:'Inter';font-size:.9rem;transition:.2s}
.login-card input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,230,210,.12)}
.login-err{color:var(--red);font-size:.78rem;font-weight:600;margin-top:.6rem;min-height:1rem}
.login-hint{margin-top:1.25rem;font-size:.72rem;color:var(--text-4)}
.login-hint code{font-family:'JetBrains Mono';color:var(--cyan);background:var(--bg-1);padding:.1rem .35rem;border-radius:5px}

/* ===== Header extras ===== */
.icon-btn{width:44px;height:44px;border-radius:12px;background:var(--bg-3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:all .25s}
.icon-btn:hover{transform:scale(1.08);border-color:rgba(255,255,255,.15)}
.user-chip{position:relative;display:flex;align-items:center;gap:.5rem;height:44px;padding:0 .85rem;background:var(--bg-3);border:1px solid var(--border);border-radius:12px;cursor:pointer;font-size:.82rem;font-weight:600;color:var(--text-1);transition:.25s;user-select:none}
.user-chip:hover{border-color:rgba(255,255,255,.15);background:var(--bg-4)}
.user-avatar{width:26px;height:26px;border-radius:50%;background:var(--logo-gradient);color:#04201d;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem}
.user-dd{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--bg-2);backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:14px;padding:.4rem;box-shadow:0 20px 60px rgba(0,0,0,.4);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.97);transition:all .25s cubic-bezier(.16,1,.3,1);z-index:9999}
.user-chip.open .user-dd{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.user-dd-item{display:flex;align-items:center;gap:.55rem;padding:.55rem .75rem;border-radius:10px;cursor:pointer;font-size:.82rem;font-weight:500;color:var(--text-2);transition:.15s}
.user-dd-item:hover{background:var(--glass-hover);color:var(--text-0)}

/* ===== Language switch ===== */
.lang-sw{position:relative}
.lang-sw .lc{display:inline-flex;align-items:center;gap:.3rem;height:44px;padding:0 .8rem;background:var(--bg-3);border:1px solid var(--border);border-radius:12px;cursor:pointer;font-size:.8rem;font-weight:700;color:var(--text-1);letter-spacing:.03em;transition:.2s;user-select:none}
.lang-sw .lc:hover{border-color:rgba(255,255,255,.15);background:var(--bg-4)}
.lang-dd{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;background:var(--bg-2);backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:14px;padding:.4rem;box-shadow:0 20px 60px rgba(0,0,0,.4);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.97);transition:all .25s cubic-bezier(.16,1,.3,1);z-index:9999}
.lang-sw.open .lang-dd{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.lang-dd .lo{display:flex;align-items:center;gap:.55rem;padding:.55rem .75rem;border-radius:10px;cursor:pointer;font-size:.82rem;font-weight:500;color:var(--text-2);transition:.15s}
.lang-dd .lo:hover{background:var(--glass-hover);color:var(--text-0)}
.lang-dd .lo.active{background:rgba(0,230,210,.1);color:var(--cyan)}
.lang-dd .flag{font-size:1.05rem}

/* ===== Modal ===== */
.modal-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;overflow-y:auto}
.modal{position:relative;width:100%;max-width:640px;background:var(--bg-2);border:1px solid var(--glass-border);border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.5);animation:toastIn .4s cubic-bezier(.16,1,.3,1);overflow:hidden}
.modal-wide{max-width:920px}
.modal::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--purple))}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}
.modal-head h3{font-family:'Space Grotesk';font-size:1.05rem;color:var(--text-0)}
.modal-x{background:none;border:none;color:var(--text-3);font-size:1.4rem;cursor:pointer;line-height:1;padding:.2rem}
.modal-x:hover{color:var(--text-0)}
.modal-body{padding:1.5rem;max-height:64vh;overflow-y:auto}
.modal-foot{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.5rem;border-top:1px solid var(--border)}

/* ===== Forms ===== */
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem 1.1rem}
.form-grid.one{grid-template-columns:1fr}
.fld{display:flex;flex-direction:column;gap:.3rem}
.fld.full{grid-column:1/-1}
.fld label{font-size:.68rem;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.fld input,.fld select,.fld textarea{background:var(--input-bg);border:1px solid var(--border);border-radius:9px;padding:.55rem .7rem;color:var(--text-0);font-family:'Inter';font-size:.85rem;transition:.2s;width:100%}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,230,210,.12)}
.fld .chk{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-1);cursor:pointer;padding:.4rem 0}
.fld .chk input{width:auto}
.toolbar{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap}
.toolbar input.search{flex:1;min-width:160px;max-width:280px;background:var(--input-bg);border:1px solid var(--border);border-radius:10px;padding:.5rem .8rem;color:var(--text-0);font-size:.82rem}
.toolbar input.search:focus{outline:none;border-color:var(--cyan)}
.filter-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .7rem;border-radius:10px;background:rgba(0,230,210,.1);border:1px solid rgba(0,230,210,.25);color:var(--cyan);font-size:.75rem;font-weight:700;animation:toastIn .3s ease}
.filter-chip button{background:none;border:none;color:var(--cyan);cursor:pointer;font-size:.85rem;padding:0;line-height:1}
.filter-chip button:hover{color:var(--text-0)}
.settings-nav{display:flex;gap:.3rem;margin-bottom:1.25rem;flex-wrap:wrap}
.settings-nav .sb{padding:.5rem 1rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-1);color:var(--text-3);font-size:.8rem;font-weight:600;cursor:pointer;transition:.2s}
.settings-nav .sb.active{background:var(--cyan);color:#04201d;border-color:var(--cyan)}
.row-actions{display:flex;gap:.4rem;justify-content:flex-end}
.icon-act{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--bg-1);cursor:pointer;font-size:.8rem;transition:.2s;display:inline-flex;align-items:center;justify-content:center}
.icon-act:hover{border-color:var(--cyan);background:var(--glass-hover)}
.icon-act.del:hover{border-color:var(--red);color:var(--red)}

@media(max-width:768px){
    .form-grid{grid-template-columns:1fr}
    .app{padding:.75rem}
    .header{flex-direction:column;gap:.75rem;text-align:center;padding:1rem}
    .header-right{justify-content:center;flex-wrap:wrap}
    .grid-2,.grid-3,.gauge-grid{grid-template-columns:1fr}
    .tb{padding:.5rem .75rem;font-size:.72rem}
    .lrow{grid-template-columns:1fr;text-align:left}
    .lrow .l-right{align-items:flex-start}
    .toast-container{left:.75rem;right:.75rem}.toast{min-width:auto}
}
