@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');
:root{--bg:#f4f3ef;--ink:#10110f;--muted:#777873;--line:rgba(16,17,15,.11);--card:rgba(255,255,255,.68);--card2:rgba(255,255,255,.86);--shadow:0 24px 70px rgba(0,0,0,.09);--accent:#111;--danger:#9e2f2f}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif}body.dark{--bg:#0b0d0c;--ink:#f4f3ef;--muted:#9c9e99;--line:rgba(255,255,255,.11);--card:rgba(23,25,23,.72);--card2:rgba(26,28,26,.9);--shadow:0 24px 80px rgba(0,0,0,.35);--accent:#f4f3ef}.hidden{display:none!important}.glass{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.login-screen{min-height:100svh;display:grid;place-items:center;padding:24px;position:relative;overflow:hidden}.login-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(130,140,180,.18),transparent 68%);filter:blur(20px)}.login-card{width:min(520px,100%);padding:42px;border-radius:34px;position:relative}.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none}.brand>span{width:48px;height:48px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-weight:800;font-size:20px}.brand b{display:block;font-family:Georgia,serif;letter-spacing:.05em}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.2em;margin-top:3px}.kicker{font-size:10px;font-weight:800;letter-spacing:.18em;color:var(--muted)}h1,h2{font-family:'Playfair Display',Georgia,serif;line-height:.92;margin:14px 0 18px;letter-spacing:-.04em}h1{font-size:clamp(46px,5vw,82px)}h1 i,h2 i{font-weight:600}.login-card p{color:var(--muted);line-height:1.7}.login-card form{display:grid;gap:12px;margin-top:24px}.login-card input,.settings-form input,.settings-form textarea,.toolbar input,.toolbar select,.form-panel input,.form-panel textarea{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card2);color:var(--ink);outline:none}.primary{border:0;border-radius:15px;padding:14px 18px;background:var(--ink);color:var(--bg);font-weight:800;letter-spacing:.04em}.primary.small{padding:11px 15px}.app{min-height:100svh}.topbar{position:fixed;z-index:30;top:16px;left:calc(280px + 28px);right:28px;height:76px;border-radius:24px;padding:12px 16px 12px 18px;display:flex;align-items:center;justify-content:space-between}.top-actions{display:flex;align-items:center;gap:8px}.status{font-size:10px;font-weight:800;letter-spacing:.14em;padding:9px 12px;border-radius:999px;border:1px solid var(--line)}.status.live{background:#dff3e4;color:#245b36}.status.offline{background:#f3e1e1;color:#7d3030}.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card2);color:var(--ink);font-size:17px}.sidebar{position:fixed;z-index:40;left:18px;top:18px;bottom:18px;width:270px;border-radius:28px;padding:28px 18px;display:flex;flex-direction:column}.side-title{padding:10px 10px 24px;border-bottom:1px solid var(--line)}.side-title h2{font-size:36px}.sidebar nav{display:grid;gap:5px;margin-top:18px}.sidebar nav button{border:0;background:transparent;color:var(--muted);text-align:left;padding:13px 12px;border-radius:13px;font-weight:700}.sidebar nav button:hover,.sidebar nav button.active{background:var(--ink);color:var(--bg)}.side-foot{margin-top:auto;padding:14px 10px;display:grid;gap:5px;color:var(--muted);font-size:10px}.side-foot b{color:var(--ink);font-size:11px;overflow:hidden;text-overflow:ellipsis}.main{margin-left:306px;padding:120px 28px 40px;max-width:1700px}.page{display:none}.page.active{display:block}.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.page-head h1{margin-bottom:0}.live-pill{font-size:10px;font-weight:800;letter-spacing:.16em}.hero-grid,.visitor-top{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{padding:24px;border-radius:24px;display:grid;gap:8px}.stat span{font-size:10px;letter-spacing:.14em;color:var(--muted);font-weight:800}.stat b{font-size:38px;letter-spacing:-.05em}.stat small{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-top:14px}.panel{border-radius:26px;padding:18px;min-height:320px}.panel-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.15em;font-weight:800;color:var(--muted)}.jump{background:none;border:0;color:var(--ink);font-weight:800}.panel canvas{width:100%;height:280px;display:block}.feed{display:grid;gap:10px;margin-top:18px}.feed-item,.comment-card,.notice-card,.visitor-row,.tool-row,.category-card{border:1px solid var(--line);background:var(--card2);border-radius:16px;padding:15px}.feed-item b,.comment-card b,.notice-card b{display:block}.feed-item small,.comment-card small,.notice-card small{color:var(--muted)}.toolbar{display:flex;gap:10px;padding:12px;border-radius:20px;margin-bottom:14px}.table{border-radius:24px;padding:8px;overflow:auto}.tool-row{display:grid;grid-template-columns:52px 1.4fr .8fr 2fr 1.2fr auto;gap:12px;align-items:center;margin:6px}.tool-icon{width:44px;height:44px;border-radius:13px;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-weight:800;overflow:hidden}.tool-icon img{width:100%;height:100%;object-fit:cover}.tool-row strong{display:block}.muted{color:var(--muted);font-size:12px}.row-actions{display:flex;gap:6px;justify-content:end}.mini{border:1px solid var(--line);background:transparent;color:var(--ink);padding:8px 10px;border-radius:10px;font-size:11px;font-weight:800}.danger{color:var(--danger)}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.category-card{display:flex;justify-content:space-between;align-items:center}.comment-list,.notification-admin-list,.visitor-list{display:grid;gap:12px}.comment-card{display:grid;gap:12px}.comment-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}.comment-message{line-height:1.6}.reply-box{display:grid;grid-template-columns:1fr auto;gap:8px}.reply-box textarea{min-height:70px;resize:vertical}.notice-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.notice-card .actions{display:flex;gap:6px}.maintenance-card{border-radius:28px;padding:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.maintenance-card h2{font-size:50px;margin:10px 0}.switch input{display:none}.switch span{display:block;width:68px;height:38px;border-radius:999px;background:#b6b7b3;padding:4px;position:relative}.switch span:after{content:'';position:absolute;width:30px;height:30px;border-radius:50%;background:#fff;left:4px;top:4px;transition:.2s}.switch input:checked+span{background:var(--ink)}.switch input:checked+span:after{left:34px}.form-panel,.settings-form{display:grid;gap:14px;border-radius:26px;padding:22px}.form-panel label,.settings-form label{display:grid;gap:7px;font-size:11px;font-weight:800;letter-spacing:.1em}.form-panel textarea,.settings-form textarea{min-height:130px;resize:vertical}.visitor-top{grid-template-columns:repeat(2,1fr);margin-bottom:14px}.visitor-list{padding:12px}.visitor-row{display:grid;grid-template-columns:1fr auto auto;gap:15px;align-items:center}.visitor-row small{color:var(--muted)}.modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.42);display:grid;place-items:center;padding:20px}.modal-card{width:min(620px,100%);border-radius:26px;padding:26px;position:relative}.modal-x{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:22px}.modal-form{display:grid;gap:12px}.modal-form label{display:grid;gap:6px;font-size:11px;font-weight:800}.modal-form input,.modal-form textarea,.modal-form select{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--card2);color:var(--ink)}.modal-form textarea{min-height:100px;resize:vertical}.toast{position:fixed;z-index:200;right:24px;bottom:24px;background:var(--ink);color:var(--bg);padding:13px 17px;border-radius:13px;display:none;font-size:12px;font-weight:700}.mobile-only{display:none}@media(max-width:1000px){.sidebar{width:230px}.topbar{left:250px}.main{margin-left:250px}.hero-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:repeat(2,1fr)}.tool-row{grid-template-columns:48px 1fr .8fr auto}.tool-row .desc{display:none}}@media(max-width:760px){.topbar{left:12px;right:12px;top:12px}.mobile-only{display:block}.sidebar{transform:translateX(-110%);transition:.25s;width:min(300px,88vw);z-index:50}.sidebar.open{transform:none}.main{margin:0;padding:108px 12px 28px}.hero-grid,.visitor-top{grid-template-columns:1fr 1fr}.page-head{align-items:start;flex-direction:column}.page-head h1{font-size:48px}.toolbar{flex-direction:column}.category-grid{grid-template-columns:1fr}.tool-row{grid-template-columns:42px 1fr auto}.tool-row .cat,.tool-row .desc{display:none}.tool-row .row-actions{grid-column:1/-1;justify-content:start}.notice-card{align-items:start;flex-direction:column}.maintenance-card{align-items:start}.visitor-row{grid-template-columns:1fr auto}.visitor-row small:nth-child(2){display:none}.login-card{padding:28px}.brand small{font-size:8px}.status{display:none}}
/* SAFE UPGRADE: responsive shell + recovery UI. Existing visual variables are preserved. */
html{scroll-behavior:smooth;overflow-x:hidden}body{overflow-x:hidden;min-width:0}.main{width:calc(100% - 250px);max-width:none}.page{width:100%;overflow:visible}.panel,.glass,.table{max-width:100%;box-sizing:border-box}.tool-row{min-width:0}.tool-row>div{min-width:0}.tool-row strong,.tool-row small{overflow-wrap:anywhere}.backup-actions{display:flex;flex-wrap:wrap;gap:10px;padding:18px;border-radius:26px;margin-bottom:14px}.file-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:12px;background:var(--ink);color:var(--bg);font-size:11px;font-weight:800;cursor:pointer}.file-btn input{display:none}.backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.history-list{display:grid;gap:8px;max-height:620px;overflow:auto}.history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--card2)}.history-row div{min-width:0}.history-row b,.history-row small{display:block;overflow-wrap:anywhere}.history-row small{margin-top:4px;color:var(--muted)}.safe-badge{position:fixed;left:14px;bottom:14px;z-index:90;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);backdrop-filter:blur(14px);font-size:9px;font-weight:800;letter-spacing:.08em;color:var(--muted)}
@media(max-width:760px){body{width:100%;overflow-x:hidden}.topbar{max-width:calc(100vw - 24px)}.main{width:100%;max-width:100%;padding-left:12px;padding-right:12px}.page-head h1{font-size:clamp(36px,12vw,48px);line-height:.92}.hero-grid{grid-template-columns:1fr 1fr;gap:8px}.stat{min-width:0}.stat b{font-size:34px}.toolbar{width:100%;box-sizing:border-box}.toolbar input,.toolbar select{min-width:0;width:100%;box-sizing:border-box}.tool-row{grid-template-columns:44px minmax(0,1fr) auto;gap:9px;padding:11px}.tool-row .row-actions{display:flex;flex-wrap:wrap}.tool-icon{width:44px;height:44px}.tool-icon img{width:100%;height:100%;object-fit:cover}.tool-row strong{font-size:12px}.tool-row small{font-size:9px;display:block;white-space:normal}.category-grid{grid-template-columns:1fr 1fr;gap:8px}.category-card{min-width:0}.maintenance-card{padding:20px}.maintenance-card h2{font-size:36px}.backup-grid{grid-template-columns:1fr}.backup-actions{display:grid;grid-template-columns:1fr 1fr}.backup-actions .file-btn{min-height:42px;text-align:center}.safe-badge{display:none}.modal{padding:10px}.modal-card{max-height:calc(100dvh - 20px);overflow:auto;padding:20px}.modal-form input,.modal-form textarea{font-size:16px}.toast{left:12px;right:12px;bottom:18px;text-align:center}.dashboard-grid{gap:10px}.panel{min-width:0}.visitor-row{min-width:0}.visitor-row>div{min-width:0}.visitor-row b,.visitor-row small{overflow-wrap:anywhere}}
@media(max-width:430px){.hero-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:1fr}.backup-actions{grid-template-columns:1fr}.top-actions{gap:5px}.icon-btn{width:38px;height:38px}.page-head{gap:12px}.primary.small{width:100%}}
.recovery-strip{border-radius:26px;padding:18px;margin-bottom:14px}.recovery-strip .feed{grid-template-columns:1fr 1fr;margin-top:12px}@media(max-width:760px){.recovery-strip .feed{grid-template-columns:1fr}}


/* ZXH FINAL UI PASS — clean dashboard, no pill/gol-matol layout */
:root{--radius:6px}
.glass,.login-card,.topbar,.sidebar,.stat,.panel,.toolbar,.table,.form-panel,.settings-form,.maintenance-card,.modal-card,.recovery-strip,.backup-actions{border-radius:6px}
.feed-item,.comment-card,.notice-card,.visitor-row,.tool-row,.category-card,.history-row{border-radius:4px}
.brand>span,.icon-btn,.status,.safe-badge,.switch span,.switch span:after{border-radius:4px}
.primary,.mini,.file-btn,.modal-form input,.modal-form textarea,.modal-form select,.login-card input,.settings-form input,.settings-form textarea,.toolbar input,.toolbar select,.form-panel input,.form-panel textarea{border-radius:4px}
.sidebar{left:0;top:0;bottom:0;padding:18px 12px;border-left:0;border-top:0;border-bottom:0;box-shadow:10px 0 30px rgba(0,0,0,.06)}
.topbar{top:0;right:0;height:68px;border-top:0;border-right:0;border-radius:0;box-shadow:0 8px 24px rgba(0,0,0,.05)}
.main{margin-left:270px;padding:92px 22px 28px;width:calc(100% - 270px)}
.page-head{margin-bottom:16px}
.stat{padding:18px}
.panel{min-height:0;padding:16px}
.dashboard-grid{margin-top:12px}
.tool-row{margin:4px 0;padding:11px}
.tool-icon{border-radius:4px}
.category-card{padding:12px}
.backup-actions{padding:12px}
.recovery-strip{padding:14px}
.login-card{border-radius:6px}
@media(max-width:1000px){.sidebar{width:220px}.topbar{left:220px}.main{margin-left:220px;width:calc(100% - 220px);padding-left:16px;padding-right:16px}.hero-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
 .topbar{left:0;right:0;top:0;height:62px;padding:8px 10px}
 .main{margin:0;width:100%;padding:78px 10px 22px}
 .sidebar{top:62px;bottom:0;left:0;width:min(290px,88vw);border-right:1px solid var(--line);box-shadow:14px 0 32px rgba(0,0,0,.12)}
 .page-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}
 .page-head h1{font-size:clamp(34px,11vw,48px);margin:7px 0 0}
 .page-head .primary{width:auto;max-width:100%}
 .hero-grid{grid-template-columns:1fr 1fr;gap:7px}
 .stat{padding:12px}
 .stat b{font-size:28px}
 .dashboard-grid{grid-template-columns:1fr}
 .toolbar{padding:8px;gap:7px}
 .tool-row{grid-template-columns:42px minmax(0,1fr);gap:8px}
 .tool-row .cat,.tool-row .desc,.tool-row> .muted:not(.row-actions){display:none}
 .tool-row .row-actions{grid-column:1/-1;justify-content:flex-start}
 .tool-row .row-actions .mini{flex:1;min-width:90px}
 .category-grid{grid-template-columns:1fr;gap:7px}
 .backup-actions{grid-template-columns:1fr;gap:7px}
 .backup-grid{grid-template-columns:1fr}
 .maintenance-card{padding:16px}
 .maintenance-card h2{font-size:34px}
 .visitor-row{grid-template-columns:1fr auto}
 .notice-card{padding:12px}
 .reply-box{grid-template-columns:1fr}
 .modal-card{width:100%;max-height:calc(100dvh - 16px);padding:16px}
 .login-screen{padding:12px}
 .login-card{padding:24px}
 .safe-badge{display:none}
}
@media(max-width:430px){.hero-grid{grid-template-columns:1fr 1fr}.top-actions .status{display:none}.brand small{display:none}.brand>span{width:40px;height:40px}.icon-btn{width:38px;height:38px}.page-head .primary{font-size:10px;padding:10px}.tool-row strong{font-size:12px}}
.backup-note{display:flex;align-items:center;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.05em}
