@font-face{font-family:Euclid;src:url('/admin/static/fonts/EuclidFlex-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Euclid;src:url('/admin/static/fonts/EuclidFlex-Medium.woff2') format('woff2');font-weight:600 800;font-display:swap}
@font-face{font-family:Condensed;src:url('/admin/static/fonts/Display.woff2') format('woff2');font-weight:300 900;font-display:swap}

:root{
  --ink:#0b0d0e;--panel:#151819;--panel-2:#1c2021;--line:#303536;
  --paper:#eceee9;--muted:#8e9694;--yellow:#f4d900;--yellow-2:#ffe91f;
  --red:#ff5b4d;--green:#31d17c;--blue:#72a7ff;--radius:18px;
}
*{box-sizing:border-box}
html{background:var(--ink);color:var(--paper);font-family:Euclid,sans-serif;-webkit-font-smoothing:antialiased}
body{margin:0;min-height:100vh;background:var(--ink)}
button,input,select{font:inherit}
button{color:inherit}
.hidden{display:none!important}
.noise{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}
.eyebrow{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--muted)}

/* Login */
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;overflow:hidden;position:relative}
.login-shell:before{content:"";position:absolute;width:62vw;height:62vw;max-width:780px;max-height:780px;background:var(--yellow);border-radius:50%;left:-24vw;top:-30vw;filter:blur(1px)}
.login-shell:after{content:"GALO";position:absolute;right:-.04em;bottom:-.2em;font-family:Condensed,Euclid,sans-serif;font-size:min(32vw,520px);line-height:.8;color:#111415;letter-spacing:-.07em;z-index:0}
.login-card{position:relative;z-index:1;width:min(560px,100%);padding:48px;background:#0e1011;border:1px solid #33393a;border-radius:28px;box-shadow:0 30px 90px #0009;animation:rise .65s cubic-bezier(.2,.8,.2,1)}
.login-mark{display:flex;align-items:center;gap:10px;margin-bottom:52px;font-family:Condensed,sans-serif;font-size:28px;font-weight:800}
.login-mark i{display:block;width:46px;height:10px;background:var(--yellow);transform:skew(-24deg)}
.login-card h1{font-family:Condensed,Euclid,sans-serif;font-size:clamp(66px,13vw,108px);line-height:.77;letter-spacing:-.045em;margin:0 0 30px;color:var(--yellow)}
.login-copy{color:#b3bab8;margin:0 0 40px;font-size:16px}
.login-form label,.field label{display:block;color:#9da5a3;font-size:12px;font-weight:600;margin-bottom:9px}
.password-row{display:grid;grid-template-columns:1fr auto;gap:10px}
input,select{width:100%;background:#1a1e1f;color:var(--paper);border:1px solid #3a4041;border-radius:12px;padding:14px 15px;outline:none;transition:border .18s,box-shadow .18s}
input:focus,select:focus{border-color:var(--yellow);box-shadow:0 0 0 3px #f4d9001c}
input[readonly]{color:#838b89;background:#151819;border-style:dashed;cursor:not-allowed}
.field small{display:block;color:#727a78;font-size:10px;line-height:1.45;margin-top:7px}
.form-error{min-height:20px;color:#ff847a;font-size:13px;margin:10px 0 0}
.secure-note{margin-top:34px;color:#777f7d;font-size:12px;display:flex;align-items:center;gap:8px}
.secure-note span{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #31d17c1a}

/* App shell */
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;background:#0e1011;border-right:1px solid #262a2b;padding:28px 18px 20px;display:flex;flex-direction:column;z-index:10}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--paper);padding:0 9px;margin-bottom:48px}
.brand-glyph{display:grid;place-items:center;width:42px;height:42px;background:var(--yellow);color:#111;font-family:Condensed,sans-serif;font-size:30px;font-weight:900;border-radius:10px;transform:rotate(-3deg)}
.brand b{display:block;font-family:Condensed,sans-serif;font-size:22px;line-height:1;letter-spacing:.03em}
.brand small{display:block;color:#69706f;font-size:9px;letter-spacing:.17em;margin-top:5px}
#nav{display:grid;gap:5px}
#nav button,.logout{border:0;background:transparent;display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:0 13px;border-radius:11px;color:#878f8d;cursor:pointer;text-align:left;transition:.16s}
#nav button:hover,.logout:hover{background:#181b1c;color:#dfe3df}
#nav button.active{background:var(--yellow);color:#151616;font-weight:700}
#nav i,.logout i{width:18px;height:18px;display:grid;place-items:center}
#nav svg,.logout svg,.icon-button svg,.button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
#nav em{margin-left:auto;font-style:normal;font-size:11px;padding:3px 7px;border-radius:20px;background:#292e2f;color:#aeb5b3}
#nav .active em{background:#121414;color:var(--yellow)}
.sidebar-foot{margin-top:auto}
.system-pill{padding:14px 13px 16px;background:#16191a;border:1px solid #282d2e;border-radius:13px;display:grid;grid-template-columns:9px 1fr;column-gap:9px;align-items:center;margin-bottom:10px}
.system-pill>span{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px #31d17c13;grid-row:1/3}
.system-pill b{font-size:12px}.system-pill small{color:#68706e;font-size:10px;margin-top:3px}
.workspace{min-width:0;padding:34px clamp(24px,4vw,64px) 64px;background:radial-gradient(circle at 90% -10%,#292c2600 0,#0b0d0e 44%),#0b0d0e}
.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}
.topbar h1{font-family:Condensed,Euclid,sans-serif;font-size:clamp(38px,5vw,66px);line-height:.9;letter-spacing:-.025em;margin:0;text-transform:uppercase}
.top-actions{display:flex;align-items:center;gap:10px}.updated{color:#737b79;font-size:11px;margin-right:4px}
.button,.icon-button{border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;transition:transform .16s,filter .16s,background .16s}
.button:active,.icon-button:active{transform:translateY(1px)}
.button{min-height:44px;border-radius:11px;padding:0 17px;background:#272b2c;color:#f3f4f0}
.button:hover,.icon-button:hover{filter:brightness(1.12)}
.button-primary{background:var(--yellow);color:#111311}
.button-danger{background:#3a1d1b;color:#ff8e85}.button-quiet{background:#222627;color:#b9c0be}
.button-small{min-height:34px;padding:0 11px;border-radius:8px;font-size:12px}
.icon-button{width:44px;height:44px;border-radius:11px;background:#202425;color:#bdc3c1}

/* Overview */
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:26px}
.metric{position:relative;min-height:150px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:#151819;overflow:hidden}
.metric:after{content:"";position:absolute;width:96px;height:96px;border:24px solid #fff;opacity:.025;border-radius:50%;right:-38px;bottom:-42px}
.metric.accent{background:var(--yellow);color:#141615;border-color:var(--yellow)}
.metric .label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#818987}.metric.accent .label{color:#625b00}
.metric strong{display:block;font-family:Condensed,sans-serif;font-size:54px;line-height:.9;margin-top:30px;letter-spacing:-.04em}
.metric small{display:block;margin-top:9px;color:#7f8785;font-size:11px}.metric.accent small{color:#6b6200}
.overview-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.7fr);gap:14px}
.panel{background:#141718;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.panel-head{min-height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid #2c3031}
.panel-head h2{font-size:15px;margin:0}.panel-head p{font-size:11px;color:#727a78;margin:4px 0 0}
.service-list{padding:10px 20px 18px}
.service-row{display:grid;grid-template-columns:10px 1fr auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #262a2b}.service-row:last-child{border-bottom:0}
.dot{width:8px;height:8px;border-radius:50%;background:var(--red)}.dot.ok{background:var(--green);box-shadow:0 0 0 5px #31d17c12}
.service-row b{font-size:13px}.service-row span{color:#767e7c;font-size:11px}
.traffic-bars{padding:15px 20px 22px;display:grid;gap:15px}
.bar-meta{display:flex;justify-content:space-between;font-size:11px;margin-bottom:7px}.bar-meta span{color:#8d9593}
.bar-track{height:7px;background:#292d2e;border-radius:8px;overflow:hidden}.bar-fill{height:100%;background:var(--yellow);border-radius:8px;min-width:2px}
.quick-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px}
.quick{padding:17px;border:1px solid #303536;background:#1a1e1f;border-radius:13px;cursor:pointer;text-align:left;transition:.16s}.quick:hover{border-color:#666f6d;transform:translateY(-2px)}
.quick b{display:block;font-size:13px;margin-bottom:5px}.quick small{color:#7a8280;line-height:1.4}

/* Tables / cards */
.toolbar{display:flex;gap:10px;margin-bottom:15px;align-items:center}.search{position:relative;flex:1}.search input{padding-left:42px}.search svg{position:absolute;left:14px;top:14px;width:17px;height:17px;stroke:#747c7a;fill:none}
.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:13px 18px;color:#69716f;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;border-bottom:1px solid #2a2e2f}.data-table td{padding:16px 18px;border-bottom:1px solid #25292a;font-size:13px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr{cursor:pointer;transition:background .14s}.data-table tbody tr:hover{background:#1b1f20}
.user-cell{display:flex;align-items:center;gap:12px}.avatar{width:36px;height:36px;border-radius:10px;background:#272c2d;display:grid;place-items:center;color:var(--yellow);font-weight:800;text-transform:uppercase}.user-cell b{display:block;font-size:13px}.user-cell small{display:block;color:#6f7775;font-size:10px;margin-top:3px}
.status{display:inline-flex;align-items:center;gap:7px;font-size:11px;padding:6px 9px;border-radius:20px;background:#173324;color:#6be2a0}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status.off{background:#32201f;color:#ff8f86}.status.orphan{background:#2b2d20;color:#ded55e}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.item-card{background:#151819;border:1px solid var(--line);border-radius:var(--radius);padding:20px;min-height:190px;display:flex;flex-direction:column}.item-card .code{font-family:Condensed,sans-serif;font-size:42px;line-height:.9;color:var(--yellow);margin:16px 0 8px}.item-card h3{font-size:15px;margin:0}.item-card p{color:#7f8785;font-size:12px;line-height:1.5}.item-card footer{display:flex;gap:8px;margin-top:auto}
.empty{padding:70px 24px;text-align:center}.empty strong{font-family:Condensed,sans-serif;font-size:34px}.empty p{color:#7f8785}

/* Settings */
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.setting-card{padding:22px;background:#151819;border:1px solid var(--line);border-radius:var(--radius)}
.setting-card h3{margin:0 0 8px;font-size:15px}.setting-card>p{color:#747c7a;font-size:12px;line-height:1.5;margin:0 0 22px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.field.full{grid-column:1/-1}
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-top:1px solid #292d2e}.toggle-row:first-of-type{border-top:0}.toggle-row b{font-size:13px}.toggle-row small{display:block;color:#777f7d;margin-top:4px}
.switch{position:relative;width:48px;height:28px;border-radius:30px;background:#333839;border:0;cursor:pointer;padding:0}.switch:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;left:4px;top:4px;background:#8a9290;transition:.2s}.switch.on{background:var(--yellow)}.switch.on:after{left:24px;background:#151616}
.test-buy{width:100%;margin-top:18px}.missing-key{margin:18px 0;padding:18px;border:1px solid #5d5420;background:#27240f;border-radius:13px}.missing-key b{color:var(--yellow)}.missing-key p{margin:7px 0 0;color:#b7af76;font-size:12px;line-height:1.5}.user-actions{justify-content:center;flex-wrap:wrap}
.condition-banner{padding:17px 18px;border:1px solid #4f4b22;background:linear-gradient(135deg,#27240f,#191b19 72%);border-radius:13px}
.condition-banner>span{display:block;color:var(--yellow);font-size:9px;font-weight:800;letter-spacing:.16em;margin-bottom:8px}.condition-banner>b{font-family:Condensed,sans-serif;font-size:30px;text-transform:uppercase}.condition-banner p{color:#9d9a79;font-size:11px;line-height:1.5;margin:8px 0 0}
.preset-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.preset-row button{min-height:36px;border:1px solid #34393a;background:#1d2122;color:#aeb5b3;border-radius:9px;font-size:10px;font-weight:700;cursor:pointer}.preset-row button:hover{border-color:var(--yellow);color:var(--yellow)}
.check-row{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid #303536;background:#191c1d;border-radius:11px;cursor:pointer}.check-row input{width:18px;height:18px;accent-color:var(--yellow);margin:1px 0 0;flex:0 0 auto}.check-row b{display:block;font-size:12px}.check-row small{display:block;color:#717977;font-size:10px;line-height:1.4;margin-top:4px}.check-row:has(input:disabled){opacity:.45;cursor:not-allowed}
.delete-warning{padding:18px;border:1px solid #65312d;background:linear-gradient(135deg,#321b19,#211817);border-radius:13px}.delete-warning>b{color:#ff8d84}.delete-warning p{color:#c89d99;font-size:12px;line-height:1.55;margin:8px 0 0}.delete-warning strong{color:#fff}
.button:disabled{opacity:.38;cursor:not-allowed;filter:none;transform:none}

/* Modal */
.modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px}.modal-backdrop{position:absolute;inset:0;border:0;background:#000b;backdrop-filter:blur(8px)}
.modal-card{position:relative;width:min(560px,100%);max-height:min(820px,92vh);overflow:auto;background:#141718;border:1px solid #3a4041;border-radius:22px;box-shadow:0 28px 100px #000;animation:rise .28s ease-out}
.modal-card>header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px;border-bottom:1px solid #2c3031;position:sticky;top:0;background:#141718eF;backdrop-filter:blur(10px);z-index:2}.modal-card h2{font-family:Condensed,sans-serif;font-size:36px;line-height:.9;margin:0;text-transform:uppercase}.modal-card>header .icon-button{width:36px;height:36px;font-size:25px}
#modalBody{padding:24px}.modal-form{display:grid;gap:15px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:10px}.danger-zone{border:1px solid #4a2825;background:#251817;border-radius:13px;padding:16px;margin-top:22px}.danger-zone p{font-size:12px;color:#c49a96;line-height:1.5}
.key-box{background:#0d0f10;border:1px dashed #484f4e;border-radius:12px;padding:13px;font-size:11px;line-height:1.5;color:#aeb6b4;word-break:break-all;margin:13px 0}.qr-wrap{background:#fff;border-radius:14px;padding:12px;width:180px;height:180px;margin:18px auto}.qr-wrap img{width:100%;height:100%;display:block}
.detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.detail-stat{padding:13px;background:#1d2122;border-radius:10px}.detail-stat small{display:block;color:#727a78;font-size:10px;margin-bottom:7px}.detail-stat b{font-size:13px}
.toast-stack{position:fixed;right:20px;bottom:20px;z-index:120;display:grid;gap:8px}.toast{min-width:260px;max-width:420px;padding:14px 16px;border:1px solid #3b4142;background:#171a1b;border-radius:12px;box-shadow:0 15px 50px #0009;font-size:13px;animation:toastIn .24s ease-out}.toast.error{border-color:#74332e;color:#ff9a91}.toast.ok{border-color:#256840;color:#81e6aa}
.spinner{width:22px;height:22px;border:2px solid #ffffff22;border-top-color:var(--yellow);border-radius:50%;animation:spin .7s linear infinite;margin:70px auto}

@keyframes rise{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@keyframes toastIn{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}

@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.overview-grid{grid-template-columns:1fr}.card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  .app-shell{display:block;padding-bottom:76px}.sidebar{position:fixed;top:auto;bottom:0;width:100%;height:68px;padding:7px 10px;border:0;border-top:1px solid #2a2e2f;flex-direction:row;background:#0e1011f2;backdrop-filter:blur(18px)}
  .brand,.sidebar-foot{display:none}#nav{display:grid;grid-template-columns:repeat(5,1fr);width:100%;gap:2px}#nav button{min-height:54px;padding:5px 2px;display:flex;flex-direction:column;justify-content:center;gap:4px;font-size:9px}#nav button.active{background:#f4d90014;color:var(--yellow)}#nav em{display:none}#nav i{height:17px}
  .workspace{padding:24px 15px 32px}.topbar{align-items:flex-start;margin-bottom:24px;gap:8px}.topbar h1{font-size:clamp(34px,9vw,38px);min-width:0}.updated,#refreshBtn{display:none}.top-actions .button{width:44px;padding:0;font-size:0}.top-actions .button svg{margin:0}
  .preset-row{grid-template-columns:repeat(2,1fr)}
  .metric-grid{grid-template-columns:repeat(2,1fr);gap:8px}.metric{min-height:128px;padding:15px}.metric strong{font-size:43px;margin-top:27px}.quick-list{grid-template-columns:1fr}.card-grid,.settings-grid{grid-template-columns:1fr}.data-table th:nth-child(3),.data-table td:nth-child(3),.data-table th:nth-child(4),.data-table td:nth-child(4){display:none}.data-table th,.data-table td{padding:13px 12px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.detail-stats{grid-template-columns:1fr}.login-card{padding:30px 24px}.login-mark{margin-bottom:38px}.password-row{grid-template-columns:1fr}.login-card h1{font-size:75px}.modal{padding:8px}.modal-card{border-radius:18px;max-height:94vh}.modal-card>header,#modalBody{padding:20px}.toast-stack{left:12px;right:12px;bottom:82px}.toast{min-width:0;max-width:none}
}
