:root{--bg:#0b1220;--panel:#111827;--panel2:#0f172a;--card:#ffffff;--text:#0f172a;--muted:#64748b;--line:#e5e7eb;--green:#22c55e;--red:#ef4444;--blue:#38bdf8;--amber:#f59e0b;--radius:16px;--mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;--sans:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:#f4f7fb;color:var(--text);font-family:var(--sans);font-size:14px}.shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,#0b1220,#111827);color:#e5e7eb;padding:22px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.brand b{display:block;font-size:17px}.brand small{display:block;color:#94a3b8;font-size:12px;margin-top:3px}.bolt{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(34,197,94,.5);border-radius:12px;background:#07111f;color:var(--red);box-shadow:0 0 0 3px rgba(34,197,94,.08)}nav{display:grid;gap:8px}nav a{color:#cbd5e1;text-decoration:none;padding:11px 12px;border-radius:12px;font-weight:650}nav a:hover{background:rgba(34,197,94,.1);color:#fff}main{min-width:0}.top{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.85);backdrop-filter:blur(10px);position:sticky;top:0;z-index:5}.top h1{margin:0;font-size:24px;letter-spacing:-.03em}.top p{margin:4px 0 0;color:var(--muted)}.user{font-size:13px;color:var(--muted)}.user span,.badge{font-family:var(--mono);font-size:11px;border:1px solid var(--line);border-radius:999px;padding:3px 8px;background:#f8fafc;color:#334155}.wrap{padding:24px 28px}.grid{display:grid;gap:16px}.grid.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 28px rgba(15,23,42,.06);padding:18px;margin:0 0 18px}.stat b{font-size:30px;letter-spacing:-.05em}.stat span{display:block;color:var(--muted);margin-top:4px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn,button{border:0;border-radius:12px;background:#0f172a;color:#fff;font-weight:750;padding:10px 13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:7px}.btn.green,button.green{background:var(--green);color:#052e16}.btn.red,button.red{background:var(--red)}.btn.gray,button.gray{background:#e2e8f0;color:#0f172a}.btn.small,button.small{font-size:12px;padding:7px 9px;border-radius:9px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;background:#fff}label{font-weight:750;font-size:12px;color:#334155;display:grid;gap:6px}table{width:100%;border-collapse:separate;border-spacing:0}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:11px;text-transform:uppercase;color:#64748b;letter-spacing:.04em;background:#f8fafc}.thumb{width:54px;height:54px;object-fit:cover;border-radius:12px;background:#e2e8f0}.title{font-weight:750}.muted{color:var(--muted)}.ok{background:#dcfce7!important;color:#166534!important;border-color:#bbf7d0!important}.warn{background:#fef3c7!important;color:#92400e!important;border-color:#fde68a!important}.err{background:#fee2e2!important;color:#991b1b!important;border-color:#fecaca!important}.login{max-width:430px;margin:7vh auto}.login .brand{color:#e5e7eb;background:#0b1220;border-radius:18px;padding:18px}.notice{padding:12px;border-radius:12px;background:#ecfeff;color:#155e75;border:1px solid #a5f3fc}.rowform{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}.code{font-family:var(--mono);font-size:12px;background:#0b1220;color:#bbf7d0;border-radius:12px;padding:12px;overflow:auto}.product-edit{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.shell{display:block}.side{position:relative;height:auto}.top{position:relative;display:block}.grid.stats,.rowform,.product-edit{grid-template-columns:1fr}.wrap{padding:16px}table{font-size:13px}.hide-sm{display:none}} 
.section-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.section-head h2{margin:0}.section-head p{margin:4px 0 0}.table-card{overflow:auto}.copyline{display:flex;gap:10px;align-items:center}.copyline input{font-family:var(--mono);background:#f8fafc}.copyline.compact input{max-width:150px;font-size:12px;padding:7px 9px}.token-new input{background:#0b1220;color:#bbf7d0;border-color:#1f2937}.pager .btn.disabled{opacity:.45;pointer-events:none}.user-form{grid-template-columns:repeat(6,minmax(0,1fr))}.notice.ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}.notice.err{background:#fee2e2;color:#991b1b;border-color:#fecaca}code{font-family:var(--mono);background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:2px 6px}@media(max-width:1100px){.user-form{grid-template-columns:repeat(2,minmax(0,1fr))}.copyline{align-items:stretch;flex-direction:column}.copyline.compact{max-width:220px}}@media(max-width:700px){.user-form{grid-template-columns:1fr}.pager .actions{gap:6px}.pager .btn{padding:7px 8px}}
body.modal-open{overflow:hidden}.mpr-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.58);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:9999;opacity:0;pointer-events:none;transition:opacity .18s ease;padding:20px}.mpr-modal-backdrop.show{opacity:1;pointer-events:auto}.mpr-modal{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 28px 80px rgba(15,23,42,.28);text-align:center;transform:translateY(10px) scale(.96);opacity:0;transition:transform .22s cubic-bezier(.2,.9,.2,1),opacity .18s ease}.mpr-modal-backdrop.show .mpr-modal{transform:translateY(0) scale(1);opacity:1}.mpr-warning{width:74px;height:74px;border-radius:999px;margin:0 auto 16px;display:grid;place-items:center;background:#fff7ed;border:3px solid #fed7aa;position:relative;animation:mpr-pop .38s ease}.mpr-warning:before{content:"";position:absolute;inset:-8px;border-radius:999px;border:2px solid rgba(245,158,11,.22);animation:mpr-pulse 1.4s ease infinite}.mpr-warning span{font-size:38px;font-weight:900;color:#f59e0b;line-height:1}.mpr-modal h2{font-size:22px;margin:0 0 8px;font-weight:900;letter-spacing:-.03em}.mpr-modal p{color:var(--muted);line-height:1.55;margin:0 0 22px}.mpr-modal-actions{display:flex;gap:10px;justify-content:center}.mpr-modal-actions button{min-width:128px;justify-content:center}.mpr-modal-actions button.loading{opacity:.92;cursor:wait}.spinner{width:16px;height:16px;border-radius:999px;border:2px solid rgba(255,255,255,.55);border-top-color:#fff;display:inline-block;animation:mpr-spin .8s linear infinite}.mpr-toast{position:fixed;right:22px;bottom:22px;z-index:10000;background:#0f172a;color:#fff;border-radius:14px;padding:12px 16px;box-shadow:0 16px 40px rgba(15,23,42,.28);transform:translateY(12px);opacity:0;transition:.2s ease}.mpr-toast.show{opacity:1;transform:translateY(0)}.mpr-toast.ok{background:#16a34a;color:#ecfdf5}@keyframes mpr-spin{to{transform:rotate(360deg)}}@keyframes mpr-pop{0%{transform:scale(.75);opacity:.4}100%{transform:scale(1);opacity:1}}@keyframes mpr-pulse{0%,100%{transform:scale(.92);opacity:.75}50%{transform:scale(1.08);opacity:.2}}@media(max-width:520px){.mpr-modal{padding:24px 18px}.mpr-modal-actions{flex-direction:column}.mpr-modal-actions button{width:100%}}
.extension-grid{display:grid;gap:14px}.extension-card{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:16px;background:#f8fafc}.extension-card h3{margin:0 0 6px}.extension-card p{margin:0 0 10px}.extension-card.inactive{opacity:.62}.extension-form{grid-template-columns:2fr 1fr 120px 220px}.extension-form .wide{grid-column:1/-1}.extension-form .check{display:flex;align-items:center;gap:8px;padding-top:22px}.extension-form .check input{width:auto}@media(max-width:900px){.extension-card{display:grid}.extension-form{grid-template-columns:1fr}.extension-form .check{padding-top:0}}
/* 2026-06-22 UI polish: page icons, nav icons, batch action modal, product per-page selector */
nav a{display:flex;align-items:center;gap:10px}.nav-ico{width:24px;height:24px;border-radius:9px;display:inline-grid;place-items:center;background:rgba(148,163,184,.12);font-size:14px;flex:0 0 auto}.nav-extra{margin-left:auto;color:#94a3b8;font-size:12px}.page-ico{display:inline-grid;place-items:center;width:34px;height:34px;margin-right:10px;border-radius:12px;background:#ecfdf5;border:1px solid #bbf7d0;font-size:18px;vertical-align:middle}.top h1{display:flex;align-items:center}.mpr-action-icon{width:74px;height:74px;border-radius:24px;margin:0 auto 16px;display:grid;place-items:center;background:linear-gradient(135deg,#dcfce7,#e0f2fe);border:3px solid #bbf7d0;box-shadow:0 14px 36px rgba(34,197,94,.18);animation:mpr-pop .34s ease}.mpr-action-icon span{font-size:34px}.mpr-action-modal h2{color:#0f172a}.products-filter{grid-template-columns:repeat(6,minmax(0,1fr))}.products-filter label{min-width:0}@media(max-width:1200px){.products-filter{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.products-filter{grid-template-columns:1fr}.page-ico{width:30px;height:30px;font-size:16px}}

/* 2026-06-22 Dashboard docs + copyright */
.hero-doc{display:flex;justify-content:space-between;gap:18px;align-items:center;background:linear-gradient(135deg,#0f172a,#14532d);color:#ecfdf5;border-color:rgba(34,197,94,.28)}.hero-doc h2{margin:6px 0 8px;font-size:25px;letter-spacing:-.04em}.hero-doc p{margin:0;color:#bbf7d0;line-height:1.55}.eyebrow{display:inline-flex;align-items:center;gap:7px;font:700 11px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:#86efac;background:rgba(34,197,94,.12);border:1px solid rgba(134,239,172,.28);border-radius:999px;padding:5px 9px}.dash-doc-grid{grid-template-columns:1.15fr .85fr}.doc-card h2,.mind-card h2{margin:0}.doc-steps{list-style:none;counter-reset:step;display:grid;gap:10px;margin:0;padding:0}.doc-steps li{counter-increment:step;display:grid;grid-template-columns:38px 1fr;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#f8fafc}.doc-steps li:before{content:counter(step);width:32px;height:32px;border-radius:11px;display:grid;place-items:center;background:#dcfce7;color:#166534;font-weight:900}.doc-steps b{display:block;margin-bottom:3px}.doc-steps span{color:var(--muted);line-height:1.45}.doc-steps a{color:#15803d;font-weight:800;text-decoration:none}.mindmap{display:grid;gap:12px;justify-items:center;padding:8px}.mind-node{border:1px solid var(--line);background:#fff;border-radius:15px;padding:12px 14px;font-weight:850;box-shadow:0 10px 26px rgba(15,23,42,.06);text-align:center;min-width:145px}.mind-node.root{background:#0f172a;color:#bbf7d0;border-color:#22c55e;min-width:220px}.mind-row{display:flex;align-items:center;gap:10px;width:100%;justify-content:center}.mind-row span{color:#22c55e;font-size:22px;font-weight:900}.mind-note{width:100%;border:1px dashed #86efac;background:#f0fdf4;color:#166534;border-radius:14px;padding:12px;text-align:center;font-weight:750}.quick-warn{background:#fffbeb;border-color:#fde68a;color:#92400e}.site-footer{padding:20px 28px;color:#64748b;text-align:center;font:700 12px var(--mono);border-top:1px solid var(--line);background:rgba(255,255,255,.65)}@media(max-width:1000px){.hero-doc{display:grid}.dash-doc-grid{grid-template-columns:1fr}.mind-row{display:grid;grid-template-columns:1fr;justify-items:center}.mind-row span{transform:rotate(90deg)}}

/* 2026-06-22 Mobile-first responsive hardening — Asep Samurai */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{overflow-x:hidden;line-height:1.45}img,svg,video{max-width:100%;height:auto}a{color:inherit}.shell,.top,.wrap,.card,.table-card{min-width:0}.card,.notice,.extension-card,.doc-steps li,.mind-node{overflow-wrap:break-word;word-break:normal}.title,b,h1,h2,h3,p,td,th,.btn,button,label,.badge{word-break:normal;overflow-wrap:break-word}.btn,button{min-height:42px;touch-action:manipulation;line-height:1.15;white-space:normal;justify-content:center}.btn.small,button.small{min-height:36px}.actions{min-width:0}.actions>*{flex:0 1 auto}.top h1{min-width:0;line-height:1.15}.top p{line-height:1.35}.user{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.wrap{max-width:1480px;margin:0 auto;width:100%}.table-card{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-card table{min-width:760px}.table-card td,.table-card th{white-space:normal}.table-card .actions{gap:7px}.product-cell{display:flex;gap:10px;min-width:0}.product-cell>div{min-width:0}.product-cell .title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mobile-only{display:none!important}
@media(max-width:1180px){.shell{grid-template-columns:230px 1fr}.side{padding:18px}.grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.wrap{padding:20px}.top{padding:18px 20px}.top h1{font-size:22px}.card{padding:16px}.rowform{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{align-items:stretch}.section-head .actions{justify-content:flex-start}.hero-doc .actions{align-items:stretch}.hero-doc .actions .btn{flex:1 1 180px}}
@media(max-width:860px){body{font-size:15px;background:#f6f8fb}.shell{display:block}.side{position:sticky;top:0;z-index:20;height:auto;padding:12px 12px 10px;border-bottom:1px solid rgba(148,163,184,.22)}.brand{margin:0 0 10px}.brand b{font-size:15px}.brand small{font-size:11px}.bolt{width:34px;height:34px;border-radius:11px}nav{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:3px}nav a{flex:0 0 auto;scroll-snap-align:start;padding:9px 11px;background:rgba(148,163,184,.08);border:1px solid rgba(148,163,184,.12);font-size:13px}.nav-ico{width:22px;height:22px}.nav-extra{display:none}.top{position:relative;display:grid;grid-template-columns:1fr;gap:10px;padding:16px;background:#fff}.top h1{font-size:21px}.top p{font-size:13px}.page-ico{width:32px;height:32px;margin-right:8px}.user{justify-content:flex-start;font-size:12px}.wrap{padding:14px}.card{border-radius:14px;padding:14px;margin-bottom:14px;box-shadow:0 6px 18px rgba(15,23,42,.05)}.grid.stats,.dash-doc-grid,.rowform,.products-filter,.product-edit,.user-form,.extension-form{grid-template-columns:1fr!important}.stat b{font-size:25px}.section-head{display:grid;gap:10px}.section-head h2{font-size:19px}.actions{gap:8px}.actions .btn,.actions button{flex:1 1 auto}.hero-doc{display:grid;padding:16px}.hero-doc h2{font-size:21px}.hero-doc .actions{display:grid;grid-template-columns:1fr}.doc-steps li{grid-template-columns:34px 1fr;padding:10px}.doc-steps li:before{width:30px;height:30px}.mindmap{padding:0}.mind-row{display:grid;grid-template-columns:1fr;gap:8px}.mind-row span{transform:rotate(90deg);font-size:18px}.mind-node,.mind-node.root{min-width:0;width:100%;padding:11px}.copyline{display:grid;grid-template-columns:1fr;align-items:stretch}.copyline.compact{max-width:none}.copyline.compact input{max-width:none}.extension-card{display:grid;gap:12px}.extension-card .actions{display:grid;grid-template-columns:1fr}.site-footer{padding:16px 14px}}
@media(max-width:760px){.hide-mobile{display:none!important}.mobile-only{display:initial!important}.table-card{overflow:visible}.table-card table{min-width:0;width:100%;border-spacing:0}.table-card thead{display:none}.table-card tbody,.table-card tr,.table-card td{display:block;width:100%}.table-card tr{border:1px solid var(--line);border-radius:14px;background:#fff;margin:0 0 12px;box-shadow:0 6px 18px rgba(15,23,42,.05);overflow:hidden}.table-card td{border-bottom:1px solid #eef2f7;padding:10px 12px}.table-card td:last-child{border-bottom:0}.table-card td:empty{display:none}.table-card td:first-child{background:#f8fafc}.table-card td .actions{display:grid;grid-template-columns:1fr;align-items:stretch}.table-card td .btn,.table-card td button{width:100%}.table-card input[type="checkbox"]{width:22px;height:22px}.thumb{width:58px;height:58px;border-radius:12px;flex:0 0 auto}.title{font-size:14px;line-height:1.35}.muted{font-size:12px;line-height:1.4}.badge{display:inline-flex;align-items:center;max-width:100%;white-space:normal;line-height:1.25}.pager .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.pager .actions .muted{display:none}.pager .btn{width:100%;min-height:38px}.products-filter button,.products-filter .btn{width:100%}.mpr-modal-backdrop{padding:14px}.mpr-modal{border-radius:18px}.mpr-modal-actions{display:grid;grid-template-columns:1fr}.mpr-modal-actions button{width:100%}.mpr-toast{left:14px;right:14px;bottom:14px}.quick-warn{font-size:13px}.top .user a{display:inline-flex;min-height:34px;align-items:center}.login{margin:16px auto;padding:0 14px}.login .card{padding:18px}.login .brand{border-radius:16px}}
@media(max-width:430px){body{font-size:14px}.side{padding:10px}.brand{gap:9px}.brand small{display:none}nav a{padding:8px 10px}.wrap{padding:10px}.top{padding:13px 12px}.top h1{font-size:19px}.page-ico{width:29px;height:29px;border-radius:10px;font-size:15px}.card{padding:12px;border-radius:13px}.stat b{font-size:23px}.btn,button{width:100%;min-height:44px;padding:10px 12px}.btn.small,button.small{min-height:40px}.actions{display:grid;grid-template-columns:1fr;width:100%}.actions>span.muted{grid-column:1/-1}.table-card td{padding:9px 10px}.product-cell{gap:9px}.thumb{width:52px;height:52px}.doc-steps li{grid-template-columns:1fr}.doc-steps li:before{margin-bottom:2px}.site-footer{font-size:11px}}

/* 2026-06-22 Dashboard doc steps layout fix */
.doc-steps li{grid-template-columns:38px minmax(0,1fr);align-items:start}.doc-steps li b,.doc-steps li span{min-width:0;width:100%;grid-column:2}.doc-steps li:before{grid-column:1;grid-row:1 / span 2}.doc-steps li span{display:block;max-width:100%;overflow-wrap:normal;word-break:normal}.doc-steps li a{display:inline;white-space:normal}@media(max-width:430px){.doc-steps li{grid-template-columns:32px minmax(0,1fr)}.doc-steps li:before{grid-column:1;grid-row:1 / span 2}.doc-steps li b,.doc-steps li span{grid-column:2}}
