*{box-sizing:border-box}body{margin:0;font:14px/1.5 Inter,"Segoe UI",Arial,sans-serif;color:#18243c;background:#f6f7fb}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:11px 16px;font-weight:600}button:disabled{opacity:.5;cursor:wait}input,select,textarea{display:block;width:100%;margin:7px 0 18px;border:1px solid #d9dfeb;border-radius:9px;padding:11px;background:#fff;color:#18243c}textarea{min-height:95px}label{display:block;font-size:12px;font-weight:600}button:focus-visible,a:focus-visible{outline:3px solid #9aabff;outline-offset:3px}.primary{background:#4356ef;color:white}.secondary{background:#edf0fa;color:#344777;border:1px solid #dbe0ef}.danger{color:#ae2945;background:#fff0f3}.brand{display:flex;align-items:center;gap:12px}.brand strong{font-size:29px;font-weight:650;letter-spacing:-1px}.brand small{display:block;font-size:8px;letter-spacing:1px}.avatar{display:block;width:60px;height:60px;flex-shrink:0;border-radius:50%;background-image:url('/bino.png');background-size:365.714% 243.81%;background-position:58.602% 52.318%;background-repeat:no-repeat}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-story{padding:65px 12%;background:#e9edff;display:flex;flex-direction:column;justify-content:center}.auth-story .eyebrow{margin-top:70px}.auth-story h1{font-size:clamp(35px,4vw,62px);line-height:1.09;letter-spacing:-2px;margin:20px 0}.auth-story p{max-width:290px;color:#526482}.coffee{margin-top:50px;font-size:13px;color:#4356af}.eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:1.8px;color:#697ca0}.auth-form{margin:auto;padding:40px;width:min(460px,100%)}h2{font-size:26px;letter-spacing:-.8px;margin:22px 0 8px}.auth-form p{color:#62718b}.auth-form form{margin-top:30px}.auth-form .primary{width:100%}.pill{font-size:11px;font-weight:600;color:#4257c3;background:#e9edff;padding:8px 12px;border-radius:30px}.muted{color:#6e7e96;font-size:12px}.auth-form .muted{margin-top:24px;font-size:12px}.error{padding:12px;background:#fff1f3;color:#a22340;border-radius:9px;margin-bottom:18px}.success{padding:12px;background:#e9f7ef;color:#246244;border-radius:9px;margin-bottom:18px}[hidden]{display:none!important}#app{min-height:100vh;display:grid;grid-template-columns:238px 1fr}aside{padding:28px 22px;background:white;border-right:1px solid #e4e8f2;display:flex;flex-direction:column;gap:25px;position:sticky;top:0;height:100vh}aside .brand{margin-bottom:20px}aside .avatar{width:48px;height:48px}nav{display:flex;flex-direction:column;gap:8px}nav button{background:transparent;color:#67758d;text-align:left;padding:12px 16px}nav button.selected{background:#e9edff;color:#344bd4}.side-note{margin-top:auto;padding:17px;background:#f5f7ff;border-radius:12px;font-size:12px;color:#637492}.side-note strong{color:#344c80}.workspace{padding:38px 42px;min-width:0}header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:28px}header h1{font-size:30px;letter-spacing:-1px;margin:7px 0 0}#period{display:flex;gap:12px;align-items:center;margin-bottom:25px;flex-wrap:wrap}#period input{width:160px;margin:5px 0 0}#period button{margin-top:20px}#period .muted{margin-top:25px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:24px}.metric,.card{background:white;border:1px solid #e1e6ef;border-radius:14px;padding:22px}.metric span{color:#697b96;font-size:12px}.metric strong{display:block;font-size:32px;margin-top:12px;font-weight:600}.card{margin-bottom:20px}.card h2{font-size:19px;margin:0 0 14px}.card p{color:#6b7b94}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:#8390a6;white-space:nowrap}td,th{padding:14px 12px;border-bottom:1px solid #edf0f7}td:first-child{padding-left:0}td button{font-size:11px;padding:7px 10px;margin:3px}td small{display:block;color:#8090a9}td strong{font-weight:600}.badge{display:inline-block;padding:4px 9px;border-radius:20px;background:#eef1fa;white-space:nowrap;font-size:10px}.badge.active,.badge.published{background:#e7f5ec;color:#27714b}.badge.expired,.badge.blocked,.badge.rejected{background:#fff0f2;color:#a53b52}.badge.pending,.badge.invited{background:#fff5de;color:#947124}.toolbar{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:20px}.toolbar input{max-width:320px;margin:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}.asset{background:white;border:1px solid #e1e6ef;border-radius:13px;overflow:hidden}.asset .thumb{width:100%;height:165px;object-fit:contain;background:#eef1f8;display:block}.asset .placeholder{display:grid;place-items:center;color:#99a5bc}.asset .body{padding:17px}.asset h3{margin:8px 0;font-size:16px}.asset p{font-size:12px;color:#71819a;min-height:30px}.asset button{font-size:12px;margin:4px 4px 0 0}.empty{padding:50px 25px;text-align:center;background:#fff;border:1px dashed #cfd7e8;border-radius:14px;color:#7484a0}.empty h2{color:#243659;font-size:23px}.split{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}dialog{border:1px solid #e0e6f0;border-radius:16px;padding:30px;width:min(520px,92vw);max-height:90vh;overflow:auto;box-shadow:0 20px 90px #12204133}dialog::backdrop{background:#14244580}.close{position:absolute;right:12px;top:9px;background:transparent;font-size:22px}.linkbox{padding:13px;background:#f1f4ff;overflow-wrap:anywhere;font-size:12px}form .row{display:flex;gap:12px}form .row>*{flex:1}a{color:#3c53d9}#message:empty,#auth-message:empty{display:none}@media(max-width:1050px){.workspace{padding:28px 23px}.metrics{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:700px){.auth{grid-template-columns:1fr}.auth-story{padding:25px}.auth-story h1,.auth-story p,.auth-story>.eyebrow,.coffee{display:none}.auth-form{padding:30px 22px}#app{grid-template-columns:1fr}aside{position:static;height:auto;padding:18px;gap:12px}aside .brand{margin:0}aside>.eyebrow,.side-note{display:none}nav{flex-direction:row;overflow:auto}nav button{white-space:nowrap}aside>#logout{align-self:flex-end}.workspace{padding:22px 16px}header h1{font-size:26px}.metric{padding:18px}.metric strong{font-size:27px}#period input{width:140px}}
.usage-filters{display:grid;grid-template-columns:minmax(220px,2fr) minmax(180px,1fr);gap:16px;margin-bottom:8px}.metric small{display:block;color:#72819a;font-size:11px;margin-top:6px}.usage-note{border:1px solid #d9e2fc;background:#edf2ff;border-radius:12px;padding:18px 22px;margin-bottom:22px;color:#344b79}.usage-note p{margin:6px 0 0;font-size:12px}.usage-chart{display:flex;align-items:flex-end;gap:8px;min-height:172px;overflow-x:auto;padding:12px 0 18px}.usage-column{flex:1;min-width:20px;text-align:center;max-width:80px}.usage-bar{background:linear-gradient(#6578ff,#4356ef);border-radius:5px 5px 0 0;min-width:12px}.usage-column small{font-size:9px;color:#70829c}.usage-empty{padding:24px;text-align:center}.card>button{margin:0 0 14px}.card details{margin-top:12px}.card summary{cursor:pointer;color:#4356af;font-size:12px}.card .toolbar{margin:15px 0 0}.card td{vertical-align:top}.usage-filters input,.usage-filters select{margin-bottom:10px}@media(max-width:700px){.usage-filters{grid-template-columns:1fr}.usage-note{padding:16px}.usage-column{min-width:24px}}
/* Administrative controls */
.admin-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:20px}.admin-filters>input{flex:2;min-width:200px;width:auto}.admin-filters label{flex:1;min-width:145px}.admin-filters input,.admin-filters select{margin:6px 0 0}.admin-filters button{min-height:44px}.energy-cell{min-width:110px}.energy-cell strong{display:block;font-size:20px;color:#103a4c}.energy-cell progress{width:110px;height:10px;accent-color:#28657a;display:block;margin:6px 0}.energy-cell small{font-size:11px;color:#63758a}.admin-actions{display:flex;flex-wrap:wrap;gap:4px;min-width:150px}button:disabled{opacity:.5;cursor:not-allowed}.card[aria-busy=true]{opacity:.65}.primary{background:#103c50}nav button.selected{background:#e4eff3;color:#103c50}.badge.failed{background:#fff0f2;color:#a53b52}
