:root{--bg: #f7f5fc;--surface: #ffffff;--surface-2: #faf8fd;--surface-3: #f4f0fa;--border: #ece7f5;--border-strong: #ded6ee;--text: #1a1526;--text-2: #4a4460;--muted: #857e98;--muted-2: #a89fbd;--brand-pink: #f39abf;--brand-rose: #e8b4dc;--brand-lav: #c7b4f3;--brand-violet: #a697e8;--primary: #a053e2;--primary-ink: #8a3fd0;--primary-2: #c7b4f3;--grad: linear-gradient(135deg, #f39abf, #e8b4dc, #c7b4f3, #a697e8);--grad-btn: linear-gradient(135deg, #e2559b 0%, #a94fdc 55%, #8f43d0 100%);--grad-soft: linear-gradient(135deg, rgba(243,154,191,.16), rgba(166,151,232,.16));--success: #12a150;--success-bg: #e7f7ee;--warn: #c07c12;--warn-bg: #fff3df;--danger: #e0413f;--danger-bg: #fdecec;--info: #7c5ce0;--info-bg: #f2ecfd;--r-sm: 8px;--r: 12px;--r-lg: 16px;--r-xl: 22px;--shadow-sm: 0 1px 2px rgba(70, 40, 110, .05), 0 1px 3px rgba(70, 40, 110, .04);--shadow: 0 2px 8px rgba(90, 50, 140, .06), 0 14px 34px -14px rgba(120, 70, 180, .18);--shadow-lg: 0 10px 26px -10px rgba(120, 70, 180, .22), 0 34px 64px -34px rgba(140, 80, 200, .3);--ring: 0 0 0 3px rgba(160, 83, 226, .22);--font: "Inter", "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Poppins", "Inter", sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);background-image:radial-gradient(1100px 560px at 100% -10%,rgba(199,180,243,.28),transparent 60%),radial-gradient(900px 480px at -8% 0%,rgba(243,154,191,.2),transparent 55%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;letter-spacing:-.02em;font-weight:700;font-family:var(--font-display)}::selection{background:#c7b4f366}.gradient-text{background:var(--grad-btn);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}*{scrollbar-width:thin;scrollbar-color:#d6cee8 transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:#d9d0ec;border-radius:20px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:#c7bce0;background-clip:content-box}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;flex-shrink:0;align-self:stretch;background:linear-gradient(180deg,#fff,#fcfaff);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:4px;padding:18px 14px;position:sticky;top:0;height:100vh}.side-brand{display:flex;align-items:center;gap:10px;padding:8px 8px 16px}.brand-mark{width:34px;height:34px;object-fit:contain;flex-shrink:0}.auth-logo{height:34px;width:auto;max-width:240px;object-fit:contain;display:block}.side-brand .logo{width:34px;height:34px;border-radius:10px;background:var(--grad-btn);display:grid;place-items:center;color:#fff;flex-shrink:0;box-shadow:0 6px 16px -5px #a053e280}.side-brand .txt{display:flex;flex-direction:column;line-height:1.15}.side-brand .txt b{color:var(--text);font-size:14.5px;font-weight:700;font-family:var(--font-display)}.side-brand .txt span{color:var(--muted);font-size:11px;font-weight:500}.side-section{color:var(--muted-2);font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:14px 10px 6px}.side-nav{display:flex;flex-direction:column;gap:2px}.side-link{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--text-2);font-weight:500;font-size:13.5px;transition:all .15s;position:relative}.side-link svg{width:18px;height:18px;opacity:.8}.side-link:hover{background:var(--surface-3);color:var(--text)}.side-link.active{background:var(--grad-soft);color:var(--primary-ink);font-weight:600}.side-link.active svg{opacity:1;color:var(--primary)}.side-link.active:before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--grad-btn)}.side-cta{margin:6px 2px 2px;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:11px;background:var(--grad-btn);color:#fff;font-weight:600;font-size:13.5px;box-shadow:0 8px 20px -8px #a053e28c;transition:transform .15s,filter .15s}.side-cta:hover{filter:brightness(1.05);transform:translateY(-1px)}.side-cta svg{width:17px;height:17px}.side-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.user-chip{display:flex;align-items:center;gap:10px;padding:8px;border-radius:11px;transition:background .15s}.user-chip:hover{background:var(--surface-3)}.user-chip .av{width:32px;height:32px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;background:var(--grad-btn);color:#fff;font-weight:700;font-size:13px}.user-chip .meta{flex:1;min-width:0;line-height:1.2}.user-chip .meta b{color:var(--text);font-size:13px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip .meta span{color:var(--muted);font-size:11px}.icon-btn-dark{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:8px;display:grid;place-items:center;transition:all .15s}.icon-btn-dark:hover{background:var(--surface-3);color:var(--danger)}.icon-btn-dark svg{width:17px;height:17px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:62px;display:flex;align-items:center;gap:12px;padding:0 30px;border-bottom:1px solid var(--border);background:#ffffffbf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.crumbs{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);min-width:0}.crumbs a{color:var(--muted);transition:color .15s}.crumbs a:hover{color:var(--primary-ink)}.crumbs .sep{color:var(--muted-2)}.crumbs .cur{color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .spacer{flex:1}.env-pill{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);padding:5px 11px;border-radius:999px}.env-pill .dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px var(--success-bg)}.content{padding:30px;max-width:1180px;width:100%;margin:0 auto;animation:fadeUp .4s ease both}.page-head{display:flex;align-items:flex-end;gap:18px;margin-bottom:24px;flex-wrap:wrap}.page-head .spacer{flex:1}.page-title{font-family:var(--font-display);font-size:25px;font-weight:700;letter-spacing:-.02em}.page-sub{color:var(--muted);font-size:14px;margin-top:4px}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:500;transition:color .15s}.back-link:hover{color:var(--primary-ink)}.back-link svg{width:15px;height:15px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border:1px solid transparent;background:var(--grad-btn);color:#fff;font-weight:600;font-size:13.5px;font-family:inherit;padding:9px 16px;border-radius:10px;cursor:pointer;transition:transform .12s,box-shadow .15s,filter .15s;box-shadow:0 6px 16px -8px #a053e299}.btn:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 10px 22px -8px #a053e2a6}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed;filter:none;transform:none;box-shadow:none}.btn svg{width:16px;height:16px}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.btn.secondary:hover{background:var(--surface-2);filter:none}.btn.ghost{background:transparent;color:var(--muted);box-shadow:none}.btn.ghost:hover{background:var(--surface-3);color:var(--text);filter:none;box-shadow:none}.btn.danger{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 6px 16px -8px #dc262699}.btn.sm{padding:6px 12px;font-size:12.5px;border-radius:9px}.btn.lg{padding:12px 22px;font-size:14.5px;border-radius:12px}.btn.block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow)}.card-body{padding:22px 24px}.card-head{display:flex;align-items:center;gap:12px;padding:18px 24px;border-bottom:1px solid var(--border)}.card-head h3{font-size:15px;font-weight:700}.card-head .spacer{flex:1}.card-title-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--grad-soft);color:var(--primary-ink);flex-shrink:0}.card-title-ico svg{width:18px;height:18px}.section-title{font-size:13px;font-weight:700;color:var(--text);margin:0 0 4px;font-family:var(--font-display)}.divider{height:1px;background:var(--border);margin:18px 0;border:0}.stack{display:flex;flex-direction:column;gap:18px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat:after{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;background:var(--grad-soft)}.stat .s-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--grad-soft);color:var(--primary-ink);margin-bottom:14px;position:relative}.stat .s-ico svg{width:19px;height:19px}.stat .s-val{font-family:var(--font-display);font-size:27px;font-weight:700;letter-spacing:-.02em;line-height:1}.stat .s-lab{color:var(--muted);font-size:12.5px;font-weight:500;margin-top:6px}.tbl-wrap{overflow-x:auto;border-radius:var(--r-lg)}table.data{width:100%;border-collapse:collapse}table.data th{text-align:left;padding:13px 20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border)}table.data td{padding:15px 20px;font-size:13.5px;border-bottom:1px solid var(--border);vertical-align:middle}table.data tbody tr{cursor:pointer;transition:background .12s}table.data tbody tr:hover{background:var(--surface-2)}table.data tbody tr:last-child td{border-bottom:none}.row-name{display:flex;align-items:center;gap:12px}.row-name .rn-ico{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--grad-btn);color:#fff;font-weight:700;font-size:13px;flex-shrink:0}.row-name b{font-weight:600;font-size:14px}.row-name small{display:block;color:var(--muted);font-weight:400;font-size:12px}.url-cell{display:inline-flex;align-items:center;gap:8px}.pill{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 9px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent;text-transform:capitalize}.pill .d{width:7px;height:7px;border-radius:50%}.pill.draft{background:var(--surface-3);color:var(--text-2);border-color:var(--border)}.pill.draft .d{background:#a89fbd}.pill.provisioning{background:var(--warn-bg);color:var(--warn)}.pill.provisioning .d{background:var(--warn);animation:pulse 1.3s infinite}.pill.live{background:var(--success-bg);color:var(--success)}.pill.live .d{background:var(--success);box-shadow:0 0 0 3px #12a15029}.pill.failed{background:var(--danger-bg);color:var(--danger)}.pill.failed .d{background:var(--danger)}.pill.decommissioned{background:var(--surface-3);color:var(--muted)}.pill.decommissioned .d{background:var(--muted-2)}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600;background:var(--surface-3);color:var(--text-2);border:1px solid var(--border)}.chip.login{background:var(--grad-btn);color:#fff;border-color:transparent;box-shadow:0 4px 10px -4px #a053e280}.field{margin-bottom:18px}.field>label{display:block;font-size:13px;font-weight:600;margin-bottom:7px;color:var(--text-2)}.field .hint{font-weight:400;color:var(--muted);font-size:12px}.hint{color:var(--muted);font-size:12.5px}input[type=text],input[type=number],input[type=password],input[type=email],select,textarea{width:100%;padding:10px 13px;border:1px solid var(--border-strong);border-radius:10px;font-size:14px;font-family:inherit;background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:var(--muted-2)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-2);box-shadow:var(--ring)}input[type=color]{padding:3px;height:40px;cursor:pointer}.row{display:flex;gap:16px}.row>*{flex:1}.checkbox{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;cursor:pointer;color:var(--text-2)}.checkbox input{width:auto;accent-color:var(--primary);width:16px;height:16px;cursor:pointer}.mono{font-family:var(--mono);font-size:12.5px;letter-spacing:-.01em}.segment{display:inline-flex;background:var(--surface-3);border:1px solid var(--border);border-radius:11px;padding:4px;gap:4px;margin-bottom:18px}.segment button{border:none;background:transparent;font-family:inherit;font-size:13px;font-weight:600;color:var(--muted);padding:7px 16px;border-radius:8px;cursor:pointer;transition:all .15s}.segment button.on{background:var(--surface);color:var(--primary-ink);box-shadow:var(--shadow-sm)}.url-preview{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:7px 12px;border-radius:9px;background:var(--grad-soft);color:var(--primary-ink);font-size:13px}.url-preview svg{width:15px;height:15px}.dropzone{text-align:center;padding:34px 24px;border:1.5px dashed var(--border-strong);border-radius:14px;background:var(--surface-2)}.dz-ico{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;margin:0 auto 12px;background:var(--grad-soft);color:var(--primary-ink)}.dz-ico svg{width:23px;height:23px}.dz-title{font-size:15px;font-weight:700;margin-bottom:4px;font-family:var(--font-display)}.file-summary{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);margin-bottom:14px}.file-summary .fs-ico{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--grad-soft);color:var(--primary-ink);flex-shrink:0}.file-summary .fs-ico svg{width:17px;height:17px}.file-summary b{font-size:13.5px;display:block}.file-summary>div>span{color:var(--muted);font-size:12px}.builder-row{display:flex;gap:12px;align-items:flex-end;padding:14px;border:1px solid var(--border);border-radius:12px;margin-bottom:10px;background:var(--surface-2)}.builder-row .field{margin-bottom:0}.builder-row .grow2{flex:2}.icon-x{background:var(--surface);border:1px solid var(--border);color:var(--muted);width:34px;height:38px;border-radius:9px;cursor:pointer;display:grid;place-items:center;flex-shrink:0;transition:all .15s}.icon-x:hover{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-bg)}.icon-x svg{width:16px;height:16px}.impact-row{padding:14px;border:1px solid var(--border);border-radius:12px;margin-bottom:10px;background:var(--surface-2)}.impact-row:last-child{margin-bottom:0}.stepper{display:flex;align-items:center;gap:0;margin-bottom:28px;flex-wrap:wrap}.stepper .st{display:flex;align-items:center;gap:10px}.stepper .st .n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--surface);border:1.5px solid var(--border-strong);color:var(--muted);flex-shrink:0;transition:all .2s}.stepper .st .lab{font-size:13px;font-weight:600;color:var(--muted);transition:color .2s}.stepper .st.active .n{background:var(--grad-btn);border-color:transparent;color:#fff;box-shadow:0 6px 14px -6px #a053e299}.stepper .st.active .lab{color:var(--text)}.stepper .st.done .n{background:var(--success);border-color:transparent;color:#fff}.stepper .st.done .lab{color:var(--text-2)}.stepper .conn{width:34px;height:2px;background:var(--border-strong);margin:0 10px;border-radius:2px}.stepper .conn.done{background:var(--brand-lav)}.wizard-actions{display:flex;gap:10px;margin-top:24px}.wizard-actions .spacer{flex:1}.banner{display:flex;align-items:flex-start;gap:11px;padding:13px 16px;border-radius:12px;font-size:13.5px;margin-bottom:18px;border:1px solid transparent}.banner svg{width:18px;height:18px;flex-shrink:0;margin-top:1px}.banner.info{background:var(--info-bg);color:#6b3fce;border-color:#e5d9fb}.banner.error{background:var(--danger-bg);color:#b52e2c;border-color:#f7d5d5}.banner.success{background:var(--success-bg);color:#0c7a3d;border-color:#c6ecd4}.banner.warn{background:var(--warn-bg);color:#9a6410;border-color:#f4e2c0}.banner b{font-weight:700}.kv{display:grid;grid-template-columns:150px 1fr;gap:13px 18px;font-size:13.5px;align-items:center}.kv .k{color:var(--muted);font-weight:500}.kv .v{color:var(--text);min-width:0}.copy-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.copy-btn:hover{background:var(--surface-2);border-color:var(--primary-2);color:var(--primary-ink)}.copy-btn.copied{background:var(--success-bg);color:var(--success);border-color:#c6ecd4}.copy-btn svg{width:14px;height:14px}.provision-hero{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:34px 34px 30px;color:var(--text);margin-bottom:22px;background:linear-gradient(135deg,#fdf2f9,#f7effe 52%,#f2ecff);border:1px solid #efe6fb;box-shadow:var(--shadow-lg)}.provision-hero.done{background:linear-gradient(135deg,#eefaf3,#e6f8ee);border-color:#cdeed9}.provision-hero.failed{background:linear-gradient(135deg,#fdf2f4,#fbe9ec);border-color:#f6d9de}.provision-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(560px 260px at 12% -20%,rgba(243,154,191,.5),transparent 60%),radial-gradient(520px 240px at 108% 120%,rgba(166,151,232,.5),transparent 55%)}.provision-hero>*{position:relative}.ph-top{display:flex;align-items:center;gap:14px;margin-bottom:20px}.ph-orb{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;flex-shrink:0;background:#ffffffd9;border:1px solid #efe6fb;box-shadow:var(--shadow-sm)}.ph-orb svg{width:26px;height:26px;color:var(--primary)}.ph-orb.spin svg{animation:spin 2.4s linear infinite}.ph-title{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.ph-msg{color:var(--text-2);font-size:14px;margin-top:3px;min-height:20px;transition:opacity .4s}.ph-pct{margin-left:auto;font-family:var(--font-display);font-size:34px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;background:var(--grad-btn);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.progress{height:10px;border-radius:999px;background:#efe7fa;overflow:hidden;position:relative}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#f39abf,#c7b4f3,#a697e8,#f39abf);background-size:220% 100%;transition:width .7s cubic-bezier(.4,0,.2,1);animation:shimmerBar 2.2s linear infinite;box-shadow:0 0 12px #c7b4f3b3}.provision-hero.done .progress-fill{background:linear-gradient(90deg,#34d399,#6ee7b7);animation:none}.provision-hero.failed .progress-fill{background:linear-gradient(90deg,#f87171,#fb7185);animation:none}.ph-foot{display:flex;align-items:center;gap:14px;margin-top:16px;flex-wrap:wrap}.ph-url{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid #ecdffb;padding:9px 9px 9px 14px;border-radius:12px;font-family:var(--mono);font-size:13.5px;color:var(--text);box-shadow:var(--shadow-sm)}.btn-glass{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:11px;background:var(--surface);border:1px solid var(--border-strong);color:var(--text);font-weight:600;font-size:13px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow-sm)}.btn-glass:hover{background:var(--surface-2);border-color:var(--primary-2);color:var(--primary-ink)}.btn-glass svg{width:15px;height:15px}.timeline{list-style:none;margin:0;padding:4px 0;position:relative}.timeline li{display:flex;gap:14px;padding:5px 0;position:relative}.timeline li:not(:last-child) .tl-ico:after{content:"";position:absolute;top:28px;left:50%;transform:translate(-50%);width:2px;height:calc(100% - 6px);background:var(--border)}.tl-ico{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;position:relative;z-index:1;font-size:13px;border:2px solid var(--surface)}.tl-ico.pending{background:var(--surface-3);color:var(--muted-2)}.tl-ico.running{background:var(--grad-soft);color:var(--primary-ink)}.tl-ico.running svg{animation:spin 1.6s linear infinite}.tl-ico.done{background:var(--success);color:#fff}.tl-ico.failed{background:var(--danger);color:#fff}.tl-ico.skipped{background:var(--surface-3);color:var(--muted-2)}.tl-ico svg{width:15px;height:15px}.tl-body{flex:1;padding:3px 0 9px;min-width:0}.tl-body .t{font-size:13.5px;font-weight:600}.tl-body.pending .t{color:var(--muted);font-weight:500}.tl-body .d{font-size:12px;color:var(--muted);margin-top:2px}.empty{text-align:center;padding:64px 24px}.empty .e-ico{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;margin:0 auto 18px;background:var(--grad-soft);color:var(--primary-ink)}.empty .e-ico svg{width:30px;height:30px}.empty h3{font-size:17px;margin-bottom:6px}.empty p{color:var(--muted);margin:0 0 20px}.spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner.dark{border-color:var(--border-strong);border-top-color:var(--primary)}.skeleton{position:relative;overflow:hidden;background:var(--surface-3);border-radius:8px}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);transform:translate(-100%);animation:shimmer 1.4s infinite}.sk-row{display:flex;align-items:center;gap:14px;padding:15px 20px;border-bottom:1px solid var(--border)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes shimmerBar{to{background-position:220% 0}}.auth{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-aside{position:relative;overflow:hidden;color:var(--text);padding:46px 52px;display:flex;flex-direction:column;background:linear-gradient(150deg,#fdf2f9,#f5ecff 52%,#efe9ff);border-right:1px solid var(--border)}.auth-aside:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(620px 320px at 10% -10%,rgba(243,154,191,.5),transparent 60%),radial-gradient(520px 280px at 108% 110%,rgba(166,151,232,.45),transparent 55%)}.auth-aside>*{position:relative}.auth-aside-in{margin:auto 0;max-width:440px}.auth-brand{display:flex;align-items:center;gap:11px;margin-bottom:40px}.auth-brand .logo,.auth-form-brand .logo{width:36px;height:36px;border-radius:10px;background:var(--grad-btn);display:grid;place-items:center;color:#fff;box-shadow:0 6px 16px -5px #a053e280}.auth-brand b{font-size:16px;font-weight:700;font-family:var(--font-display)}.auth-h1{font-family:var(--font-display);font-size:34px;line-height:1.15;font-weight:700;letter-spacing:-.02em;margin-bottom:16px;background:var(--grad-btn);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.auth-lead{color:var(--text-2);font-size:15px;line-height:1.6;margin:0 0 34px}.auth-feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.auth-feats li{display:flex;gap:14px;align-items:flex-start}.auth-feats .fi{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;background:#fff;border:1px solid #efe6fb;color:var(--primary-ink);box-shadow:var(--shadow-sm)}.auth-feats .fi svg{width:19px;height:19px}.auth-feats li>span:last-child{display:flex;flex-direction:column;line-height:1.35}.auth-feats b{font-size:14px;font-weight:600}.auth-feats li span span{color:var(--muted);font-size:13px}.auth-aside-foot{color:var(--muted-2);font-size:12px}.auth-form-wrap{display:grid;place-items:center;padding:40px 24px;background:var(--surface)}.auth-form{width:100%;max-width:384px}.auth-form-brand{display:none;align-items:center;gap:10px;margin-bottom:26px}.auth-form-brand b{font-size:15px;font-family:var(--font-display)}.auth-title{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.02em}.auth-sub{color:var(--muted);margin:6px 0 26px}.auth-switch{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:14px;background:none;border:none;cursor:pointer;color:var(--primary-ink);font-family:inherit;font-size:13px;font-weight:600;padding:6px;border-radius:8px;transition:background .15s}.auth-switch:hover{background:var(--surface-3)}.auth-switch:disabled{opacity:.5;cursor:not-allowed}.auth-switch svg{width:15px;height:15px}.auth-switch.inline{width:auto;margin-top:0;font-size:12.5px}.auth-fine{text-align:center;color:var(--muted-2);font-size:12px;margin:18px 0 0}.auth-form .btn.lg{margin-top:4px}@media(max-width:860px){.auth{grid-template-columns:1fr}.auth-aside{display:none}.auth-form-brand{display:flex}}@media(max-width:900px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:sticky;top:0;z-index:30;flex-direction:row;align-items:center;padding:10px 14px;gap:8px}.side-brand{padding:0}.side-section,.side-nav .side-link .lab{display:none}.side-nav{flex-direction:row;margin-left:8px}.side-link.active:before{display:none}.side-cta{margin:0 0 0 auto;padding:9px 12px}.side-foot{margin:0 0 0 6px;border:none;border-left:1px solid var(--border);padding:0 0 0 8px}.user-chip .meta{display:none}.content{padding:20px 16px}.topbar{padding:0 16px}.stat-grid{grid-template-columns:1fr 1fr}.grid-2{grid-template-columns:1fr}}@media(max-width:560px){.stat-grid{grid-template-columns:1fr 1fr;gap:12px}.row{flex-direction:column;gap:0}.page-title{font-size:21px}.ph-pct{display:none}.provision-hero{padding:24px 20px}}.spacer{flex:1}.flex{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.muted{color:var(--muted)}.mt0{margin-top:0}.text-c{text-align:center}
