/* Shine Pro Admin ? Soft Rose Console */
:root{
    --rose:#e11d48;
    --rose2:#f43f5e;
    --rose3:#fb7185;
    --rose-soft:#fff1f2;
    --rose-mid:#fecdd3;
    --grad:linear-gradient(135deg,#fb7185 0%,#e11d48 100%);
    --grad-soft:linear-gradient(145deg,#fff5f7 0%,#fff 60%);
    --bg:#f3f4f6;
    --card:#ffffff;
    --text:#18181b;
    --sub:#71717a;
    --muted:#a1a1aa;
    --border:#e4e4e7;
    --sidebar-w:232px;
    --shadow:0 1px 3px rgba(24,24,27,.04),0 4px 16px rgba(24,24,27,.03);
    --shadow-md:0 8px 28px rgba(225,29,72,.1);
    --radius:14px;
    --radius-sm:10px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
    font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
    background:var(--bg);color:var(--text);font-size:14px;
    -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
button,input,select,textarea{font:inherit;}

/* ===== Login ===== */
.login-page{
    display:flex;align-items:center;justify-content:center;min-height:100vh;
    background:
        radial-gradient(ellipse 80% 60% at 20% 10%,rgba(251,113,133,.35),transparent 55%),
        radial-gradient(ellipse 70% 50% at 90% 80%,rgba(225,29,72,.28),transparent 50%),
        linear-gradient(160deg,#1c1917 0%,#3f1a24 45%,#881337 100%);
    padding:24px;
}
.login-card{
    width:100%;max-width:400px;background:rgba(255,255,255,.97);
    border-radius:20px;padding:36px 32px 32px;
    box-shadow:0 24px 64px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.1);
    backdrop-filter:blur(12px);
}
.login-card h1{color:var(--rose);margin:0 0 4px;font-size:22px;font-weight:800;letter-spacing:.3px;}
.login-card .sub{color:var(--sub);margin:0 0 22px;font-size:13px;line-height:1.5;}
.login-card label{display:block;margin:14px 0 6px;font-size:13px;color:var(--sub);font-weight:600;}
.login-card input{
    width:100%;padding:12px 14px;background:#fafafa;border:1.5px solid var(--border);
    color:var(--text);border-radius:12px;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s;
}
.login-card input:focus{border-color:var(--rose3);background:#fff;box-shadow:0 0 0 3px rgba(225,29,72,.1);}
.login-card button{
    width:100%;margin-top:22px;padding:13px;background:var(--grad);border:none;color:#fff;
    border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;
    box-shadow:0 6px 20px rgba(225,29,72,.3);transition:opacity .15s,transform .1s;
}
.login-card button:hover{opacity:.94;}
.login-card button:active{transform:scale(.99);}
.login-card .err,.err{
    padding:11px 14px;border-radius:10px;background:#fff1f2;color:var(--rose);
    border:1px solid var(--rose-mid);font-size:13px;margin:8px 0 4px;text-align:left;
}

/* ===== Layout ===== */
.layout{display:flex;min-height:100vh;background:var(--bg);}

.sidebar{
    width:var(--sidebar-w);background:#fff;color:var(--text);
    padding:0 0 24px;position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden;
    border-right:1px solid var(--border);flex-shrink:0;
    scrollbar-width:thin;
    transition:width .22s ease;
}
.brand{
    padding:16px 14px;border-bottom:1px solid var(--border);margin-bottom:8px;
    display:flex;align-items:center;gap:12px;min-height:72px;
}
.brand .logo-img{
    width:42px;height:42px;border-radius:12px;object-fit:cover;flex-shrink:0;
    box-shadow:0 4px 12px rgba(225,29,72,.2);
}
.brand .text-wrap{min-width:0;overflow:hidden;transition:opacity .15s;}
.brand .logo{color:var(--rose);font-size:15px;font-weight:800;letter-spacing:.2px;line-height:1.3;white-space:nowrap;}
.brand .ver{
    font-size:11px;margin-top:3px;
    background:var(--rose-soft);color:var(--rose);display:inline-block;
    padding:1px 7px;border-radius:6px;font-weight:600;
}
.sidebar-close{
    display:none;margin-left:auto;width:32px;height:32px;border:0;border-radius:8px;
    background:#f4f4f5;color:var(--sub);cursor:pointer;flex-shrink:0;font-size:18px;line-height:1;
}
.sidebar-close:hover{background:var(--rose-soft);color:var(--rose);}

.nav-group{
    padding:10px 14px 4px;font-size:11px;font-weight:700;color:var(--muted);
    letter-spacing:.6px;text-transform:uppercase;white-space:nowrap;overflow:hidden;
    transition:opacity .15s,height .15s,padding .15s;
}
.nav a{
    display:flex;align-items:center;gap:10px;
    margin:2px 10px;padding:10px 12px;color:var(--sub);text-decoration:none;
    font-size:13.5px;font-weight:500;border-radius:10px;
    border-left:none;transition:background .15s,color .15s,padding .15s,margin .15s,justify-content .15s;
    white-space:nowrap;overflow:hidden;
}
.nav a .nav-ic{
    width:28px;height:28px;border-radius:8px;flex-shrink:0;
    background:#f4f4f5;color:var(--sub);
    display:flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:800;transition:background .15s,color .15s;
}
.nav a .nav-txt{overflow:hidden;text-overflow:ellipsis;}
.nav a:hover{background:var(--rose-soft);color:var(--rose);}
.nav a:hover .nav-ic{background:#ffe4e6;color:var(--rose);}
.nav a.active{
    background:linear-gradient(90deg,rgba(225,29,72,.1),rgba(225,29,72,.03));
    color:var(--rose);font-weight:700;
}
.nav a.active .nav-ic{background:var(--grad);color:#fff;}

/* Desktop collapsed: icon rail */
body.sidebar-collapsed .sidebar{width:72px;}
body.sidebar-collapsed .brand{justify-content:center;padding:16px 8px;}
body.sidebar-collapsed .brand .text-wrap,
body.sidebar-collapsed .nav-group,
body.sidebar-collapsed .nav a .nav-txt{opacity:0;width:0;height:0;overflow:hidden;padding:0;margin:0;pointer-events:none;}
body.sidebar-collapsed .nav-group{display:none;}
body.sidebar-collapsed .nav a{
    justify-content:center;margin:2px 8px;padding:10px 0;
}
body.sidebar-collapsed .nav a .nav-ic{margin:0;}
body.sidebar-collapsed .nav a[title]:hover::after{
    content:attr(title);position:absolute;left:76px;z-index:1000;
    background:#18181b;color:#fff;font-size:12px;font-weight:600;
    padding:6px 10px;border-radius:8px;white-space:nowrap;
    box-shadow:0 4px 16px rgba(0,0,0,.2);pointer-events:none;
}
body.sidebar-collapsed .nav a{position:relative;}

.main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg);transition:margin .22s ease;}
.topbar{
    background:rgba(255,255,255,.92);backdrop-filter:blur(12px);
    border-bottom:1px solid var(--border);
    padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;
    position:sticky;top:0;z-index:50;
}
.topbar-left{display:flex;align-items:center;gap:10px;min-width:0;}
.topbar h2{font-size:17px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.topbar .user{color:var(--sub);font-size:13px;display:flex;gap:10px;align-items:center;flex-shrink:0;}
.topbar .user .uname{
    background:var(--rose-soft);color:var(--rose);padding:4px 10px;border-radius:20px;
    font-weight:600;font-size:12px;
}
.topbar .user a{
    color:var(--sub);text-decoration:none;padding:5px 10px;border-radius:8px;
    font-weight:500;transition:background .15s,color .15s;
}
.topbar .user a:hover{background:var(--rose-soft);color:var(--rose);}
.topbar .user a.logout{color:var(--rose);}
.content{padding:22px 24px 40px;flex:1;}

.menu-toggle{
    display:inline-flex;align-items:center;justify-content:center;
    width:36px;height:36px;padding:0;margin:0;border:0;border-radius:10px;
    background:#f4f4f5;color:var(--text);cursor:pointer;flex-shrink:0;
}
.menu-toggle:hover{background:var(--rose-soft);color:var(--rose);}
.menu-toggle .ic-close{display:none;}
body.sidebar-open .menu-toggle .ic-menu{display:none;}
body.sidebar-open .menu-toggle .ic-close{display:block;}
.sidebar-mask{
    display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:998;
    backdrop-filter:blur(2px);opacity:0;transition:opacity .2s;
}
.sidebar-mask.show{display:block;opacity:1;}

/* ===== Cards ===== */
.card{
    background:var(--card);border-radius:var(--radius);padding:20px;
    box-shadow:var(--shadow);margin-bottom:16px;border:1px solid rgba(228,228,231,.8);
}
.card .hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap;}
.card .hd h3{
    font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px;
}
.card .hd h3::before{
    content:"";width:3px;height:14px;border-radius:2px;background:var(--grad);flex-shrink:0;
}

/* ===== Stats ===== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;}
.stat{
    background:var(--card);border-radius:var(--radius);padding:18px;
    display:flex;align-items:center;gap:14px;box-shadow:var(--shadow);
    border:1px solid rgba(228,228,231,.8);transition:transform .15s,box-shadow .15s;
}
.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.stat .ic{
    width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;
    font-size:13px;font-weight:800;color:#fff;flex-shrink:0;
}
.stat .num{font-size:22px;font-weight:800;letter-spacing:-.3px;line-height:1.2;}
.stat .lbl{color:var(--sub);font-size:12px;margin-top:3px;font-weight:500;}
.ic-red{background:var(--grad);}
.ic-blue{background:linear-gradient(135deg,#60a5fa,#2563eb);}
.ic-amber{background:linear-gradient(135deg,#fda4af,#f43f5e);}
.ic-green{background:linear-gradient(135deg,#4ade80,#16a34a);}

/* ===== Forms ===== */
.form-row{display:grid;grid-template-columns:160px 1fr;gap:14px;align-items:start;margin-bottom:16px;}
.form-row label{color:var(--sub);font-size:13px;font-weight:600;padding-top:10px;}
.form-row input[type=text],
.form-row input[type=password],
.form-row input[type=number],
.form-row input[type=file],
.form-row textarea,
.form-row select{
    width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:10px;
    font-size:14px;outline:none;background:#fafafa;transition:border-color .15s,background .15s,box-shadow .15s;
}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{
    border-color:var(--rose3);background:#fff;box-shadow:0 0 0 3px rgba(225,29,72,.08);
}
.form-row textarea{min-height:90px;resize:vertical;}
.form-row .hint{color:var(--muted);font-size:12px;margin-top:6px;line-height:1.5;}
.form-row .img-preview{
    width:120px;height:120px;border-radius:12px;background:#f4f4f5;
    border:1.5px dashed var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.form-row .img-preview img{width:100%;height:100%;object-fit:cover;}
.form-actions{padding-top:8px;display:flex;gap:10px;flex-wrap:wrap;}

/* ===== Buttons ===== */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:9px 16px;border-radius:10px;border:none;font-size:13px;font-weight:600;
    cursor:pointer;text-decoration:none;transition:opacity .15s,transform .1s,background .15s,border-color .15s;
}
.btn:active{transform:scale(.98);}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 4px 14px rgba(225,29,72,.25);}
.btn-primary:hover{opacity:.93;}
.btn-default{background:#fff;border:1.5px solid var(--border);color:var(--text);}
.btn-default:hover{border-color:var(--rose3);color:var(--rose);background:var(--rose-soft);}
.btn-danger{background:#fff;border:1.5px solid #fecdd3;color:var(--rose);}
.btn-danger:hover{background:#fff1f2;border-color:var(--rose);}
.btn-sm{padding:5px 11px;font-size:12px;border-radius:8px;}

/* ===== Tables ===== */
.table{width:100%;background:#fff;border-collapse:separate;border-spacing:0;border-radius:12px;overflow:hidden;}
.table th{
    background:#fafafa;text-align:left;padding:13px 14px;font-size:12px;
    color:var(--sub);font-weight:700;border-bottom:1px solid var(--border);letter-spacing:.3px;
}
.table td{padding:13px 14px;border-bottom:1px solid #f4f4f5;font-size:13px;vertical-align:middle;}
.table tr:last-child td{border-bottom:none;}
.table tbody tr{transition:background .12s;}
.table tbody tr:hover td{background:#fafafa;}
.table .th-cover{width:60px;}
.table .th-cover img{width:48px;height:68px;object-fit:cover;border-radius:8px;background:#eee;box-shadow:0 2px 8px rgba(0,0,0,.08);}

.badge{display:inline-block;padding:3px 9px;border-radius:8px;font-size:11px;font-weight:600;}
.badge-on,.badge-paid,.badge-green{background:#dcfce7;color:#16a34a;}
.badge-off,.badge-gray{background:#f4f4f5;color:#71717a;}
.badge-pending{background:#ffe4e6;color:#be123c;}
.badge-blue{background:#dbeafe;color:#1d4ed8;}
.badge-red{background:#fee2e2;color:#dc2626;}

/* ===== Flash ===== */
.flash{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:13px;font-weight:500;}
.flash.ok{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0;}
.flash.err{background:#fff1f2;color:#e11d48;border:1px solid #fecdd3;}

/* ===== Sysinfo ===== */
.sysinfo{
    background:var(--grad-soft);border:1px solid #ffe4e6;border-radius:16px;
    padding:22px;margin-bottom:18px;position:relative;overflow:hidden;
}
.sysinfo::before{
    content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;
    background:radial-gradient(circle,rgba(225,29,72,.1),transparent 70%);border-radius:50%;
}
.sysinfo::after{
    content:"";position:absolute;left:-30px;bottom:-30px;width:140px;height:140px;
    background:radial-gradient(circle,rgba(251,113,133,.12),transparent 70%);border-radius:50%;
}
.sysinfo .hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;position:relative;z-index:1;}
.sysinfo .hd h3{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px;color:var(--text);}
.sysinfo .hd h3::before{content:"";width:3px;height:16px;background:var(--grad);border-radius:2px;}
.sysinfo .hd .tag{
    font-size:11px;padding:4px 10px;border-radius:20px;
    background:rgba(225,29,72,.08);color:var(--rose);font-weight:700;
}
.sysinfo .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;position:relative;z-index:1;}
.sysinfo .item{
    background:#fff;border:1px solid #f4f4f5;border-radius:12px;padding:14px 16px;
    transition:transform .15s,box-shadow .15s,border-color .15s;
}
.sysinfo .item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#fecdd3;}
.sysinfo .item .lbl{color:var(--muted);font-size:12px;margin-bottom:6px;display:flex;align-items:center;gap:5px;font-weight:500;}
.sysinfo .item .lbl .dot{width:6px;height:6px;border-radius:50%;background:var(--rose);}
.sysinfo .item .val{font-size:18px;font-weight:800;color:var(--text);}
.sysinfo .item .val small{font-size:12px;color:var(--muted);font-weight:500;margin-left:4px;}

/* ===== Plan cards ===== */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;align-items:start;}
.plan-item{
    border:1.5px solid #fecdd3;border-radius:14px;padding:18px;
    background:linear-gradient(160deg,#fff5f7,#fff);position:relative;min-width:0;overflow:hidden;
    box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;
}
.plan-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.plan-item h4{font-size:16px;margin:0 0 6px;display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;font-weight:700;}
.plan-item .price{color:var(--rose);font-size:22px;font-weight:800;margin:6px 0;word-break:break-all;}
.plan-item .price del{color:var(--muted);font-size:13px;margin-left:6px;font-weight:400;}
.plan-item .days{color:var(--sub);font-size:12px;}
.plan-item .desc{color:var(--sub);font-size:12px;margin:8px 0 12px;line-height:1.5;min-height:32px;word-break:break-all;}
.plan-item .ops{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.plan-item .ops form{margin:0;padding:0;display:inline-block;}

/* ===== Tabs / filters (common patterns) ===== */
.filter-bar,.tab-row{
    display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;align-items:center;
}
.filter-bar a,.tab-row a{
    padding:7px 14px;border-radius:20px;font-size:13px;font-weight:600;
    text-decoration:none;color:var(--sub);background:#fff;border:1.5px solid var(--border);
    transition:all .15s;
}
.filter-bar a:hover,.tab-row a:hover{border-color:var(--rose-mid);color:var(--rose);}
.filter-bar a.active,.tab-row a.active,
.filter-bar a.on,.tab-row a.on{
    background:var(--grad);color:#fff;border-color:transparent;
    box-shadow:0 4px 12px rgba(225,29,72,.25);
}

/* Empty state */
.empty-hint{text-align:center;color:var(--muted);padding:40px 20px;font-size:13px;}

/* ===== Responsive ===== */
@media (max-width: 900px){
    /* Mobile: drawer sidebar, ignore desktop collapsed */
    body.sidebar-collapsed .sidebar{width:min(86vw, var(--sidebar-w)) !important;}
    body.sidebar-collapsed .brand{justify-content:flex-start;padding:16px 14px;}
    body.sidebar-collapsed .brand .text-wrap,
    body.sidebar-collapsed .nav-group,
    body.sidebar-collapsed .nav a .nav-txt{
        opacity:1 !important;width:auto !important;height:auto !important;
        padding:initial;margin:initial;pointer-events:auto !important;overflow:visible;
    }
    body.sidebar-collapsed .nav-group{display:block !important;padding:10px 14px 4px;}
    body.sidebar-collapsed .nav a{justify-content:flex-start;margin:2px 10px;padding:10px 12px;}

    .sidebar{
        position:fixed !important;left:0 !important;top:0 !important;
        width:min(86vw, var(--sidebar-w)) !important;height:100vh !important;z-index:999 !important;
        transform:translateX(-105%);
        transition:transform .24s ease !important;
        box-shadow:8px 0 32px rgba(0,0,0,.14);
    }
    .sidebar.open{transform:translateX(0) !important;}
    .sidebar-close{display:inline-flex !important;align-items:center;justify-content:center;}
    body.sidebar-open{overflow:hidden;}
    .stats{grid-template-columns:repeat(2,1fr);}
    .plan-grid{grid-template-columns:repeat(2,1fr);}
    .form-row{grid-template-columns:1fr;gap:6px;}
    .form-row label{padding-top:0;}
    .sysinfo .grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width: 720px){
    .topbar{padding:12px 14px;}
    .content{padding:16px 14px 32px;}
    .topbar .user{gap:4px;font-size:12px;}
    .topbar .user .uname{display:none;}
    .topbar .user a{padding:5px 8px;}
    .stats{grid-template-columns:1fr 1fr;}
    .plan-grid{grid-template-columns:1fr;}
    .table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
    .sysinfo .grid{grid-template-columns:1fr 1fr;}
    .income-row{grid-template-columns:1fr !important;}
}

/* ===== Master control aliases / extras ===== */
.btn.primary{background:var(--grad);color:#fff;box-shadow:0 4px 14px rgba(225,29,72,.25);border:none;}
.btn.primary:hover{opacity:.93;color:#fff;}
.btn.ghost,.btn.default{background:#fff;border:1.5px solid var(--border);color:var(--text);}
.btn.ghost:hover,.btn.default:hover{border-color:var(--rose3);color:var(--rose);background:var(--rose-soft);}
.btn.danger{background:#fff;border:1.5px solid #fecdd3;color:var(--rose);}
.btn.danger:hover{background:#fff1f2;border-color:var(--rose);}
.btn.sm{padding:5px 11px;font-size:12px;border-radius:8px;}
.btn.block{display:flex;width:100%;margin-top:18px;padding:13px;}

.tag{display:inline-block;padding:3px 9px;border-radius:8px;font-size:11px;font-weight:600;}
.tag.on,.tag.ok{background:#dcfce7;color:#16a34a;}
.tag.off{background:#f4f4f5;color:#71717a;}
.tag.bad{background:#fee2e2;color:#dc2626;}

.grid.stats-alias,
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;}
.grid .stat .n{font-size:22px;font-weight:800;letter-spacing:-.3px;line-height:1.2;}
.grid .stat .l{color:var(--sub);font-size:12px;margin-top:3px;font-weight:500;}
.grid .stat{
    background:var(--card);border-radius:var(--radius);padding:18px;
    box-shadow:var(--shadow);border:1px solid rgba(228,228,231,.8);
    display:block;
}
.grid .stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}

.code, .hint code{
    font-family:ui-monospace,Consolas,monospace;font-size:12px;
    background:#fafafa;padding:2px 7px;border-radius:6px;border:1px solid var(--border);
    word-break:break-all;color:var(--rose);
}
.secret-box{
    background:#fafafa;border:1.5px dashed var(--border);border-radius:12px;padding:12px 14px;
}
.secret-box .code{display:block;margin-top:4px;}
.checks label,.form-checks label{
    display:inline-flex;align-items:center;gap:8px;margin:4px 0;cursor:pointer;color:var(--text);font-size:13px;
}
.checks,.form-checks{display:flex;flex-direction:column;gap:4px;}
.form-checks{flex-direction:row;flex-wrap:wrap;gap:10px 18px;}
.checks input,.form-checks input{accent-color:var(--rose);}

.hint{color:var(--muted);font-size:12px;margin-top:6px;line-height:1.55;}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center;}
.actions.inline{margin:0;}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;}
.table-wrap table{width:100%;border-collapse:separate;border-spacing:0;}
.table-wrap th{
    background:#fafafa;text-align:left;padding:13px 14px;font-size:12px;
    color:var(--sub);font-weight:700;border-bottom:1px solid var(--border);
}
.table-wrap td{padding:13px 14px;border-bottom:1px solid #f4f4f5;font-size:13px;vertical-align:top;}
.table-wrap tr:last-child td{border-bottom:none;}
.table-wrap tbody tr:hover td{background:#fafafa;}

.site-panel{display:grid;grid-template-columns:1.05fr .95fr;gap:16px;align-items:start;}
.steps{list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:12px;margin:0 0 16px;padding:0;}
.steps li{
    counter-increment:step;display:flex;gap:12px;align-items:flex-start;
    color:var(--sub);line-height:1.65;font-size:13px;
}
.steps li::before{
    content:counter(step);flex-shrink:0;width:28px;height:28px;border-radius:9px;
    background:var(--rose-soft);color:var(--rose);font-weight:800;font-size:12px;
    display:flex;align-items:center;justify-content:center;
}
.empty,.empty-hint{text-align:center;color:var(--muted);padding:40px 20px;font-size:13px;}
.empty-ic{
    width:48px;height:48px;margin:0 auto 12px;border-radius:14px;
    background:#f4f4f5;border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--muted);
}
.card > h3{
    font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:16px;
}
.card > h3::before{
    content:"";width:3px;height:14px;border-radius:2px;background:var(--grad);flex-shrink:0;
}
.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap;}
.card-head h3{margin-bottom:0;}
.card-head h3::before{content:"";width:3px;height:14px;border-radius:2px;background:var(--grad);flex-shrink:0;display:inline-block;}

.form-row .label{color:var(--sub);font-size:13px;font-weight:600;padding-top:10px;}
@media (max-width:960px){
    .site-panel{grid-template-columns:1fr;}
    .grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:520px){
    .grid{grid-template-columns:1fr;}
}

