:root{--ink:#183344;--muted:#718392;--line:#e3ebef;--bg:#f5f8fa;--surface:#fff;--primary:#176b87;--primary-dark:#10526a;--teal:#2a8c82;--warning:#a46b16;--danger:#b54545;--shadow:0 12px 32px rgba(25,54,72,.08)}
.sidebar-brand .sidebar-logo{display:block;width:58px;height:40px;object-fit:contain;flex-shrink:0}.sidebar .sidebar-brand strong{font-size:13px;letter-spacing:.08em;line-height:1.5}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Noto Sans Thai",sans-serif;color:var(--ink);background:var(--bg)}body{font-size:14px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.admin-shell{display:flex;min-height:100vh}.sidebar{width:256px;flex:0 0 256px;background:#12394c;color:#c8d9e1;padding:24px 16px;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:11px;color:#fff;padding:4px 10px 26px}.sidebar-brand strong{display:block;letter-spacing:.12em;font-size:16px}.sidebar-brand small{display:block;color:#8eacb8;letter-spacing:.1em;font-size:8px;margin-top:3px}.brand-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#8dd4c7,#2a8c82);display:grid;place-items:center;color:#fff;font-weight:800;font-size:21px;box-shadow:0 6px 16px #0b2c3a66}.brand-mark-small{width:32px;height:32px;border-radius:10px;font-size:17px}.tenant-mini{border:1px solid #ffffff1c;border-radius:10px;padding:11px 12px;display:flex;gap:8px;align-items:center;font-size:12px;color:#e3f2f4;margin-bottom:20px}.status-dot{width:7px;height:7px;border-radius:50%;background:#71d5a9;box-shadow:0 0 0 4px #71d5a91c}.side-nav{display:grid;gap:4px}.nav-item{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;color:#a9c1cb;transition:.15s}.nav-item:hover{background:#ffffff0d;color:#fff}.nav-item.active{background:#ffffff16;color:#fff;box-shadow:inset 3px 0 var(--teal)}.nav-icon{width:20px;text-align:center;font-size:17px;color:#84b8bf}.nav-item.active .nav-icon{color:#8ed7ca}.nav-badge{margin-left:auto;border:1px solid #71d5a966;color:#8ed7ca;padding:2px 5px;border-radius:4px;font-size:9px}.sidebar-bottom{margin-top:auto}.security-note{border-top:1px solid #ffffff1c;padding:18px 8px 0;display:flex;gap:10px;color:#9eb8c1}.security-note span{font-size:21px;color:#79c8bd}.security-note strong{display:block;color:#d9eaec;font-size:11px}.security-note small{font-size:10px}.main-content{min-width:0;flex:1}.topbar{height:70px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;padding:0 32px}.topbar-tools{display:flex;align-items:center;gap:18px}.mobile-brand{display:none}.search-placeholder{border:1px solid var(--line);border-radius:8px;color:#9aabb3;padding:9px 14px;min-width:280px}.search-placeholder:first-letter{font-size:18px;color:var(--primary)}.icon-button{border:0;background:none;color:#607883;position:relative;font-size:21px}.icon-button i{position:absolute;width:6px;height:6px;background:#dd806c;border-radius:50%;top:2px;right:0}.user-chip{display:flex;align-items:center;gap:8px;font-size:12px}.avatar{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#dff2ee;color:var(--teal);font-weight:700}.logout-button{border:0;background:none;color:#8298a1;font-size:20px}.inline-form{display:inline}.page-wrap{max-width:1400px;margin:0 auto;padding:38px 42px 70px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{margin:0 0 7px;color:#7b9aa5;letter-spacing:.14em;font-size:10px;font-weight:700}.page-heading h1{margin:0;font-size:30px;letter-spacing:-.03em}.muted{color:var(--muted);line-height:1.6;margin:7px 0 0}.tenant-switcher{min-width:225px}.tenant-switcher label{color:#80939c;font-size:10px;display:grid;gap:6px}.tenant-switcher select{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 12px;border-radius:8px;outline:0}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;gap:14px;align-items:flex-start;box-shadow:0 4px 12px #17394c08}.stat-card-primary{background:linear-gradient(135deg,#176b87,#2a8c82);border-color:transparent;color:#fff}.stat-card-primary span,.stat-card-primary small{color:#d9f1ee}.stat-icon{width:40px;height:40px;border-radius:11px;background:#e7f2f2;color:var(--teal);display:grid;place-items:center;font-size:20px}.stat-card-primary .stat-icon{background:#ffffff20;color:#fff}.stat-card span{display:block;color:#728891;font-size:11px}.stat-card strong{display:block;font-size:27px;letter-spacing:-.04em;margin:6px 0}.stat-card small{color:#92a4ab;font-size:10px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(330px,1fr);gap:22px;margin-bottom:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:23px;box-shadow:0 4px 12px #17394c08}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.panel-heading h2{font-size:17px;margin:0;letter-spacing:-.02em}.panel-kicker{background:#eef7f6;color:var(--teal);font-size:10px;padding:6px 9px;border-radius:5px}.checklist{display:grid;gap:2px}.check-row{display:flex;align-items:center;gap:12px;padding:12px 6px;border-bottom:1px solid #eff3f4}.check-row:last-child{border-bottom:0}.check{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid #cddce0;color:#87a0a7;font-size:11px;flex:0 0 24px}.check-row.done .check{background:#e3f4ee;border-color:#9ed9c3;color:#2a9871;font-weight:700}.check-row strong{display:block;font-size:12px}.check-row small{display:block;color:#8ca0a8;font-size:10px;margin-top:3px}.check-status{margin-left:auto;color:#2b9875;font-size:10px}.check-status.pending{color:#a47b35}.live-pill{border-radius:20px;background:#edf8f3;color:#31906d;font-size:9px;padding:6px 9px}.live-pill i{display:inline-block;width:6px;height:6px;background:#55ba87;border-radius:50%;margin-right:4px}.status-list{display:grid;gap:18px;margin-top:10px}.status-list>div{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:5px}.status-list strong{font-size:12px}.status-text{font-size:10px;color:#8b9da3}.status-ok{color:#42ad79;font-size:10px}.status-warning{color:#d19a47;font-size:10px}.panel-footer{border-top:1px solid var(--line);margin:20px -23px -23px;padding:14px 23px;display:flex;justify-content:space-between;font-size:10px}.handoff-panel{border-left:3px solid var(--teal)}.text-link{color:var(--primary);font-size:12px}.alert{border-radius:8px;padding:12px 14px;margin-bottom:18px;font-size:12px}.alert-warning{background:#fff7e7;border:1px solid #f1dfb8;color:#8b621d}.alert-danger{background:#fff0f0;border:1px solid #f0cccc;color:#a64242}.module-placeholder{background:#fff;border:1px solid var(--line);border-radius:12px;min-height:370px;display:grid;place-items:center;text-align:center;align-content:center;padding:40px}.module-placeholder h2{margin:2px 0;font-size:25px}.placeholder-icon{width:55px;height:55px;border-radius:16px;background:#e7f2f2;color:var(--teal);display:grid;place-items:center;font-size:26px;margin-bottom:14px}.button{border:0;border-radius:8px;padding:11px 17px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:15px}.button-primary{background:var(--primary);color:#fff}.button-primary:hover{background:var(--primary-dark)}.button-secondary{border:1px solid #bbd3d9;color:var(--primary);background:#fff;margin-top:16px}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 460px;background:#f8fbfc}.login-brand{background:linear-gradient(145deg,#12394c,#176b87);color:#fff;padding:12vh 10vw;position:relative;overflow:hidden}.login-brand:after{content:"";position:absolute;width:480px;height:480px;border:1px solid #ffffff1e;border-radius:50%;right:-220px;bottom:-170px;box-shadow:0 0 0 70px #ffffff08,0 0 0 140px #ffffff04}.login-brand h1{font-size:45px;line-height:1.18;letter-spacing:-.05em;margin:30px 0 18px}.login-brand h1 span{color:#9ee0d1}.login-brand>p:not(.eyebrow){color:#cae0e4;max-width:350px;line-height:1.7}.login-feature{display:flex;gap:10px;align-items:center;color:#d6eceb;font-size:12px;margin-top:25px}.login-feature span:first-child{color:#91ddc6;border:1px solid #91ddc655;width:21px;height:21px;display:grid;place-items:center;border-radius:50%}.login-panel{background:#fff;margin:auto;width:min(100%,380px);padding:35px;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.login-panel h2{font-size:25px;margin:0 0 4px}.stack-form{display:grid;gap:17px;margin-top:28px}.stack-form label{display:grid;gap:7px;font-size:11px;font-weight:700;color:#506c78}.stack-form input{border:1px solid #ccdce1;border-radius:7px;padding:12px;outline:0;color:var(--ink)}.stack-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #176b8718}.stack-form .button{margin-top:5px}.login-note{color:#95a5ab;font-size:10px;text-align:center;margin:24px 0 0;line-height:1.6}.setup-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);width:min(520px,calc(100% - 32px));margin:12vh auto;padding:38px;text-align:center}.setup-card .brand-mark{margin:0 auto 14px}.setup-card h1{font-size:26px;margin:5px 0}.setup-card .lead{color:var(--muted);line-height:1.6}.setup-card code{background:#edf5f5;padding:2px 5px;border-radius:4px;font-size:11px}@media(max-width:1000px){.sidebar{width:220px;flex-basis:220px}.page-wrap{padding:30px 24px}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.sidebar{display:none}.topbar{height:62px;padding:0 16px;justify-content:space-between}.mobile-brand{display:flex;align-items:center;gap:8px;letter-spacing:.1em}.topbar-tools{gap:10px}.search-placeholder{min-width:0;width:36px;border:0;padding:0;font-size:0}.search-placeholder:first-letter{font-size:22px}.user-email{display:none}.page-wrap{padding:25px 16px 45px}.page-heading{align-items:flex-start;display:grid}.page-heading h1{font-size:26px}.tenant-switcher{width:100%}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px;gap:9px}.stat-card strong{font-size:23px}.stat-icon{width:32px;height:32px;font-size:16px}.dashboard-grid{grid-template-columns:1fr}.panel{padding:17px}.panel-footer{margin:17px -17px -17px;padding:12px 17px}.login-shell{display:block;background:#f8fbfc}.login-brand{padding:42px 25px 48px}.login-brand h1{font-size:34px;margin:22px 0 15px}.login-feature{margin-top:14px}.login-panel{width:calc(100% - 32px);margin:-20px auto 30px;position:relative;padding:27px}.setup-card{padding:28px 22px}}
