.camera-created[data-v-2d02ba98]{padding-top:10px}.success[data-v-2d02ba98]{color:#22c55e;background:#22c55e1f;border-radius:12px;margin-bottom:16px;padding:14px 16px;font-weight:700}.created-box[data-v-2d02ba98]{background:#0f172a8c;border:1px solid #94a3b829;border-radius:14px;padding:18px}.token-value[data-v-2d02ba98]{word-break:break-all;background:#0f172a;border-radius:9px;margin:7px 0 18px;padding:11px 13px;font-family:monospace}.url-row[data-v-2d02ba98]{align-items:center;gap:8px;display:flex}.url-row .field[data-v-2d02ba98]{flex:1;min-width:0}.hint[data-v-2d02ba98]{color:#94a3b8;margin:12px 0 0;font-size:13px}small[data-v-2d02ba98]{color:#94a3b8}:root{color:#e8edf7;font-synthesis:none;background:#080d18;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#080d18;min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{background:radial-gradient(circle at 80% -20%,#16284a 0,#080d18 38%);min-height:100vh;display:flex}.sidebar{background:#0c1322;border-right:1px solid #1c2940;flex-direction:column;width:255px;height:100vh;padding:18px 12px;transition:all .2s;display:flex;position:sticky;top:0}.sidebar.collapsed{width:76px}.brand{align-items:center;gap:11px;padding:7px 9px 25px;display:flex}.brand-mark{background:linear-gradient(135deg,#39b7ff,#6b63ff);border-radius:12px;place-items:center;width:40px;height:40px;font-weight:900;display:grid}.brand b{letter-spacing:.08em;font-size:13px;display:block}.brand small{color:#73829a;letter-spacing:.12em;margin-top:2px;font-size:9px;display:block}.nav-item{color:#8e9bb0;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;width:100%;margin:3px 0;padding:12px;text-decoration:none;display:flex}.nav-item:hover,.nav-item.router-link-active{color:#fff;background:#15213a}.sidebar-bottom{margin-top:auto}.ghost{color:#8794aa}.main{flex:1;min-width:0}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#0b1220dd;border-bottom:1px solid #1a263b;align-items:center;gap:15px;height:68px;padding:0 25px;display:flex;position:sticky;top:0}.icon-btn{color:#dce5f5;background:#111b2d;border:1px solid #24334b;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.crumb{color:#9eabc0;flex:1;font-size:14px}.top-user{align-items:center;gap:9px;font-size:13px;display:flex}.role{color:#6dc5ff;background:#17365a;border-radius:20px;padding:4px 7px;font-size:10px}.content{max-width:1700px;margin:auto;padding:25px}.page-head{justify-content:space-between;align-items:end;gap:15px;margin-bottom:22px;display:flex}.page-head h1{margin:0;font-size:25px}.page-head p{color:#7f8da4;margin:6px 0 0;font-size:13px}.actions{flex-wrap:wrap;gap:9px;display:flex}.btn{color:#dce6f6;background:#131f33;border:1px solid #293953;border-radius:10px;padding:9px 14px}.btn.primary{background:#1672c5;border-color:#317fd2}.btn.danger{background:#3b1720;border-color:#75333d}.btn.success{background:#153f35;border-color:#256c58}.btn:disabled{opacity:.45;cursor:not-allowed}.grid{gap:15px;display:grid}.stats{grid-template-columns:repeat(5,minmax(0,1fr))}.card{background:linear-gradient(#101a2c,#0d1625);border:1px solid #1d2a40;border-radius:15px;padding:18px}.stat-label{color:#8290a6;font-size:12px}.stat-value{margin-top:7px;font-size:28px;font-weight:800}.stat-sub{color:#66758e;margin-top:4px;font-size:11px}.dashboard-grid{grid-template-columns:2fr 1fr}.table-wrap{border:1px solid #1d2a40;border-radius:14px;overflow:auto}.table{border-collapse:collapse;width:100%;min-width:720px}.table th,.table td{text-align:left;white-space:nowrap;border-bottom:1px solid #19263a;padding:12px 14px;font-size:12px}.table th{color:#73839c;background:#0d1727;font-weight:600}.table td{color:#d0d9e8}.status{border-radius:20px;align-items:center;gap:6px;padding:4px 8px;font-size:10px;display:inline-flex}.status.ok{color:#58d6ae;background:#12382f}.status.off{color:#ff8e9a;background:#3a2025}.status.pending{color:#f5ca64;background:#3b3016}.toolbar{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:14px;display:flex}.field,.select{color:#e6edf7;background:#0a1322;border:1px solid #263650;border-radius:9px;outline:none;width:100%;padding:10px 11px}.field:focus,.select:focus{border-color:#378fe0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid .full{grid-column:1/-1}.label{color:#8492a8;margin-bottom:6px;font-size:11px;display:block}.modal-back{z-index:50;background:#02050acc;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#0d1727;border:1px solid #283750;border-radius:16px;width:min(800px,100%);max-height:90vh;padding:20px;overflow:auto;box-shadow:0 30px 80px #0008}.modal h2{margin:0 0 18px}.pagination{justify-content:flex-end;align-items:center;gap:7px;padding-top:14px;display:flex}.empty{text-align:center;color:#687790;padding:40px}.error{color:#ffb0b8;background:#3b1720;border:1px solid #70333e;border-radius:9px;margin-bottom:12px;padding:10px 12px}.success-msg{color:#80e0bf;background:#123a30;border:1px solid #286d59;border-radius:9px;margin-bottom:12px;padding:10px 12px}.login-page{background:radial-gradient(circle at 50% 0,#17345a 0,#080d18 45%);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#0e1829;border:1px solid #26364e;border-radius:20px;width:min(430px,100%);padding:28px;box-shadow:0 30px 100px #0008}.login-logo{align-items:center;gap:12px;margin-bottom:24px;display:flex}.login-card h1{margin:0;font-size:23px}.login-card p{color:#8290a6;font-size:12px}.login-form{gap:12px;display:grid}.line-btn{color:#fff;background:#06c755;border:0;border-radius:10px;width:100%;padding:11px;font-weight:700}.divider{color:#56657c;align-items:center;gap:10px;margin:12px 0;font-size:11px;display:flex}.divider:before,.divider:after{content:"";background:#243149;flex:1;height:1px}.boot{color:#9aa9bf;background:#080d18;place-items:center;gap:12px;min-height:100vh;display:grid}.loader{border:3px solid #263650;border-top-color:#4aaeff;border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.file{color:#8b9ab1;border:1px dashed #33445e;border-radius:10px;padding:18px}.muted{color:#7f8da4;font-size:12px}.two{grid-template-columns:1fr 1fr;gap:15px;display:grid}.face-thumb{object-fit:cover;background:#152033;border-radius:8px;width:44px;height:44px}.pre{white-space:pre-wrap;word-break:break-word;color:#8796ad;font-size:11px}.online-dot{background:#46d6a9;border-radius:50%;width:7px;height:7px;display:inline-block}.offline-dot{background:#ef6676}@media (width<=1100px){.stats{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media (width<=720px){.sidebar{width:76px}.sidebar .brand div:last-child,.sidebar span{display:none}.content{padding:15px}.stats{grid-template-columns:repeat(2,1fr)}.form-grid,.two{grid-template-columns:1fr}.top-user span:not(.role){display:none}}.face-image-cell{text-align:center;vertical-align:middle;width:90px}.face-thumb{object-fit:cover;background:#152033;border:1px solid #2b3a53;border-radius:10px;width:56px;height:56px;margin:auto;display:block}.face-placeholder{color:#71819a;background:#111b2d;border:1px dashed #33445e;border-radius:10px;place-items:center;width:56px;height:56px;margin:auto;font-size:9px;display:grid}.preview-box{margin-bottom:9px}.face-table .face-image-cell{text-align:center;vertical-align:middle;width:92px;min-width:92px}.face-thumb-wrap{place-items:center;width:58px;height:58px;margin:0 auto;display:grid;position:relative}.face-thumb{object-fit:cover;z-index:2;background:#111b2d;border:1px solid #2b3a53;border-radius:11px;width:58px;height:58px;display:block;position:relative}.face-placeholder{color:#71819a;z-index:1;background:#111b2d;border:1px dashed #33445e;border-radius:11px;place-items:center;width:58px;height:58px;font-size:9px;display:grid;position:absolute;inset:0}.preview-box{background:#0a1322;border:1px dashed #33445e;border-radius:12px;justify-content:center;align-items:center;min-height:120px;margin-bottom:9px;padding:8px;display:flex}.face-preview-large{object-fit:cover;background:#111b2d;border:1px solid #2d405d;border-radius:14px;width:120px;height:120px;display:block}.empty-preview{color:#71819a;flex-direction:column;gap:7px;font-size:11px}.upload-help{color:#64748b;margin-top:7px;font-size:10px;line-height:1.5}.crop-modal-back{z-index:70}.crop-modal{width:min(920px,100%)}.crop-stage{touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;background:#050a12;border:1px solid #263650;border-radius:14px;justify-content:center;align-items:center;width:100%;max-height:62vh;display:flex;position:relative;overflow:hidden}.crop-source{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:auto;max-width:100%;height:auto;max-height:62vh;display:block}.crop-selection{pointer-events:none;border:2px solid #55b7ff;position:absolute;box-shadow:0 0 0 9999px #0000007a}.crop-corner{border-color:#fff;width:14px;height:14px;position:absolute}.crop-corner.tl{border-top:3px solid;border-left:3px solid;top:-2px;left:-2px}.crop-corner.tr{border-top:3px solid;border-right:3px solid;top:-2px;right:-2px}.crop-corner.bl{border-bottom:3px solid;border-left:3px solid;bottom:-2px;left:-2px}.crop-corner.br{border-bottom:3px solid;border-right:3px solid;bottom:-2px;right:-2px}.crop-actions{flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-top:14px;display:flex}.app-footer{text-align:center;color:#56657c;letter-spacing:.04em;padding:18px 25px 24px;font-size:10px}.face-editor-top{text-align:center;background:linear-gradient(#101c30,#0b1423);border:1px solid #22334c;border-radius:14px;padding:16px}.face-editor-title{text-align:left;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.image-source-badge{color:#66bfff;background:#102d48;border:1px solid #245a82;border-radius:20px;padding:5px 8px;font-size:9px}.face-editor-preview{min-height:190px}.face-editor-preview .face-preview-large{width:170px;height:170px}.face-editor-top .file{width:100%;margin-top:2px}.login-footer{text-align:center;color:#56657c;margin:20px 0 0;font-size:10px}.brand-mark{letter-spacing:.02em;font-size:11px}
