:root{--color-navy:#14305c;--color-primary:#2459f0;--color-primary-50:#eaf0fe;--color-brand-light:#94bcf4;--color-bg:#f3f7fc;--color-surface:#fff;--color-border:#dce6f5;--color-text-muted:#6b7a99;--color-disabled:#c9d3e3;--color-success:#14a38b;--color-warning:#e59a1a;--color-danger:#e04f4f;--color-info:#2459f0;--font-sans:"Kanit", system-ui, sans-serif;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:20px;--text-xl:26px;--text-kpi:32px;--radius-card:12px;--radius-pill:999px;--shadow-card:0 1px 3px #0f2a5c0f;--sidebar-width:220px;--topbar-height:64px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--text-md);color:var(--color-navy);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0;font-weight:400}h1,h2,h3{margin:0;font-weight:600}a{color:var(--color-primary)}.shell{grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;display:grid}.sidebar{gap:var(--space-4);padding:var(--space-5) var(--space-3);background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.wordmark{padding:var(--space-1) var(--space-2) var(--space-2)}.wordmark img{width:100%;max-width:190px;height:auto;display:block}.nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.nav a{padding:10px var(--space-3);border-radius:var(--radius-pill);color:var(--color-navy);font-size:var(--text-sm);text-decoration:none;display:block}.nav a:hover{background:var(--color-primary-50)}.nav a.active{background:var(--color-primary);color:#fff}.license-card{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);font-size:var(--text-sm)}.license-card .plan{font-weight:600}.meter{height:6px;margin-top:var(--space-2);background:var(--color-primary-50);border-radius:var(--radius-pill);overflow:hidden}.meter>div{background:var(--color-primary);height:100%}.main{flex-direction:column;min-width:0;display:flex}.topbar{height:var(--topbar-height);padding:0 var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.org-name{font-weight:500}.topbar-user{align-items:center;gap:var(--space-4);display:flex}.topbar-user>span{text-align:right;flex-direction:column;line-height:1.2;display:flex}.topbar-user small{color:var(--color-text-muted);font-size:var(--text-xs)}.content{padding:var(--space-5)}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.page-header h1{font-size:var(--text-xl)}.page-header p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-5)}.badge{border-radius:var(--radius-pill);font-size:var(--text-xs);background:var(--color-primary-50);color:var(--color-primary);padding:2px 10px;font-weight:500;display:inline-block}.badge.success{background:color-mix(in srgb, var(--color-success) 12%, white);color:var(--color-success)}.badge.warning{background:color-mix(in srgb, var(--color-warning) 14%, white);color:#a86a00}.badge.danger{background:color-mix(in srgb, var(--color-danger) 12%, white);color:var(--color-danger)}.btn{align-items:center;gap:var(--space-2);padding:10px var(--space-4);border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;font:inherit;font-size:var(--text-sm);cursor:pointer;border-radius:10px;font-weight:500;display:inline-flex}.btn.secondary{background:var(--color-surface);color:var(--color-primary)}.btn:disabled{background:var(--color-disabled);border-color:var(--color-disabled);color:#fff;cursor:not-allowed}.state{padding:var(--space-6);text-align:center;color:var(--color-text-muted)}.state h2{font-size:var(--text-lg);color:var(--color-navy);margin-bottom:var(--space-2)}table.data{border-collapse:collapse;width:100%;font-size:var(--text-sm)}table.data th{text-align:left;color:var(--color-text-muted);padding:var(--space-3);border-bottom:1px solid var(--color-border);font-weight:500}table.data td{padding:var(--space-3);border-bottom:1px solid var(--color-border)}.auth-page{background:radial-gradient(1200px 600px at 85% 20%, #e3eeff 0%, transparent 60%), linear-gradient(180deg, #f7faff 0%, var(--color-bg) 100%);flex-direction:column;min-height:100vh;display:flex}.auth-logo{padding:36px 56px 0}.auth-logo img{width:auto;height:48px;display:block}.auth-layout{flex:1;grid-template-columns:minmax(360px,560px) 1fr;align-items:center;gap:64px;padding:24px 56px 48px 140px;display:grid}.auth-layout--center{grid-template-columns:minmax(320px,520px);justify-content:center;padding-left:56px}.auth-card{background:var(--color-surface);border:1px solid #bcd4f7;border-radius:16px;padding:44px 40px 40px;box-shadow:0 10px 30px #2f5bea0f}.auth-card h1{font-size:40px;line-height:1.2}.auth-subtitle{color:var(--color-text-muted);margin:6px 0 28px;font-size:18px}.field{margin-bottom:20px;display:block}.field-label{margin-bottom:8px;font-size:16px;font-weight:500;display:block}.input-wrap{background:var(--color-surface);height:54px;color:var(--color-navy);border:1px solid #c6d6ee;border-radius:10px;align-items:center;gap:12px;padding:0 14px 0 16px;display:flex}.input-wrap:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-50)}.input-wrap input{min-width:0;font:inherit;color:var(--color-navy);background:0 0;border:0;outline:0;flex:1;font-size:16px}.input-wrap input::placeholder{color:#8a97b1}.icon-button{color:var(--color-navy);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px;display:inline-flex}.auth-row{justify-content:space-between;align-items:center;margin:4px 0 20px;font-size:16px;display:flex}.auth-row a{font-weight:500;text-decoration:none}.checkbox{cursor:pointer;align-items:center;gap:10px;display:inline-flex}.checkbox input{width:22px;height:22px;accent-color:var(--color-primary)}.auth-notice{background:var(--color-primary-50);color:var(--color-navy);border-radius:10px;margin:0 0 16px;padding:10px 14px;font-size:14px}.auth-notice--error{background:color-mix(in srgb, var(--color-danger) 10%, white);color:#b3261e}.btn-block{justify-content:center;width:100%;height:54px;font-size:18px;text-decoration:none}.divider{color:var(--color-text-muted);align-items:center;gap:16px;margin:28px 0 20px;font-size:16px;display:flex}.divider:before,.divider:after{content:"";background:var(--color-border);flex:1;height:1px}.auth-aside h2{font-size:42px;line-height:1.3}.auth-aside p{color:var(--color-text-muted);margin:12px 0 8px;font-size:20px;line-height:1.6}.auth-illustration{width:100%;max-width:680px;height:auto;display:block;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 10% 90%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 10% 90%,#0000 100%)}@media (width<=960px){.auth-logo{padding:24px 20px 0}.auth-logo img{height:36px}.auth-layout{grid-template-columns:1fr;padding:20px 16px 32px}.auth-aside{display:none}.auth-card{padding:32px 22px}.auth-card h1{font-size:32px}}.site{background:var(--color-surface);flex-direction:column;min-height:100vh;display:flex}.site-header{align-items:center;gap:var(--space-6);background:var(--color-surface);padding:20px 56px;display:flex}.site-header img{width:auto;height:40px;display:block}.site-nav{gap:var(--space-6);margin-left:auto;display:flex}.site-nav a{color:var(--color-navy);font-size:var(--text-md);text-decoration:none}.site-nav a:hover{color:var(--color-primary)}.site-actions{gap:var(--space-3);padding-left:var(--space-5);border-left:1px solid var(--color-border);display:flex}.site-actions .btn,.hero-ctas .btn{white-space:nowrap;text-decoration:none}main{flex:1}.hero{background:radial-gradient(700px 420px at 78% 40%, #dfeafe 0%, transparent 70%), linear-gradient(180deg, #f5f9ff 0%, var(--color-bg) 100%);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:48px;padding:64px 56px 72px;display:grid}.hero h1{font-size:clamp(34px,3.6vw,52px);line-height:1.2}.hero-lead{color:#3e5378;margin:12px 0 0;font-size:clamp(20px,2vw,28px)}.hero-body{color:var(--color-text-muted);margin:20px 0 0;font-size:18px;line-height:1.7}.hero-ctas{gap:var(--space-4);margin-top:36px;display:flex}.btn-lg{justify-content:center;height:56px;padding:0 32px;font-size:18px}.hero-preview{margin:0}.hero-preview img{border:1px solid #c9dbf6;border-radius:16px;width:100%;height:auto;display:block;box-shadow:0 24px 60px #14305c24}.feature-grid{gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:-24px;padding:0 56px 64px;display:grid}.feature-card{gap:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:16px;padding:28px;display:flex}.feature-icon{background:var(--color-primary-50);width:72px;height:72px;color:var(--color-primary);border-radius:50%;flex:none;place-items:center;display:grid}.feature-icon svg{width:34px;height:34px}.feature-card h2{margin-bottom:8px;font-size:22px}.feature-card p{color:var(--color-text-muted);margin:0;line-height:1.6}.site-footer{align-items:center;gap:var(--space-6);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-sm);padding:24px 56px;display:flex}.site-footer img{width:auto;height:28px;display:block}.site-footer nav{gap:var(--space-5);margin-left:auto;display:flex}.site-footer a{color:var(--color-text-muted);text-decoration:none}@media (width<=1024px){.site-nav{display:none}.site-actions{border-left:0;margin-left:auto}.hero{grid-template-columns:1fr;padding:40px 20px 56px}.feature-grid{grid-template-columns:1fr;padding:0 20px 48px}}@media (width<=640px){.site-header{padding:16px 20px}.site-header img{height:30px}.site-actions{padding-left:0}.site-actions .btn.secondary{display:none}.site-actions .btn{padding:8px 14px}.hero-ctas{flex-direction:column}.site-footer{flex-direction:column;align-items:flex-start;padding:24px 20px}.site-footer nav{flex-wrap:wrap;margin-left:0}}.nowrap{white-space:nowrap}
