/* ===== base ===== */
:root{
  --page:#f3efe9;--paper:#fffdfa;--card:#fff;--ink:#30271f;--ink2:#5e5044;--muted:#9b8f84;
  --line:#e8e0d7;--line2:#f0ebe5;--accent:#5b381d;--accent2:#8a6542;--gold:#b88a55;
  --green:#5f7d5d;--orange:#a8733f;--red:#a65f55;--blue:#5f7893;
  --shadow:0 10px 30px rgba(63,42,24,.07);--shadow-lg:0 24px 70px rgba(52,34,20,.18);
  --r:18px;--sidebar:224px;--font:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:var(--font);color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}button{color:inherit}svg{display:block}
[hidden]{display:none!important}
.app{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}
.sidebar{grid-column:1;grid-row:1;position:sticky;top:0;height:100vh;height:100dvh;padding:24px 16px 18px;background:linear-gradient(180deg,#4f311b,#68482e 62%,#75563a);color:#fff;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:11px;padding:0 9px 24px;border-bottom:1px solid rgba(255,255,255,.12)}
.logo{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.14);font-family:Georgia,serif;font-size:24px;color:#efd6ad}
.brand strong{display:block;font:500 20px/1.1 Georgia,"Songti SC",serif}.brand span{display:block;margin-top:4px;font-size:10px;color:rgba(255,255,255,.58)}
.nav{display:grid;gap:5px;margin-top:18px}.nav button{height:44px;border:0;border-radius:13px;background:transparent;color:rgba(255,255,255,.68);display:flex;align-items:center;gap:11px;padding:0 13px;text-align:left;cursor:pointer;transition:.18s}.nav button:hover{background:rgba(255,255,255,.07);color:#fff}.nav button.active{background:rgba(255,255,255,.14);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav span{font-size:13px}.nav em{margin-left:auto;font-style:normal;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#f1d2a3;color:#5b381d;font-size:9px;display:grid;place-items:center}
.sidebar-bottom{margin-top:auto}.admin-mini{display:flex;align-items:center;gap:10px;padding:12px;border-radius:14px;background:rgba(255,255,255,.08)}.admin-avatar{width:35px;height:35px;border-radius:11px;background:#ead2b0;color:#5b381d;display:grid;place-items:center;font-weight:700}.admin-mini strong{display:block;font-size:11px}.admin-mini span{display:block;margin-top:3px;font-size:9px;color:rgba(255,255,255,.55)}
.sidebar-backdrop{display:none}.main{grid-column:2;grid-row:1;min-width:0}.topbar{height:72px;background:rgba(255,253,250,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(100,75,52,.08);display:flex;align-items:center;gap:16px;padding:0 28px;position:sticky;top:0;z-index:15}.mobile-menu{display:none;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:#fff}.page-title{min-width:180px}.page-title strong{display:block;font:500 18px/1.2 Georgia,"Songti SC",serif}.page-title span{display:block;margin-top:4px;font-size:9px;color:var(--muted)}
.global-search{margin-left:auto;width:min(360px,30vw);height:39px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--muted)}.global-search svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.global-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:11px}.top-action{height:39px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 13px;display:flex;align-items:center;gap:7px;font-size:10px;cursor:pointer}.top-action.primary{border-color:transparent;background:var(--accent);color:#fff}.top-action svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.content{padding:24px 28px 44px;max-width:1580px;margin:0 auto}.view{display:none}.view.active{display:block}
.hero{border-radius:22px;padding:21px 23px;background:radial-gradient(circle at 88% 15%,rgba(225,189,139,.33),transparent 26%),linear-gradient(145deg,#59371d,#7b593b);color:#fff;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:16px}.hero strong{display:block;font:500 22px/1.25 Georgia,"Songti SC",serif}.hero p{margin:8px 0 0;font-size:10px;line-height:1.75;color:rgba(255,255,255,.68)}.hero-note{text-align:right}.hero-note b{display:block;font:500 24px/1 Georgia,serif}.hero-note span{display:block;margin-top:6px;font-size:9px;color:rgba(255,255,255,.6)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.kpi{padding:17px;border-radius:18px;background:#fff;border:1px solid rgba(103,75,51,.08);box-shadow:0 6px 20px rgba(68,45,23,.04)}.kpi-head{display:flex;justify-content:space-between;align-items:center}.kpi-icon{width:34px;height:34px;border-radius:11px;background:#f3ede6;color:#7e5833;display:grid;place-items:center}.kpi-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}.kpi-change{font-size:8px;color:var(--green);padding:4px 7px;border-radius:999px;background:#eef4ed}.kpi strong{display:block;font:500 28px/1 Georgia,"Songti SC",serif;margin-top:15px}.kpi span{display:block;margin-top:7px;font-size:9px;color:var(--muted)}
.grid-2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:14px}.panel{background:#fff;border:1px solid rgba(103,75,51,.08);border-radius:20px;padding:18px;box-shadow:0 7px 22px rgba(68,45,23,.04)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-title strong{display:block;font:500 15px/1.2 Georgia,"Songti SC",serif}.panel-title span{display:block;margin-top:5px;font-size:8px;color:var(--muted)}.panel-link{border:0;background:transparent;color:#8a6039;font-size:9px;cursor:pointer;padding:5px}
.chart-wrap{height:240px;position:relative}.chart-wrap svg{width:100%;height:100%;overflow:visible}.chart-grid{stroke:#eee7df;stroke-width:1}.chart-area{fill:url(#areaGradient)}.chart-line{fill:none;stroke:#775133;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-dot{fill:#fff;stroke:#775133;stroke-width:2}.chart-label{font-size:10px;fill:#a0958a}
.todo-list,.simple-list{display:grid}.todo{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--line2)}.todo:first-child{border-top:0;padding-top:0}.todo-icon{width:34px;height:34px;border-radius:11px;background:#f5efe8;color:#835e3a;display:grid;place-items:center}.todo-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}.todo strong{display:block;font-size:10px}.todo span{display:block;margin-top:4px;font-size:8px;color:var(--muted);line-height:1.45}.todo b,.todo-action{font-size:9px;color:#8a6039;font-weight:600}.todo-action{min-height:29px;border:1px solid #dfcdbb;border-radius:9px;background:#fffaf4;padding:0 9px;cursor:pointer;font-family:inherit;white-space:nowrap}.todo-action:hover{border-color:#a77a51;background:#f8eee2}
.section-toolbar{display:flex;align-items:center;gap:9px;margin:0 0 13px}.searchbox{height:38px;min-width:220px;max-width:360px;flex:1;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center;gap:7px;padding:0 11px;color:var(--muted)}.searchbox svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}.searchbox input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:10px;color:var(--ink)}.filter{height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 10px;color:var(--ink2);font-size:9px;outline:0}.btn{height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px;color:#6e543f;font-size:9px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn.primary{border-color:transparent;background:var(--accent);color:#fff}.btn.soft{background:#f3ece4;border-color:transparent}.btn.danger{color:var(--red)}.btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.table-card{background:#fff;border:1px solid rgba(103,75,51,.08);border-radius:19px;box-shadow:0 7px 22px rgba(68,45,23,.04);overflow:hidden}.table{width:100%;border-collapse:collapse}.table th{height:43px;text-align:left;padding:0 15px;background:#faf7f3;color:#9c8f83;font-size:8px;font-weight:500;white-space:nowrap}.table td{padding:13px 15px;border-top:1px solid var(--line2);font-size:9px;color:#6b5a4b;vertical-align:middle}.table tr:hover td{background:#fffdfa}.user-cell{display:flex;align-items:center;gap:10px;min-width:190px}.avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#a68a70,#6f5540);color:#fff;display:grid;place-items:center;font:500 14px/1 Georgia,"Songti SC",serif;flex:0 0 auto}.user-cell strong,.card-main strong{display:block;font-size:10px;color:#433328}.user-cell span,.card-main span{display:block;margin-top:4px;font-size:8px;color:var(--muted)}.status{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:8px;white-space:nowrap}.status::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.status.active,.status.published,.status.done{background:#edf4eb;color:#5c7757}.status.draft,.status.pending{background:#f7eee2;color:#987042}.status.suspended,.status.paused,.status.closed{background:#f3e8e6;color:#9a5e56}.status.processing{background:#eaf0f5;color:#5c748c}.plan{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f1ebe4;color:#765637;font-size:8px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.small-btn{height:29px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 9px;color:#77583d;font-size:8px;cursor:pointer}.small-btn.primary{background:#f0e6db;border-color:transparent}.small-btn.danger{color:var(--red)}
.pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-top:1px solid var(--line2);font-size:8px;color:var(--muted)}.page-buttons{display:flex;gap:5px}.page-buttons button{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#846b56;font-size:8px}.page-buttons button.active{background:var(--accent);border-color:var(--accent);color:#fff}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.asset-card{border-radius:18px;background:#fff;border:1px solid rgba(103,75,51,.09);overflow:hidden;box-shadow:0 7px 20px rgba(68,45,23,.04)}.asset-cover{height:162px;background:#6e533d;position:relative;overflow:hidden}.asset-cover img{width:100%;height:100%;object-fit:cover}.asset-cover.gradient-1{background:linear-gradient(145deg,#2e251f,#8c6a46)}.asset-cover.gradient-2{background:linear-gradient(145deg,#f5efe6,#c9ad86)}.asset-cover.gradient-3{background:linear-gradient(145deg,#1e2227,#4c392b)}.asset-cover::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(180deg,transparent,rgba(31,20,13,.56))}.asset-preview-text{position:absolute;z-index:2;left:17px;right:17px;bottom:15px;color:#fff}.asset-preview-text b{display:block;font:500 18px/1.45 Georgia,"Songti SC",serif}.asset-preview-text span{display:block;margin-top:5px;font-size:8px;opacity:.72}.asset-body{padding:14px}.asset-head{display:flex;justify-content:space-between;gap:9px}.asset-head strong{font-size:11px}.asset-meta{margin-top:7px;font-size:8px;color:var(--muted)}.asset-actions{display:flex;gap:7px;margin-top:12px}.asset-actions button{flex:1;height:31px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#765637;font-size:8px}.asset-actions button.primary{background:#f1e8df;border-color:transparent}
.tabs{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:13px;background:#fff;width:max-content;margin-bottom:13px}.tabs button{height:31px;border:0;border-radius:9px;background:transparent;padding:0 13px;color:#92857a;font-size:9px;cursor:pointer}.tabs button.active{background:var(--accent);color:#fff}
.quote-list{display:grid;gap:9px}.quote-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 85px 110px;gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:#fff}.quote-copy strong{display:block;font:500 13px/1.6 Georgia,"Songti SC",serif}.quote-copy span{display:block;margin-top:4px;font-size:8px;color:var(--muted)}.quote-category{font-size:8px;color:#84664c}.quote-uses{font-size:9px;color:#6c5847}
.image-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.image-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.image-card img{width:100%;height:150px;object-fit:cover;display:block}.image-card-body{padding:11px}.image-card strong{display:block;font-size:10px}.image-card span{display:block;margin-top:4px;font-size:8px;color:var(--muted)}
.feedback-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:13px}.ticket-list{background:#fff;border:1px solid rgba(103,75,51,.08);border-radius:18px;padding:8px;box-shadow:0 7px 22px rgba(68,45,23,.04)}.ticket{width:100%;border:0;border-radius:13px;background:transparent;text-align:left;padding:12px;cursor:pointer}.ticket:hover{background:#faf6f1}.ticket.active{background:#f3ebe2}.ticket-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ticket strong{font-size:10px}.ticket p{margin:6px 0 0;font-size:8px;line-height:1.55;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ticket-meta{display:flex;justify-content:space-between;margin-top:8px;font-size:7px;color:#a39589}.ticket-detail{background:#fff;border:1px solid rgba(103,75,51,.08);border-radius:20px;padding:20px;box-shadow:0 7px 22px rgba(68,45,23,.04);min-height:500px}.detail-head{display:flex;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid var(--line2)}.detail-head h3{margin:0;font:500 18px/1.35 Georgia,"Songti SC",serif}.detail-head p{margin:7px 0 0;font-size:8px;color:var(--muted)}.detail-section{margin-top:18px}.detail-section label{display:block;font-size:8px;color:var(--muted);margin-bottom:8px}.detail-text{padding:14px;border-radius:14px;background:#faf7f3;font-size:10px;line-height:1.8;color:#5f5044}.reply-box{width:100%;min-height:110px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;outline:none;resize:vertical;font-size:10px;line-height:1.7}.detail-actions{display:flex;gap:8px;margin-top:12px}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.setting-card{background:#fff;border:1px solid rgba(103,75,51,.08);border-radius:19px;padding:18px;box-shadow:0 7px 22px rgba(68,45,23,.04)}.setting-card h3{font:500 15px/1.2 Georgia,"Songti SC",serif;margin:0}.setting-card>p{font-size:8px;color:var(--muted);line-height:1.6;margin:6px 0 14px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line2)}.setting-row:first-of-type{border-top:0}.setting-row strong{display:block;font-size:10px}.setting-row span{display:block;margin-top:4px;font-size:8px;color:var(--muted)}.switch{width:40px;height:23px;border:0;border-radius:999px;background:#d9d0c7;padding:3px;cursor:pointer}.switch::after{content:"";display:block;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(50,35,22,.17);transition:.2s}.switch.on{background:#765033}.switch.on::after{transform:translateX(17px)}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.plan-card{padding:13px;border:1px solid var(--line);border-radius:14px}.plan-card strong{display:block;font-size:11px}.plan-field{margin-top:9px}.plan-field label{display:block;font-size:7px;color:var(--muted);margin-bottom:4px}.plan-field input{width:100%;height:31px;border:1px solid var(--line);border-radius:9px;padding:0 8px;font-size:9px;outline:0}
.drawer-backdrop,.modal-backdrop{position:fixed;z-index:60;inset:0;background:rgba(35,25,18,.38);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:.2s}.drawer-backdrop.open,.modal-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:fixed;z-index:61;top:0;right:0;width:420px;max-width:92vw;height:100vh;background:#fbfaf7;box-shadow:-24px 0 70px rgba(45,30,18,.2);transform:translateX(104%);transition:.28s;display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-head{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--line)}.drawer-head strong{font:500 17px/1.2 Georgia,"Songti SC",serif}.close{width:34px;height:34px;border:0;border-radius:50%;background:#eee9e3;display:grid;place-items:center;font-size:21px;cursor:pointer}.drawer-body{flex:1;overflow:auto;padding:18px}.form{display:grid;gap:12px}.field{display:grid;gap:6px}.field label{font-size:8px;color:#7e7063}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);padding:10px 11px;font-size:10px;outline:0}.field textarea{min-height:90px;resize:vertical;line-height:1.6}.field input:focus,.field select:focus,.field textarea:focus{border-color:#b88a55;box-shadow:0 0 0 3px rgba(184,138,85,.1)}.drawer-summary{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;padding:13px;border-radius:15px;background:#f3ede6;margin-bottom:15px}.drawer-summary .avatar{width:48px;height:48px}.drawer-summary strong{display:block;font-size:12px}.drawer-summary span{display:block;margin-top:4px;font-size:8px;color:var(--muted)}.drawer-footer{padding:12px 18px 18px;display:grid;grid-template-columns:1fr 1.35fr;gap:9px;background:linear-gradient(180deg,rgba(251,250,247,0),#fbfaf7 25%)}.drawer-footer button{height:43px;border-radius:13px}
.modal{position:fixed;z-index:71;left:50%;top:50%;width:520px;max-width:92vw;max-height:88vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:var(--shadow-lg);transform:translate(-50%,-46%) scale(.98);opacity:0;pointer-events:none;transition:.2s}.modal.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-bottom:1px solid var(--line)}.modal-head strong{font:500 16px/1.2 Georgia,"Songti SC",serif}.modal-body{padding:18px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:0 18px 18px}.preview-poster{width:270px;aspect-ratio:3/4;margin:0 auto;border-radius:18px;overflow:hidden;position:relative;background:#4f3927;color:#fff;box-shadow:0 16px 36px rgba(41,27,18,.2)}.preview-poster img{width:100%;height:100%;object-fit:cover}.preview-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,14,10,.12),rgba(20,14,10,.52))}.preview-poster-text{position:absolute;z-index:2;left:21px;right:21px;top:75px}.preview-poster-text span{font-size:9px;letter-spacing:.15em;color:#ead8bc}.preview-poster-text strong{display:block;margin-top:23px;font:500 22px/1.65 Georgia,"Songti SC",serif}.preview-poster-brand{position:absolute;z-index:2;left:18px;right:18px;bottom:18px;padding:11px;border-radius:13px;background:rgba(25,18,13,.5);backdrop-filter:blur(8px);font-size:9px}
.toast{position:fixed;z-index:100;left:50%;bottom:28px;transform:translate(-50%,14px);padding:10px 16px;border-radius:999px;background:rgba(42,31,23,.93);color:#fff;font-size:10px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.empty{padding:45px 20px;text-align:center;color:var(--muted);font-size:10px}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.cards-grid{grid-template-columns:repeat(2,1fr)}.image-grid{grid-template-columns:repeat(3,1fr)}.settings-grid{grid-template-columns:1fr}.feedback-layout{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:820px){html,body{max-width:100%;overflow-x:hidden;overscroll-behavior-y:none}body{-webkit-overflow-scrolling:touch}.app{display:block;min-height:100dvh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(280px,82vw);height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translateX(-104%);transition:transform .25s;z-index:51}.sidebar.open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;z-index:50;inset:0;padding:0;border:0;background:rgba(35,25,18,.36);opacity:0;pointer-events:none;transition:opacity .2s}.sidebar.open+.sidebar-backdrop{opacity:1;pointer-events:auto}.mobile-menu{display:grid;place-items:center;flex:0 0 38px;touch-action:manipulation}.topbar{height:64px;gap:8px;padding:0 12px}.page-title{min-width:0;flex:1}.page-title strong,.page-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-title strong{font-size:16px}.top-action{width:38px;min-width:38px;padding:0;justify-content:center;font-size:0}.top-action svg{width:17px;height:17px}.global-search{display:none}.content{padding:16px 12px max(32px,env(safe-area-inset-bottom))}.cards-grid{grid-template-columns:1fr}.image-grid{grid-template-columns:repeat(2,1fr)}.feedback-layout{grid-template-columns:1fr}.ticket-list{max-height:none;overflow:visible}.table-card{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.table{min-width:760px}.hero{align-items:flex-start;padding:18px;border-radius:18px}.hero strong{font-size:20px}.hero-note{display:none}.section-toolbar{align-items:stretch;flex-wrap:wrap}.section-toolbar .searchbox{flex:1 0 100%;max-width:none;min-width:0}.section-toolbar .filter{flex:1;min-width:0}.tabs,.commerce-tabs,.template-kind-switch{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar,.commerce-tabs::-webkit-scrollbar,.template-kind-switch::-webkit-scrollbar{display:none}.tabs button,.commerce-tabs button,.template-kind-switch button{flex:0 0 auto}.quote-row{grid-template-columns:1fr;gap:8px}.quote-row .row-actions{justify-content:flex-start}.setting-row{align-items:flex-start;flex-wrap:wrap}.setting-row>.row-actions{width:100%;justify-content:flex-start}.drawer{width:min(420px,100vw);max-width:100vw;height:100dvh}.drawer-body,.modal,.modal-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal{width:calc(100vw - 24px);max-width:none;max-height:calc(100dvh - 24px);border-radius:18px}.modal-footer{position:sticky;bottom:0;padding:12px 14px;background:#fff}.toast{bottom:max(18px,env(safe-area-inset-bottom));max-width:calc(100vw - 24px);text-align:center}}
@media(max-width:520px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi{padding:14px}.kpi strong{font-size:24px}.image-grid{grid-template-columns:1fr}.panel{padding:15px;border-radius:17px}.plan-grid{grid-template-columns:1fr}.detail-head,.lead-overview-callout{align-items:flex-start;flex-direction:column}.drawer-footer{padding-bottom:max(16px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.sidebar,.sidebar-backdrop{transition:none!important}}

/* One page scroller; only bounded overlays own a separate vertical scroller. */
.sidebar{overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin}
.sidebar>*{flex-shrink:0}
.drawer{height:100dvh}
.drawer-head,.drawer-footer,.modal-head,.modal-footer{flex-shrink:0}
.drawer-body,.modal-body{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.modal{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 24px)}
.modal-footer{position:static;padding:12px 18px 18px;border-top:1px solid var(--line);background:#fff}
html:has(.modal.open,.drawer.open){overflow:hidden}
@media(max-width:820px){
  html{overflow-x:clip;overflow-y:auto;overscroll-behavior-y:auto}
  body{overflow:visible;overscroll-behavior-y:auto}
  html:has(.sidebar.open,.modal.open,.drawer.open){overflow:hidden}
  .modal{max-width:calc(100vw - 24px)}
  .drawer-body,.modal-body{padding:16px}
  .modal-head,.drawer-head{gap:12px}
  .modal-head strong,.drawer-head strong{min-width:0;overflow-wrap:anywhere}
  .modal-footer{flex-wrap:wrap;padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .modal-footer button{flex:1 1 auto}
  .close,.small-btn,.btn,.filter,.mobile-menu,.top-action{min-height:44px;min-width:44px}
  .field input,.field select,.field textarea,.searchbox input,.reply-box{font-size:16px}
  .field input,.field select{min-height:44px}
  .field label,.small-btn,.btn,.filter{font-size:13px}
}
