@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:block;src:url(/fonts/outfit-latin.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2")}:root{--p-50: #f6f2ff;--p-100: #ede4ff;--p-200: #d5a9ff;--p-300: #c29bfa;--p-400: #a97df8;--p-500: #8c5cf6;--p-600: #7a47ee;--p-700: #6535d6;--p-800: #4e27a8;--p-900: #2e1a63;--ink: #16131f;--text: #3d3850;--muted: #7e7894;--faint: #aaa5bd;--bg: #f6f4fb;--surface: #ffffff;--surface-2: #faf8fe;--border: #e9e5f3;--border-strong: #d9d3ea;--ok: #1e9e62;--ok-bg: #e6f7ef;--warn: #c97a00;--warn-bg: #fff4e0;--danger: #e0424d;--danger-bg: #fdecee;--info: #2f6fe4;--info-bg: #e9f0fd;--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px;--shadow-sm: 0 1px 2px rgba(22, 19, 31, .04), 0 1px 6px rgba(140, 92, 246, .06);--shadow-md: 0 6px 18px rgba(46, 26, 99, .08), 0 2px 6px rgba(22, 19, 31, .04);--shadow-lg: 0 18px 48px rgba(46, 26, 99, .16);--ring: 0 0 0 4px rgba(140, 92, 246, .18);--font-display: "Outfit", "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ease: cubic-bezier(.2, .7, .2, 1);--sidebar-w: 268px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-body);font-size:14.5px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0;letter-spacing:-.01em}h1{font-size:28px;font-weight:700;line-height:1.2}h2{font-size:20px;font-weight:700;line-height:1.25}h3{font-size:16px;font-weight:600}p{margin:0}a{color:var(--p-600);text-decoration:none}a:hover{color:var(--p-700)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img,svg{display:block;max-width:100%}code,pre,.mono{font-family:var(--font-mono);font-size:.92em}::selection{background:var(--p-200);color:var(--ink)}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.strong{font-weight:600;color:var(--ink)}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grow{flex:1;min-width:0}.right{text-align:right}.center{text-align:center}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stack{display:flex;flex-direction:column;gap:12px}.stack-lg{display:flex;flex-direction:column;gap:20px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-main{grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr)}@media (max-width: 1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.grid-main,.grid-2,.grid-3{grid-template-columns:1fr}}@media (max-width: 560px){.grid-4{grid-template-columns:1fr}}.page{display:flex;flex-direction:column;gap:22px;animation:page-in .35s var(--ease) both}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-head h1{display:flex;align-items:center;gap:10px}.page-head .sub{color:var(--muted);margin-top:4px}.page-head .actions{display:flex;gap:10px;flex-wrap:wrap}.eyebrow{font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--p-600)}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:500;font-size:13px}.back-link:hover{color:var(--p-700)}.back-link svg{transition:transform .2s var(--ease)}.back-link:hover svg{transform:translate(-3px)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow-sm)}.card-tight{padding:16px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.card-head h2,.card-head h3{display:flex;align-items:center;gap:8px}.card-head .sub{color:var(--muted);font-size:13px;margin-top:2px}.card-soft{background:var(--p-50);border-color:transparent;box-shadow:none}.card-accent{background:linear-gradient(135deg,var(--p-600),var(--p-500) 55%,var(--p-400));color:#fff;border:0;box-shadow:0 14px 34px #7a47ee47}.card-accent h2,.card-accent h3{color:#fff}.card-accent .muted{color:#ffffffc7}.card-link{display:block;color:inherit;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s}.card-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--p-200);color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:12px;border:1px solid transparent;font-weight:600;font-size:14px;line-height:1;background:var(--p-500);color:#fff;box-shadow:0 6px 16px #8c5cf647;transition:transform .15s var(--ease),box-shadow .2s var(--ease),background .2s,color .2s,border-color .2s;white-space:nowrap;text-decoration:none}.btn:hover{background:var(--p-600);color:#fff;transform:translateY(-1px);box-shadow:0 10px 22px #8c5cf652}.btn:active{transform:translateY(0)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn svg{width:18px;height:18px}.btn-ghost{background:transparent;color:var(--p-700);border-color:var(--border-strong);box-shadow:none}.btn-ghost:hover{background:var(--p-50);border-color:var(--p-300);color:var(--p-700);box-shadow:none}.btn-soft{background:var(--p-50);color:var(--p-700);box-shadow:none}.btn-soft:hover{background:var(--p-100);color:var(--p-800);box-shadow:none}.btn-plain{background:transparent;color:var(--text);box-shadow:none}.btn-plain:hover{background:var(--surface-2);color:var(--ink);box-shadow:none}.btn-danger{background:var(--danger);box-shadow:0 6px 16px #e0424d40}.btn-danger:hover{background:#c9333e;box-shadow:0 8px 20px #e0424d4d}.btn-danger-soft{background:var(--danger-bg);color:var(--danger);box-shadow:none}.btn-danger-soft:hover{background:#fbd9dd;color:#b02a34;box-shadow:none}.btn-white{background:#fff;color:var(--p-700);box-shadow:0 6px 16px #2e1a632e}.btn-white:hover{background:#fff;color:var(--p-800)}.btn-sm{height:34px;padding:0 12px;font-size:13px;border-radius:10px}.btn-sm svg{width:16px;height:16px}.btn-lg{height:48px;padding:0 22px;font-size:15px;border-radius:14px}.btn-block{width:100%}.btn-icon{width:36px;height:36px;padding:0;border-radius:10px}.btn-icon.btn-sm{width:32px;height:32px}.btn-icon svg{width:18px;height:18px}.btn .spinner{width:16px;height:16px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.label{font-size:13px;font-weight:600;color:var(--ink)}.field .hint{font-size:12px;color:var(--muted)}.field-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.input,.select,.textarea{width:100%;min-width:0;height:42px;padding:0 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;color:var(--ink);transition:border-color .2s,box-shadow .2s,background .2s}.textarea{height:auto;min-height:120px;padding:12px 14px;line-height:1.5;resize:vertical}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{outline:none;background:#fff;border-color:var(--p-400);box-shadow:var(--ring)}.input[readonly]{color:var(--muted)}.input-sm,.select-sm{height:36px;padding:0 12px;font-size:13px;border-radius:10px}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:38px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237e7894' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.select-sm{padding-right:32px;background-position:right 10px center}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap>svg{position:absolute;left:13px;width:18px;height:18px;color:var(--faint);pointer-events:none}.input-wrap .input{padding-left:40px}.input-wrap .input-sm{padding-left:36px}.input-wrap>.input-suffix{position:absolute;right:12px;color:var(--muted);font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}.check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:14px}.check input{width:18px;height:18px;accent-color:var(--p-500);cursor:pointer;margin:0}.switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{width:42px;height:24px;border-radius:999px;background:var(--border-strong);position:relative;transition:background .2s;flex-shrink:0}.switch .track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s var(--ease)}.switch input:checked+.track{background:var(--p-500)}.switch input:checked+.track:after{transform:translate(18px)}.switch input:focus-visible+.track{box-shadow:var(--ring)}.switch input:disabled+.track{opacity:.5}.switch .switch-label{font-size:13px;font-weight:500;color:var(--text)}.color-field{display:flex;align-items:center;gap:10px}.color-field input[type=color]{width:42px;height:42px;padding:3px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer}.color-field input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-field input[type=color]::-webkit-color-swatch{border:0;border-radius:8px}.color-field .input{font-family:var(--font-mono);text-transform:uppercase}.file-drop{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px dashed var(--p-300);border-radius:12px;background:var(--p-50);cursor:pointer;transition:background .2s,border-color .2s}.file-drop:hover{background:var(--p-100);border-color:var(--p-500)}.file-drop input{display:none}.file-drop svg{width:20px;height:20px;color:var(--p-600);flex-shrink:0}.file-drop .file-drop-text{font-size:13px;color:var(--text)}.file-drop .file-drop-text strong{color:var(--p-700)}.badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--p-50);color:var(--p-700)}.badge svg{width:14px;height:14px}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-neutral{background:#f0eef6;color:var(--muted)}.badge-ink{background:var(--ink);color:#fff}.badge-lg{height:30px;padding:0 12px;font-size:13px}.dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.dot-pulse{position:relative}.dot-pulse:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;background:currentColor;opacity:.3;animation:dot-pulse 1.8s ease-out infinite}@keyframes dot-pulse{0%{transform:scale(.5);opacity:.5}to{transform:scale(1.6);opacity:0}}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:500;background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.chip button{display:inline-flex;padding:0;border:0;background:none;color:var(--muted)}.chip button:hover{color:var(--danger)}.chip button svg{width:14px;height:14px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;flex-shrink:0;background:linear-gradient(135deg,var(--p-500),var(--p-300));color:#fff;font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:.02em}.avatar-sm{width:30px;height:30px;border-radius:9px;font-size:12px}.avatar-lg{width:52px;height:52px;border-radius:16px;font-size:18px}.tabs{display:flex;gap:4px;padding:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;width:max-content;max-width:100%;overflow-x:auto}.tab{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:10px;border:0;background:transparent;color:var(--muted);font-weight:600;font-size:13.5px;white-space:nowrap;transition:background .2s,color .2s,box-shadow .2s}.tab svg{width:16px;height:16px}.tab:hover{color:var(--ink)}.tab.on{background:#fff;color:var(--p-700);box-shadow:var(--shadow-sm)}.tab .count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--p-100);color:var(--p-700);font-size:11px}.pills{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:500;font-size:13.5px;transition:all .2s}.pill svg{width:16px;height:16px;color:var(--faint)}.pill:hover{border-color:var(--p-300);color:var(--p-700)}.pill.on{background:var(--ink);border-color:var(--ink);color:#fff}.pill.on svg{color:var(--p-200)}.pill img{width:16px;height:16px;border-radius:4px}.underline-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto}.underline-tab{display:inline-flex;align-items:center;gap:8px;padding:12px 14px;border:0;background:none;color:var(--muted);font-weight:600;font-size:14px;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s,border-color .2s}.underline-tab svg{width:16px;height:16px}.underline-tab:hover{color:var(--ink)}.underline-tab.on{color:var(--p-700);border-bottom-color:var(--p-500)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:var(--p-50)}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table tfoot th{background:var(--p-50);color:var(--ink);text-transform:none;letter-spacing:0;font-size:13px;border-top:1px solid var(--border);border-bottom:0}.table .cell-main{font-weight:600;color:var(--ink)}.table .cell-sub{font-size:12px;color:var(--muted);margin-top:2px}.table .cell-actions{display:flex;gap:6px;justify-content:flex-end}.table tr.is-off td{opacity:.55}.table-empty{padding:36px 16px;text-align:center;color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.kpi{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 18px 16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.kpi-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--muted)}.kpi-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--p-50);color:var(--p-600)}.kpi-icon svg{width:16px;height:16px}.kpi-value{font-family:var(--font-display);font-size:30px;font-weight:700;color:var(--ink);line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi-sub{font-size:12px;color:var(--muted)}.kpi-accent{background:linear-gradient(135deg,var(--p-600),var(--p-500));border:0;color:#fff}.kpi-accent .kpi-label,.kpi-accent .kpi-sub{color:#fffc}.kpi-accent .kpi-value{color:#fff}.kpi-accent .kpi-icon{background:#ffffff2e;color:#fff}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:40px 20px;color:var(--muted)}.empty-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:18px;background:var(--p-50);color:var(--p-500);margin-bottom:6px}.empty-icon svg{width:26px;height:26px}.empty h3{color:var(--ink)}.empty p{max-width:380px;font-size:13.5px}.empty .btn{margin-top:8px}.spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid rgba(140,92,246,.2);border-top-color:var(--p-500);animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13.5px;padding:12px 0}.skeleton{position:relative;overflow:hidden;background:#ece9f4;border-radius:8px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{to{transform:translate(100%)}}.is-dim{opacity:.55;pointer-events:none;transition:opacity .2s}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;font-size:13.5px;line-height:1.45}.alert svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}.alert-ok{background:var(--ok-bg);color:#15683f}.alert-warn{background:var(--warn-bg);color:#8a5300}.alert-danger{background:var(--danger-bg);color:#a12630}.alert-info{background:var(--info-bg);color:#1e4ea3}.alert-soft{background:var(--p-50);color:var(--p-800)}.alert ul{margin:6px 0 0;padding-left:18px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#16131f80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .2s both}.modal-dialog{position:relative;width:100%;max-width:560px;max-height:calc(100vh - 40px);overflow:auto;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);animation:modal-in .28s var(--ease) both}.modal-lg{max-width:760px}.modal-sm{max-width:440px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 24px 0}.modal-head h2{font-size:20px}.modal-head .sub{color:var(--muted);font-size:13.5px;margin-top:4px}.modal-body{padding:18px 24px 24px;display:flex;flex-direction:column;gap:14px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:0 24px 22px;flex-wrap:wrap}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.toasts{position:fixed;right:20px;bottom:20px;z-index:1100;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 40px))}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:14px;background:var(--ink);color:#fff;box-shadow:var(--shadow-lg);font-size:13.5px;line-height:1.4;animation:toast-in .3s var(--ease) both}.toast svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}.toast-ok svg{color:#5ee0a0}.toast-error svg{color:#ff8a93}.toast-info svg{color:var(--p-200)}.toast button{margin-left:auto;background:none;border:0;color:#fff9;padding:0;display:inline-flex}.toast button:hover{color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.divider{height:1px;background:var(--border);margin:6px 0}.kbd{display:inline-block;padding:2px 6px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-mono);font-size:12px;color:var(--muted)}.code-block{position:relative;background:#1d1830;color:#e9e2ff;border-radius:12px;padding:14px 16px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;white-space:pre-wrap;word-break:break-all}.code-block .code-copy{position:absolute;top:8px;right:8px}.list{display:flex;flex-direction:column;gap:8px}.list-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:inherit;transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}a.list-item:hover{border-color:var(--p-200);box-shadow:var(--shadow-sm);transform:translate(2px);color:inherit}.list-item .li-title{font-weight:600;color:var(--ink)}.list-item .li-sub{font-size:12.5px;color:var(--muted)}.icon-tile{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--p-50);color:var(--p-600);flex-shrink:0}.icon-tile svg{width:20px;height:20px}.icon-tile-lg{width:52px;height:52px;border-radius:16px}.icon-tile-lg svg{width:24px;height:24px}.icon-tile img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.progress{height:6px;border-radius:999px;background:var(--p-100);overflow:hidden}.progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--p-500),var(--p-300));transition:width .4s var(--ease)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.shell{display:flex;min-height:100vh;background:var(--bg)}.sidebar{position:sticky;top:0;height:100vh;width:var(--sidebar-w);flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);padding:22px 16px 16px;z-index:40}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 20px}.sidebar-brand a{display:inline-flex}.view-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:0 4px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px}.view-switch a{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;border-radius:9px;font-size:12.5px;font-weight:600;color:var(--muted);transition:background .2s,color .2s,box-shadow .2s}.view-switch a svg{width:14px;height:14px}.view-switch a:hover{color:var(--ink)}.view-switch a.on{background:#fff;color:var(--p-700);box-shadow:var(--shadow-sm)}.view-switch a.on.is-admin{background:var(--ink);color:#fff}.sidebar-section{padding:10px 12px 6px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;height:42px;padding:0 12px;border-radius:12px;color:var(--text);font-weight:500;font-size:14px;transition:background .18s,color .18s;position:relative}.nav-item svg{width:19px;height:19px;color:var(--muted);transition:color .18s;flex-shrink:0}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item:hover svg{color:var(--p-600)}.nav-item.active{background:var(--p-50);color:var(--p-800);font-weight:600}.nav-item.active svg{color:var(--p-600)}.nav-item.active:before{content:"";position:absolute;left:-16px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--p-500)}.nav-item .nav-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--p-100);color:var(--p-700);font-size:11px;font-weight:700}.nav-item .nav-badge.warn{background:var(--warn-bg);color:var(--warn)}.sidebar-help{margin:12px 4px 10px;padding:14px;border-radius:16px;background:linear-gradient(135deg,var(--p-600),var(--p-400));color:#fff;box-shadow:0 10px 24px #7a47ee40}.sidebar-help strong{display:block;font-family:var(--font-display);font-size:14px;margin-bottom:2px}.sidebar-help span{font-size:12px;opacity:.85}.sidebar-help a{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:12.5px;font-weight:600;color:#fff;background:#ffffff2e;padding:6px 10px;border-radius:9px}.sidebar-help a:hover{background:#ffffff47;color:#fff}.sidebar-help a svg{width:14px;height:14px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:12px 8px 4px;border-top:1px solid var(--border);margin-top:8px}.sidebar-user .u-name{font-weight:600;color:var(--ink);font-size:13.5px;line-height:1.2}.sidebar-user .u-role{font-size:11.5px;color:var(--muted)}.sidebar-user .u-logout{margin-left:auto}.mobile-bar,.sidebar-close,.sidebar-backdrop{display:none}.main{flex:1;min-width:0;display:flex;flex-direction:column}.content{width:100%;max-width:1240px;margin:0 auto;padding:34px 40px 72px;flex:1}.content-wide{max-width:1440px}.admin-banner{display:flex;align-items:center;gap:10px;margin:-6px 0 18px;padding:10px 14px;border-radius:12px;background:var(--ink);color:#fff;font-size:13px}.admin-banner svg{width:16px;height:16px;color:var(--p-200)}.admin-banner a{margin-left:auto;color:var(--p-200);font-weight:600}@media (max-width: 1024px){.sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;transform:translate(-100%);transition:transform .28s var(--ease);box-shadow:none}.sidebar.open{transform:none;box-shadow:var(--shadow-lg)}.sidebar-close{display:inline-flex}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;background:#16131f73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .2s both}.mobile-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;height:60px;padding:0 16px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.mobile-bar .avatar{margin-left:auto}.content{padding:22px 18px 60px}}.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);background:var(--bg)}.auth-left{display:flex;flex-direction:column;padding:36px clamp(24px,6vw,88px);min-width:0}.auth-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-form-wrap{margin:auto 0;width:100%;max-width:420px;padding:40px 0}.auth-logo{margin-bottom:34px}.auth-title{font-size:30px;font-weight:700;letter-spacing:-.02em;margin-bottom:6px}.auth-sub{color:var(--muted);font-size:15px;margin-bottom:26px}.auth-card{display:flex;flex-direction:column;gap:16px}.auth-footer{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12.5px;color:var(--muted)}.auth-footer a{color:var(--muted)}.auth-footer a:hover{color:var(--p-700)}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:46px;border-radius:14px;background:#fff;border:1px solid var(--border-strong);color:var(--ink);font-weight:600;font-size:14.5px;transition:border-color .2s,box-shadow .2s,transform .15s var(--ease)}.oauth-btn:hover{border-color:var(--p-400);box-shadow:0 6px 16px #8c5cf624;transform:translateY(-1px);color:var(--ink)}.oauth-btn svg{width:20px;height:20px}.oauth-soon{cursor:default;opacity:.6}.oauth-soon:hover{transform:none;box-shadow:none;border-color:var(--border-strong)}.oauth-soon .soon{margin-left:auto;font-size:11px;font-weight:600;color:var(--muted);background:var(--surface-2);padding:3px 8px;border-radius:999px}.oauth-apple{background:var(--ink);color:#fff;border-color:var(--ink)}.oauth-apple:hover{color:#fff}.oauth-apple .soon{color:#ffffffb3;background:#ffffff1f}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth .input{height:48px;border-radius:14px;font-size:15px}.auth .btn-lg{height:48px}.otp-input{font-family:var(--font-mono);font-size:24px;letter-spacing:.5em;text-align:center;font-weight:600;padding-left:.5em}.auth-steps{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.auth-steps .step{display:inline-flex;align-items:center;gap:6px}.auth-steps .step .n{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);font-weight:600;font-size:11px}.auth-steps .step.on .n{background:var(--p-500);border-color:var(--p-500);color:#fff}.auth-steps .step.done .n{background:var(--ok-bg);border-color:transparent;color:var(--ok)}.auth-steps .sep{width:18px;height:1px;background:var(--border)}.auth-email-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:var(--p-50);color:var(--p-800);font-size:13.5px;font-weight:500}.auth-email-pill button{background:none;border:0;color:var(--p-600);font-weight:600;font-size:12.5px;padding:0}.auth-email-pill button:hover{text-decoration:underline}.auth-step{animation:auth-step .35s var(--ease) both}@keyframes auth-step{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}.auth-right{position:relative;overflow:hidden;margin:16px 16px 16px 0;border-radius:32px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 30px 80px #2e1a6347;background:linear-gradient(135deg,#6535d6,#8c5cf6 55%,#a97df8)}.scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.auth-right-content{position:relative;z-index:1;padding:48px 48px 44px}.auth-right h2{color:#fff;font-size:clamp(26px,2.6vw,36px);font-weight:700;letter-spacing:-.02em;line-height:1.15;max-width:520px}.auth-right p{color:#ffffffd1;font-size:15px;margin-top:12px;max-width:460px}.auth-right .features{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.auth-right .feature{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:999px;background:#ffffff24;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22);font-size:13px;font-weight:500}.auth-right .feature svg{width:15px;height:15px}.am-logo-text{font-family:Outfit,Inter,sans-serif;font-weight:800;font-variation-settings:"wght" 800;font-size:239.86px}.am-logo--animated .am-logo-group{opacity:0;transform:translateY(46px);animation:logo-rise .75s var(--ease) forwards;animation-delay:calc(.12s + var(--i) * .09s)}@keyframes logo-rise{to{opacity:1;transform:none}}.am-logo-shine{transform:translate(-460px);animation:logo-shine 6s ease-in-out 1.6s infinite}@keyframes logo-shine{0%{transform:translate(-460px)}22%,to{transform:translate(1000px)}}.sc-orb{transform-box:fill-box;transform-origin:center}.sc-orb-1{animation:orb-1 14s ease-in-out infinite}.sc-orb-2{animation:orb-2 17s ease-in-out infinite}.sc-orb-3{animation:orb-3 20s ease-in-out infinite}@keyframes orb-1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(70px,60px) scale(1.15)}}@keyframes orb-2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-60px,90px) scale(.9)}}@keyframes orb-3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(40px,-70px) scale(1.1)}}.sc-mark{transform-box:fill-box;transform-origin:center}.sc-mark-1{animation:mark-1 12s ease-in-out infinite}.sc-mark-2{animation:mark-2 15s ease-in-out infinite}@keyframes mark-1{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-24px,30px) rotate(-6deg)}}@keyframes mark-2{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(30px,-26px) rotate(5deg)}}.sc-wave-front{animation:wave-flow 5s linear infinite}.sc-wave-back{animation:wave-flow 8s linear infinite reverse}@keyframes wave-flow{0%{transform:translate(0)}to{transform:translate(-120px)}}.sc-wave-back{animation-name:wave-flow-back}@keyframes wave-flow-back{0%{transform:translateY(26px)}to{transform:translate(-120px,26px)}}.sc-ring{transform-box:fill-box;transform-origin:center;opacity:0;animation:ring 4.2s cubic-bezier(.2,.6,.3,1) infinite}.sc-ring:nth-child(2){animation-delay:1.4s}.sc-ring:nth-child(3){animation-delay:2.8s}@keyframes ring{0%{transform:scale(1);opacity:.55}to{transform:scale(3.4);opacity:0}}.sc-play{transform-box:fill-box;transform-origin:center;animation:play-bob 5s ease-in-out infinite}@keyframes play-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.sc-play-icon{transform-box:fill-box;transform-origin:center;animation:play-beat 2.1s ease-in-out infinite}@keyframes play-beat{0%,to{transform:scale(1)}12%{transform:scale(1.08)}24%{transform:scale(1)}}.sc-bar{transform-box:fill-box;transform-origin:center bottom;animation:eq 1.2s ease-in-out infinite}@keyframes eq{0%,to{transform:scaleY(.22)}50%{transform:scaleY(1)}}.sc-coin{animation:coin 9s ease-in-out infinite}@keyframes coin{0%{opacity:0;translate:0 30px}12%{opacity:1}60%{opacity:1}to{opacity:0;translate:0 -140px}}@media (max-width: 960px){.auth{grid-template-columns:1fr;grid-template-rows:auto 1fr}.auth-right{order:-1;margin:12px 12px 0;border-radius:22px;min-height:170px;justify-content:center}.auth-right-content{display:none}.auth-left{padding:24px 22px 32px}.auth-form-wrap{padding:20px 0 0;max-width:none}.auth-logo{margin-bottom:24px}}@media (prefers-reduced-motion: reduce){.am-logo--animated .am-logo-group{opacity:1;transform:none;animation:none}.am-logo-shine,.sc-orb,.sc-mark,.sc-wave,.sc-ring,.sc-play,.sc-play-icon,.sc-bar,.sc-coin{animation:none!important}.sc-ring{opacity:.25}}.splash{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:var(--bg)}.greeting h1{font-size:30px}.greeting .wave{display:inline-block;animation:wave 1.8s ease-in-out 1;transform-origin:70% 70%}@keyframes wave{0%,to{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-8deg)}60%{transform:rotate(14deg)}80%{transform:rotate(-4deg)}}.greeting .date{color:var(--muted);text-transform:capitalize}.site-card{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:inherit;transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}.site-card:hover{border-color:var(--p-200);box-shadow:var(--shadow-md);transform:translateY(-1px);color:inherit}.site-card .site-fav{width:40px;height:40px;border-radius:11px;background:var(--surface-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.site-card .site-fav img{width:22px;height:22px;object-fit:contain}.site-card .site-title{display:block;font-weight:600;color:var(--ink)}.site-card .site-domain{display:block;font-size:12.5px;color:var(--muted)}.site-card .site-meta{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.site-card .site-arrow{color:var(--faint);transition:transform .2s var(--ease),color .2s}.site-card:hover .site-arrow{color:var(--p-600);transform:translate(3px)}.site-players{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted)}.site-players svg{width:14px;height:14px}.shortcuts{display:grid;gap:8px}.shortcut{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);color:inherit;transition:background .2s,border-color .2s,transform .2s var(--ease)}.shortcut:hover{background:var(--p-50);border-color:var(--p-200);transform:translate(2px);color:inherit}.shortcut .icon-tile{width:36px;height:36px;border-radius:10px}.shortcut strong{display:block;font-size:14px;color:var(--ink)}.shortcut span{font-size:12.5px;color:var(--muted)}.shortcut>svg:last-child{margin-left:auto;color:var(--faint)}.news-item{display:flex;gap:12px}.news-item .news-date{font-size:11.5px;color:var(--faint);white-space:nowrap;padding-top:3px}.news-item strong{display:block;color:var(--ink);font-size:14px}.news-item p{font-size:13px;color:var(--muted)}.verify-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}@media (max-width: 640px){.verify-methods{grid-template-columns:1fr}}.verify-method{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:16px 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}.verify-method:hover{border-color:var(--p-400);box-shadow:var(--shadow-md);transform:translateY(-2px)}.verify-method .icon-tile{margin-bottom:4px}.verify-method strong{font-size:13.5px;color:var(--ink)}.verify-method span{font-size:12px;color:var(--muted)}.verify-panel{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border)}.verify-panel .code-inline{display:inline-block;padding:8px 12px;border-radius:10px;background:#1d1830;color:#e9e2ff;font-family:var(--font-mono);font-size:13px;word-break:break-all}.verify-panel .email-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.verify-panel .email-row .domain{font-size:13.5px;color:var(--muted);white-space:nowrap}.wizard-steps{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}.wizard-steps .step{display:inline-flex;align-items:center;gap:6px}.wizard-steps .step .n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);font-weight:600;font-size:11px}.wizard-steps .step.on .n{background:var(--p-500);border-color:var(--p-500);color:#fff}.wizard-steps .step.done .n{background:var(--ok-bg);border-color:transparent;color:var(--ok)}.wizard-steps .sep{width:20px;height:1px;background:var(--border)}.site-hero{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.site-hero .site-hero-fav{width:64px;height:64px;border-radius:18px;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--shadow-sm)}.site-hero .site-hero-fav img{width:34px;height:34px;object-fit:contain}.site-hero h1{font-size:26px}.site-hero .domain{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:14px}.site-hero .domain:hover{color:var(--p-700)}.site-hero .badges{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.site-hero .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.player-row{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.player-row-head{display:flex;align-items:center;gap:12px}.player-row-head .title{font-weight:600;color:var(--ink)}.player-row-head .sub{font-size:12.5px;color:var(--muted)}.mini-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}.mini-stat{padding:8px 10px;border-radius:10px;background:var(--surface-2)}.mini-stat .l{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.mini-stat .v{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums}.adstxt-result ul{margin:6px 0 0;padding-left:18px;font-family:var(--font-mono);font-size:12px}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.player-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s}.player-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--p-200)}.player-card .player-head{display:flex;align-items:center;gap:12px}.player-card .player-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink)}.player-card .player-service{font-size:12.5px;color:var(--p-600);font-weight:500}.player-card .player-meta{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.player-card .player-meta span{display:inline-flex;align-items:center;gap:6px}.player-card .player-meta svg{width:14px;height:14px;color:var(--faint)}.player-card .player-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.player-card .status-corner{position:absolute;top:14px;right:14px}.player-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:200px;border:1.5px dashed var(--p-300);border-radius:var(--r-lg);background:var(--p-50);color:var(--p-700);font-family:var(--font-display);font-weight:600;font-size:15px;cursor:pointer;transition:background .2s,border-color .2s,transform .2s var(--ease)}.player-add:hover{background:var(--p-100);border-color:var(--p-500);transform:translateY(-3px)}.player-add .icon-tile{background:#fff;width:48px;height:48px;border-radius:14px}.player-swatch{width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.1)}.ad-card{display:flex;flex-direction:column;gap:12px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.ad-card .ad-title{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--ink)}.ad-card .ad-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--muted)}.ad-card .ad-meta span{display:inline-flex;align-items:center;gap:5px}.ad-card .ad-meta svg{width:14px;height:14px}.ad-card audio{width:100%;height:36px}.chips-input{display:flex;flex-wrap:wrap;gap:6px;padding:8px;min-height:48px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:text}.chips-input:focus-within{background:#fff;border-color:var(--p-400);box-shadow:var(--ring)}.chips-input input{flex:1;min-width:140px;border:0;background:transparent;outline:none;padding:4px 6px}.iab-help{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.iab-help button{text-align:left;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-size:12.5px;color:var(--text);transition:border-color .2s,background .2s}.iab-help button:hover{border-color:var(--p-300);background:var(--p-50)}.iab-help button.on{background:var(--p-100);border-color:var(--p-300);color:var(--p-800)}.iab-help code{font-size:11px;color:var(--p-600);margin-right:6px}.faq{display:flex;flex-direction:column;gap:8px}.faq details{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:0 16px}.faq summary{list-style:none;display:flex;align-items:center;gap:10px;padding:14px 0;font-weight:600;color:var(--ink);cursor:pointer}.faq summary::-webkit-details-marker{display:none}.faq summary svg{margin-left:auto;color:var(--faint);transition:transform .2s var(--ease);flex-shrink:0}.faq details[open] summary svg{transform:rotate(180deg)}.faq details>div{padding:0 0 14px;color:var(--text);font-size:14px;line-height:1.55}.support-contact{display:flex;align-items:center;gap:16px}.support-contact .mail{font-family:var(--font-display);font-size:18px;font-weight:600;color:#fff}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.toolbar .input-wrap{flex:1;min-width:220px;max-width:360px}.toolbar .spacer{flex:1}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}@media (max-width: 1100px){.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.admin-stat-grid{grid-template-columns:1fr}}.role-badge{text-transform:none}.role-admin{background:var(--ink);color:#fff}.role-superviseur{background:var(--info-bg);color:var(--info)}.role-inventaire{background:var(--warn-bg);color:var(--warn)}.role-client{background:var(--p-50);color:var(--p-700)}.client-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.client-chips .chip{height:24px;padding:0 8px;font-size:11.5px}.check-list{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow:auto}.check-list label{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer}.check-list label:hover{background:var(--surface-2)}.check-list input{width:16px;height:16px;accent-color:var(--p-500)}.inline-form{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border)}.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--p-100);color:var(--p-700);font-size:12px;font-weight:700;margin-left:8px}.svc-icon{width:36px;height:36px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden}.svc-icon img{width:22px;height:22px;object-fit:contain}.attention-list .list-item{border-left:3px solid var(--warn)}.stats-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.stats-toolbar .select{width:auto;min-width:160px;max-width:260px}.stats-toolbar .grow-select{flex:1;min-width:180px;max-width:320px}.stats-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 20px;color:var(--muted);text-align:center}.stats-loading .hint{font-size:12.5px;color:var(--faint)}.chart-box{position:relative;height:320px}.chart-box-sm{height:260px}.pie-box{max-width:320px;margin:0 auto}.stats-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:16px}@media (max-width: 900px){.stats-grid{grid-template-columns:1fr}}.legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12.5px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.stats-refresh{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:50;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--ink);color:#fff;font-size:12.5px;box-shadow:var(--shadow-lg)}.stats-refresh .spinner{width:14px;height:14px;border-width:2px;border-color:#ffffff40;border-top-color:#fff}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px;align-items:start}.editor-layout.is-custom{grid-template-columns:minmax(0,1fr) 360px}@media (max-width: 1100px){.editor-layout,.editor-layout.is-custom{grid-template-columns:1fr}}.editor-status{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:999px;font-size:12.5px;font-weight:600;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}.editor-status.saving{color:var(--p-700);background:var(--p-50);border-color:var(--p-200)}.editor-status.saved{color:var(--ok);background:var(--ok-bg);border-color:transparent}.editor-status.error{color:var(--danger);background:var(--danger-bg);border-color:transparent}.editor-status.dirty{color:var(--warn);background:var(--warn-bg);border-color:transparent}.editor-status svg{width:14px;height:14px}.editor-status .spinner{width:14px;height:14px;border-width:2px}.editor-section{display:flex;flex-direction:column;gap:14px;padding:20px 0;border-bottom:1px solid var(--border)}.editor-section:last-child{border-bottom:0;padding-bottom:0}.editor-section h3{display:flex;align-items:center;gap:8px;font-size:15px}.editor-section h3 svg{width:16px;height:16px;color:var(--p-600)}.editor-section .section-sub{font-size:13px;color:var(--muted);margin-top:-8px}.range-row{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:12px;align-items:center}.range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:var(--p-100);outline:none}.range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--p-500);box-shadow:var(--shadow-sm);cursor:pointer}.range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--p-500);cursor:pointer}.range-value{text-align:right;font-family:var(--font-display);font-weight:600;color:var(--p-700);font-variant-numeric:tabular-nums}.asset-preview{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.asset-preview img{width:56px;height:56px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid var(--border)}.asset-preview audio{flex:1;min-width:0;height:36px}.asset-preview .asset-name{font-size:12.5px;color:var(--muted);word-break:break-all}.editor-aside{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px}@media (max-width: 1100px){.editor-aside{position:static}}.preview-frame{position:relative;border-radius:14px;background:repeating-conic-gradient(var(--surface-2) 0 25%,#fff 0 50%) 0 0 / 18px 18px;border:1px solid var(--border);padding:16px;min-height:160px;overflow:hidden}.preview-frame iframe{display:block;width:100%;border:0;background:transparent}.preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:10px;background:#ffffffd9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--muted);font-size:13px;z-index:2}.preview-legend{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}.code-editors{display:flex;flex-direction:column;gap:14px}.code-editor{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff}.code-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--ink)}.code-editor-head span{font-weight:500;font-size:12px;color:var(--muted)}.code-editor-head code{background:#fff;border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:11px;color:var(--p-700)}.code-editor .ace_editor{width:100%!important;min-height:280px;font-family:var(--font-mono)!important}.code-editor .ace_gutter{background:var(--surface-2)!important;border-right:1px solid var(--border)}.code-editor .ace_gutter-active-line{background:var(--p-50)!important}.slot-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}.slot-list button{text-align:left;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-size:12px;color:var(--text);transition:border-color .2s,background .2s}.slot-list button:hover{border-color:var(--p-300);background:var(--p-50)}.slot-list code{display:block;color:var(--p-700);font-size:11.5px;margin-bottom:2px}
