@import url('https://fonts.googleapis.com/css2?family=Sarabun:wght@400;500;600;700;800&display=swap');
:root{--ink:#27304c;--muted:#8590a6;--purple:#6557d7;--purple-deep:#4f45ae;--lavender:#eeecfc;--line:#e9eaf3;--green:#2eaa92;--orange:#ff996d;--bg:#f5f6fc}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 'Sarabun',sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:var(--purple);text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f4b861;outline-offset:4px}input:focus,select:focus,textarea:focus{outline:2px solid #b5aafa;outline-offset:1px}h1,h2,h3,p{margin:0}h1{font-size:29px;font-weight:700;letter-spacing:-.6px;line-height:1.4}h2{font-size:17px;font-weight:700}h3{font-size:15px;margin:22px 0 10px}p{color:var(--muted)}.sidebar{width:244px;background:white;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:32px 19px;z-index:5;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);padding:0 7px}.brand img{width:53px;height:53px;object-fit:contain}.brand span{font-size:23px;letter-spacing:1px;font-weight:700}.brand b{color:var(--purple)}.brand small{display:block;font-size:11px;font-weight:400;letter-spacing:0;color:#80869b;margin-top:-2px}.nav-label{font-size:9px;letter-spacing:1.5px;color:#9da4b9;margin:43px 15px 17px}.nav-item{display:flex;align-items:center;gap:14px;padding:12px 15px;border-radius:11px;color:#858ca3;margin:5px 0;font-size:13px}.nav-item>span{font-size:23px;width:23px;text-align:center;font-family:Arial,sans-serif;line-height:1}.nav-item:hover{background:#f7f6fe;color:var(--purple)}.nav-item.active{background:var(--purple);color:white;box-shadow:0 7px 15px #6557d72a}.side-note{margin-top:auto;padding:20px 11px 0;color:#616c86;font-size:11px;border-top:1px solid var(--line)}.side-note small{color:#9ba3b5;font-size:10px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:5px}.main{margin-left:244px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:88px;background:#ffffffc9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:20px}.breadcrumb{font-size:10px;color:#9ca3b7;display:block;margin-bottom:2px}.topbar strong{font-size:13px;font-weight:500}.account{display:flex;align-items:center;gap:12px;font-size:12px}.account small{display:block;color:#9aa2b3;font-size:10px}.avatar{width:35px;height:35px;border-radius:50%;background:#eeebff;color:var(--purple);display:grid;place-items:center;font-weight:700}.icon-btn{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;color:#8f98ad}.text-btn{border:0;background:none;color:var(--purple);padding:7px;font-size:12px}.content{padding:32px 36px;max-width:1620px;width:100%;margin:auto;flex:1}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:4px 0 25px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.7px;color:#9b92ce;margin-bottom:8px}.page-heading p{font-size:12px;margin-top:6px}.heading-tag{background:white;border:1px solid var(--line);padding:9px 13px;border-radius:9px;font-size:11px;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--purple);border:1px solid transparent;color:white;border-radius:9px;padding:10px 18px;font-weight:500;font-size:13px;box-shadow:0 4px 10px #6557d71c;white-space:nowrap}.btn:hover{background:var(--purple-deep)}.btn.secondary{background:white;color:var(--purple);border:1px solid #dedaf8;box-shadow:none}.btn.small{padding:8px 14px;font-size:12px}.btn.full{display:flex;width:100%;padding:13px}.filter-bar{display:flex;flex-wrap:wrap;align-items:end;gap:13px;background:#eeedf9;border:1px solid #e6e3f7;border-radius:13px;padding:15px 18px;margin-bottom:23px}.filter-bar label{font-size:10px;color:#817b9f;min-width:130px;flex:1;gap:4px}.filter-bar label:nth-of-type(3){flex:1.5}.filter-bar select{background:white;border:1px solid #e4e0f4;font-size:12px;padding:8px 12px;color:#555975}.filter-bar .btn{padding:9px 18px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:23px 0}.stat-card{background:white;border:1px solid #efedf7;border-radius:16px;padding:21px 22px;position:relative;overflow:hidden;box-shadow:0 5px 18px #35347503}.stat-card:after{content:'';position:absolute;width:86px;height:86px;border-radius:50%;right:-29px;bottom:-36px;background:#f8f7fd}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:5px;color:#8b90a7;font-size:12px}.stat-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#eeeafb;color:var(--purple);font-size:20px}.stat-value{font-size:35px;line-height:1.3;font-weight:700;margin:13px 0 7px;letter-spacing:-1px}.stat-card small{color:#a0a5b6;font-size:10px}.stat-1 .stat-icon{background:#e6f7f1;color:#29a68a}.stat-2 .stat-icon{background:#fff0e8;color:#ef9368}.stat-3 .stat-icon{background:#eaf2ff;color:#638bd2}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;margin-bottom:20px}.panel{background:white;border:1px solid #edecf5;border-radius:16px;padding:25px;margin-bottom:20px;box-shadow:0 5px 20px #3c345503}.dashboard-grid .panel{margin-bottom:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px}.panel-heading p{font-size:11px;margin-top:3px}.soft-label{font-size:9px;color:#a196d1;background:#f6f4fd;border-radius:6px;padding:5px 9px;white-space:nowrap}.bar-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(70px,2fr) 48px;gap:16px;align-items:center;margin:18px 0;font-size:11px}.bar-row>span{color:#78819a}.bar-row strong{text-align:right;font-size:12px;font-weight:600;color:#66617e}.bar-track{background:#f5f3fc;border-radius:5px;height:13px;overflow:hidden}.bar-fill{height:100%;border-radius:5px;min-width:0;transition:width .5s ease;background:#8c7deb}.bar-fill.tone-1{background:#b4a7fa}.bar-fill.tone-2{background:#ffaf8b}.bar-fill.tone-3{background:#6bc5b5}.chart-unit{font-size:10px;text-align:right;color:#adb1bf;margin-top:20px}.ring{width:174px;height:174px;border-radius:50%;background:conic-gradient(var(--purple) var(--pct),#efedfc 0);margin:25px auto 20px;display:grid;place-items:center;transform:rotate(-90deg)}.ring>div{width:145px;height:145px;border-radius:50%;background:white;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(90deg)}.ring strong{font-size:33px;font-weight:600;letter-spacing:-1px}.ring span{font-size:10px;color:#a8a1c1;margin-top:4px}.ring-caption{text-align:center;font-size:11px;color:#8a83a3}.legend-dot{display:inline-block;width:8px;height:8px;background:var(--purple);border-radius:3px;margin-right:5px}.mini-note{padding:12px 14px;background:#f8f7fc;color:#928ba7;border-radius:8px;font-size:11px;line-height:1.8;margin-top:18px}.work-strip{display:flex;align-items:center;gap:22px;padding:12px 17px;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:11px;flex-wrap:wrap}.work-strip strong{color:#79718e}.work-strip a{color:#8c88a0}.work-strip b{color:var(--purple);margin-left:8px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-weight:500;color:#9b9bb2;background:#f8f7fc;font-size:11px;padding:13px 13px;white-space:nowrap}td{padding:15px 13px;border-bottom:1px solid #f0eef6;vertical-align:middle;color:#787d94}td strong{display:block;font-size:12px;color:#555c76;font-weight:500}td small{display:block;font-size:10px;color:#a1a6b6;margin-top:4px}.num{text-align:right;font-variant-numeric:tabular-nums}tfoot th,tfoot td{background:#f6f4fc;color:var(--purple);font-weight:600}.table-link{font-size:11px;white-space:nowrap}.badge{display:inline-block;border-radius:6px;padding:4px 9px;background:#f0edf9;color:#9489b3;font-size:10px;white-space:nowrap}.badge.approved{background:#e8f8f0;color:#399c80}.badge.submitted{background:#fff3dc;color:#b39552}.badge.returned{background:#fff0e9;color:#d78568}.public-note{color:#9399ad;font-size:11px;padding:8px 2px;line-height:1.9}.site-footer{border-top:1px solid #e9e6f2;margin:10px 36px 0;padding:23px 0;display:flex;align-items:center;gap:13px;color:#8e8aa2;font-size:11px}.site-footer img{width:53px;height:53px;object-fit:contain}.site-footer strong{color:#6e648e;font-size:12px;display:block}.site-footer span{display:block;font-size:10px;line-height:1.9}.footer-right{margin-left:auto;text-align:right;font-size:9px;letter-spacing:1px;color:#b2adc1}.footer-right small{display:block;font-size:9px;letter-spacing:0;margin-top:6px}.empty{text-align:center;padding:37px 15px;color:#b0a6c9}.empty h3{font-size:14px;font-weight:500;margin:10px 0 4px;color:#8f86a8}.empty p{font-size:11px}.empty-icon{font-size:40px;color:#c9c0eb}.alert{background:#eeebfc;border:1px solid #dfd9f6;color:#7766a8;padding:14px 18px;border-radius:10px;margin-bottom:20px;font-size:12px}.alert.error{background:#fff1ed;color:#ad6b58;border-color:#f7ded7}.credential{font-size:14px;line-height:2}.credential code{font-size:19px;font-weight:600}label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#7b7790}label b{color:#b39edb}input,select,textarea{width:100%;background:#fff;border:1px solid #e3dfed;border-radius:8px;padding:10px 12px;color:#55586e;min-width:0}textarea{resize:vertical}input::placeholder{color:#b3aec2}form>label{margin-bottom:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.span-2{grid-column:span 2}.section-heading{display:flex;gap:13px;align-items:center;margin-bottom:25px}.section-heading>span{width:34px;height:34px;background:#eeeafa;color:var(--purple);border-radius:10px;display:grid;place-items:center;font-weight:600;font-size:11px}.section-heading p{font-size:11px;margin-top:3px}.form-banner{display:flex;align-items:center;gap:15px;padding:20px 23px;background:linear-gradient(120deg,#eee9fd,#f5effd);border:1px solid #e5def8;border-radius:13px;margin-bottom:23px}.form-banner p{font-size:11px;margin-top:3px}.form-banner strong{font-size:14px;color:#746195}.form-banner>.soft-label{margin-left:auto;background:white}.form-banner-icon{font-size:30px;color:#a497cb}.input-table{margin-top:22px}.input-table input{max-width:130px;text-align:right}.input-table td{padding:10px 13px}.field-note{font-size:11px;color:#a09ab0;margin:9px 0 19px}.form-actions{position:sticky;bottom:12px;z-index:3;border:1px solid #e5def5;background:#ffffffed;backdrop-filter:blur(12px);border-radius:12px;padding:15px 19px;display:flex;justify-content:flex-end;gap:12px;align-items:center;box-shadow:0 5px 25px #49406210}.form-actions>span{margin-right:auto;font-size:11px;color:#a599b9}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.detail-grid small{display:block;color:#aaa3b5;font-size:10px}.detail-grid strong{font-size:13px;color:#736982;font-weight:500;display:block;margin-top:4px}.button-row{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.review-panel{border-color:#d7cef2}.review-panel .button-row{margin-top:16px}.prewrap{white-space:pre-wrap;font-size:12px;color:#8b8297}.inline{display:inline}.narrow{max-width:580px}.align-end{display:flex;align-items:end}.panel summary{cursor:pointer;color:#8470b1;font-size:14px}.panel-heading input{max-width:300px}.login-body{background:radial-gradient(ellipse at 20% 10%,#e0dbff,transparent 50%),radial-gradient(ellipse at 90% 95%,#e9e0fa,transparent 50%),#f4f2fb;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:45px 20px}.login-card{width:450px;background:#ffffffed;border:1px solid white;border-radius:24px;padding:34px 42px;box-shadow:0 25px 80px #76629918;text-align:center}.login-card h1{font-size:26px}.login-card p{font-size:12px;margin:10px 0 25px}.login-card form{text-align:left}.login-card label{font-size:12px}.login-logo{width:112px;height:112px;object-fit:contain;margin:0 auto 18px}.login-card .eyebrow{margin-bottom:9px}.login-card .mini-note{margin-top:22px}.back-link{position:absolute;top:20px;left:24px;color:#9c8bb5;font-size:12px}.login-credit{border-top:1px solid var(--line);padding-top:18px;margin-top:24px;font-size:10px;color:#aaa2b8;line-height:1.9}.login-credit strong{font-weight:500;color:#8c7ea3}.print-header{display:none}body:has(.login-card){margin:0}@media(min-width:1700px){.content{padding-top:40px}}@media(max-width:1150px){.sidebar{width:210px;padding:25px 13px}.main{margin-left:210px}.content{padding:25px}.topbar{padding:0 25px}.stat-card{padding:17px}.stat-top{font-size:11px}.soft-label{white-space:normal}.dashboard-grid{grid-template-columns:1.3fr 1fr}.account>span{max-width:160px}.site-footer{margin-left:25px;margin-right:25px}.footer-right{display:none}}@media(max-width:900px){.stats-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start}.heading-tag{display:none}.account>span{display:none}.form-grid.three{grid-template-columns:1fr 1fr}.bar-row{grid-template-columns:150px 1fr 50px}.detail-grid{grid-template-columns:1fr 1fr}.filter-bar label{min-width:110px}.filter-bar .text-btn{display:none}.form-banner>.soft-label{display:none}.form-actions>span{display:none}.panel-heading{flex-wrap:wrap}h1{font-size:24px}}@media(max-width:640px){.sidebar{position:static;width:100%;padding:14px 17px;border-right:0;border-bottom:1px solid var(--line)}.brand img{width:40px;height:40px}.brand span{font-size:20px}.nav-label,.side-note{display:none}.sidebar nav{display:flex;overflow:auto;margin-top:15px;gap:6px}.nav-item{flex-shrink:0;padding:8px 12px;font-size:11px;margin:0;border-radius:8px}.nav-item>span{font-size:17px;width:17px}.main{margin-left:0}.topbar{height:65px;padding:0 18px}.content{padding:22px 16px}.page-heading{flex-direction:column;gap:13px}.stats-grid{gap:12px;margin:17px 0}.stat-card{padding:15px}.stat-value{font-size:29px}.stat-icon{width:27px;height:27px;font-size:17px}.stat-top{font-size:10px}.stat-card small{font-size:9px}.panel{padding:19px;border-radius:13px}.filter-bar{padding:12px;gap:10px}.filter-bar label{flex:1 1 40%;min-width:0}.filter-bar .btn{width:100%}.bar-row{grid-template-columns:115px 1fr 37px;gap:10px;font-size:10px}.form-grid,.form-grid.three{grid-template-columns:1fr}.span-2{grid-column:auto}.form-actions{padding:12px;bottom:5px}.form-actions .btn{font-size:12px;padding:10px 12px;flex:1}.form-banner{padding:17px}.account{gap:6px}.account .avatar,.account .icon-btn{display:none}.account .text-btn{font-size:10px}.topbar strong{font-size:11px}.site-footer{margin:0 16px;padding:22px 0;gap:10px}.site-footer img{width:43px;height:43px}.site-footer strong{font-size:11px}.site-footer span{font-size:9px}.login-card{padding:27px 24px}.work-strip{gap:12px}.panel-heading input{max-width:none}.button-row .btn{width:100%}h1{font-size:23px}}@media print{@page{size:A4;margin:14mm}.sidebar,.topbar,.filter-bar,.page-heading,.no-print,.form-actions,button,.alert,.site-footer,.field-note{display:none!important}.main{margin:0}.content{padding:0;max-width:none}.print-header{display:block;text-align:center;margin-bottom:25px}.print-header img{width:60px;height:60px}.print-header p{font-size:10px;color:#555}.dashboard-grid{display:block}.panel{border:1px solid #ddd;box-shadow:none;padding:14px;border-radius:0;break-inside:avoid;margin-bottom:15px!important}.table-scroll{overflow:visible}table{font-size:9px}th,td{padding:7px 5px}.bar-fill{print-color-adjust:exact;-webkit-print-color-adjust:exact}body{background:white;color:#222}.panel h2{font-size:13px}.bar-row{margin:9px 0;grid-template-columns:170px 1fr 45px}.chart-unit{font-size:8px}}

/* Public landing page: full-width dashboard with staff entry in the header. */
.public-layout .main{margin-left:0}.public-layout .topbar{height:98px;padding:0 max(32px,calc((100vw - 1500px)/2));gap:24px;background:#fff}.public-brand{display:flex;gap:13px;align-items:center;color:var(--ink)}.public-brand img{width:59px;height:59px;object-fit:contain}.public-brand strong{font-size:20px!important;font-weight:700!important;letter-spacing:1.2px;color:var(--purple-deep)}.public-brand small{display:block;font-size:11px;color:#9290a8;margin-top:2px}.public-links{display:flex;gap:24px;margin-left:auto;font-size:12px}.public-links a{color:#8c86a3}.public-links a:hover{color:var(--purple)}.public-layout .content{max-width:1500px;padding:35px 32px}.public-layout .page-heading{margin-top:5px;margin-bottom:27px}.public-layout .site-footer{width:calc(100% - 64px);max-width:1436px;margin:10px auto 0}.public-layout .dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr)}
@media(max-width:1000px){.public-layout .topbar{padding:0 24px}.public-links{gap:15px}.public-brand small{max-width:235px;font-size:10px}.public-layout .dashboard-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.public-links{display:none}.public-layout .topbar{height:auto;min-height:87px;padding:15px 18px;gap:12px;flex-wrap:wrap}.public-brand img{width:45px;height:45px}.public-brand strong{font-size:17px!important}.public-brand small{font-size:9px;max-width:210px}.public-layout .account{margin-left:auto}.public-layout .account .btn{font-size:11px;padding:9px 11px}.public-layout .content{padding:24px 16px}.public-layout .dashboard-grid{grid-template-columns:1fr}.public-layout .site-footer{width:calc(100% - 32px)}}@media print{.public-layout .main{margin:0}.public-layout .content{max-width:none;padding:0}}
/* Color refresh — violet identity with emerald, coral and blue data cards. */
body{background:radial-gradient(ellipse at 5% 0%,#e5e0ff 0,transparent 36%),radial-gradient(ellipse at 95% 38%,#e2f4f5 0,transparent 35%),#f4f5fc}
.public-layout .topbar{border-bottom:3px solid #ece6ff;box-shadow:0 4px 25px #4a34900a}.public-brand strong{color:#5940c3!important}.public-links a{color:#64547e;font-weight:600}.public-layout .account>.btn{background:linear-gradient(110deg,#7550da,#5140b4);box-shadow:0 5px 15px #6945c92e}
.public-layout .page-heading{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;padding:39px 38px;min-height:190px;background:radial-gradient(ellipse at 100% 0%,#4d9fa977,transparent 50%),linear-gradient(115deg,#34265e 0%,#6645b5 58%,#8470dc 100%);box-shadow:0 16px 30px #51368c22;margin-bottom:24px;align-items:center}.public-layout .page-heading:before{content:'';position:absolute;z-index:-1;width:290px;height:290px;right:9%;top:-175px;border:45px solid #ffffff09;border-radius:50%}.public-layout .page-heading:after{content:'';position:absolute;z-index:-1;width:260px;height:260px;right:-65px;bottom:-190px;border:45px solid #ffffff0d;border-radius:50%}.public-layout .page-heading h1{color:white;font-size:33px;letter-spacing:-.6px;max-width:830px}.public-layout .page-heading .eyebrow{color:#e2d2ff;font-size:10px;letter-spacing:2px;margin-bottom:12px}.public-layout .page-heading p{color:#e2d8f6;font-size:13px;margin-top:13px}.public-layout .heading-tag{background:#ffffff16;border:1px solid #ffffff3b;color:#f9f6ff;border-radius:30px;padding:10px 15px;backdrop-filter:blur(4px)}.public-layout .heading-tag .status-dot{background:#74edc9;box-shadow:0 0 0 4px #74edc91c}
.filter-bar{background:#ffffffdd;border:1px solid #e3ddf4;box-shadow:0 5px 20px #60479a08;border-radius:15px;padding:18px 21px;border-left:4px solid #8f6ce3}.filter-bar label{color:#786394;font-weight:500}.filter-bar select{background:#faf9ff;color:#605076}.filter-bar .btn{background:#7554cc}
.stats-grid{gap:20px;margin:25px 0}.stat-card{border:0;border-radius:18px;padding:24px 25px;box-shadow:0 10px 20px #6250ac18;min-height:173px;isolation:isolate}.stat-card:after{width:150px;height:150px;right:-25px;bottom:-85px;background:#ffffff12;z-index:-1;box-shadow:0 0 0 22px #ffffff07}.stat-card.stat-0{background:linear-gradient(120deg,#7d5fe0,#6050c0)}.stat-card.stat-1{background:linear-gradient(120deg,#289d92,#1b827e)}.stat-card.stat-2{background:linear-gradient(120deg,#e98a60,#d66b53)}.stat-card.stat-3{background:linear-gradient(120deg,#5e8ed8,#4c6ebc)}.stat-card .stat-top{color:#ffffffe8;font-size:13px}.stat-card .stat-icon{background:#ffffff25;color:white!important;border:1px solid #ffffff24;width:37px;height:37px;border-radius:12px}.stat-card .stat-value{color:white;font-size:40px;font-weight:700;margin:10px 0 5px;line-height:1.25}.stat-card small{color:#ffffffd9;font-size:11px}
.panel{border-color:#e9e3f3;border-radius:18px;box-shadow:0 7px 25px #4a346308}.panel-heading h2{color:#55406e;font-size:18px}.panel-heading p{color:#9d8eae}.panel-heading:before{content:'';width:5px;height:32px;border-radius:8px;background:linear-gradient(#8d66dc,#b4a0ef);flex-shrink:0}.panel-heading>div:first-of-type{margin-right:auto}.panel-heading{gap:12px}.panel-heading .soft-label{background:#f0eafb;color:#8a65b5;font-size:9px;border:1px solid #e8def8}.dashboard-grid>.panel:nth-child(2) .panel-heading:before{background:linear-gradient(#f2a77c,#efc49d)}.bar-track{background:#f0edf8;height:15px;border-radius:5px}.bar-fill{background:linear-gradient(90deg,#aa8bec,#7957cd)}.bar-fill.tone-1{background:linear-gradient(90deg,#71cdc0,#2d9f92)}.bar-fill.tone-2{background:linear-gradient(90deg,#ffc399,#ee9268)}.bar-fill.tone-3{background:linear-gradient(90deg,#8eb4ef,#5c86ce)}.bar-row>span{color:#756586}.bar-row strong{color:#5e4976}.ring{background:conic-gradient(#8a62db var(--pct),#efe8fa 0);box-shadow:0 0 0 10px #faf7ff,0 0 0 11px #f0e9fa}.ring strong{color:#6b48aa}.ring-caption{color:#826d9c}.legend-dot{background:#8a62db}.mini-note{background:#f8f4ff;color:#8b76a2;border-left:3px solid #d8c3f3}.public-note{background:#eaf4f2;border:1px solid #d5e9e3;border-radius:12px;padding:15px 20px;color:#658b80;margin-top:23px;font-size:11px}.site-footer{border-top:2px solid #e2d8f4}.site-footer strong{color:#785796}.site-footer img{filter:drop-shadow(0 3px 5px #6a468629)}.soft-label{color:#8962b5}.btn{background:#7554cc}.btn:hover{background:#6040b5}.login-body .btn{background:linear-gradient(100deg,#825ed8,#6244bc)}
@media(max-width:1100px){.stat-card{padding:21px}.stat-card .stat-value{font-size:35px}.public-layout .page-heading h1{font-size:29px}.public-layout .page-heading{padding:32px}.stat-card .stat-top{font-size:12px}}
@media(max-width:760px){.public-layout .page-heading{padding:26px 23px;min-height:170px;border-radius:18px}.public-layout .page-heading h1{font-size:25px}.public-layout .page-heading .eyebrow{font-size:8px;letter-spacing:1.4px}.public-layout .page-heading p{font-size:11px;line-height:1.8;max-width:290px}.stat-card{padding:18px;min-height:157px}.stat-card .stat-value{font-size:34px}.stat-card .stat-top{font-size:11px}.stat-card .stat-icon{width:29px;height:29px;font-size:17px}.stat-card small{font-size:9px}.stats-grid{gap:12px}.panel-heading h2{font-size:16px}.panel-heading p{font-size:10px}.filter-bar{padding:15px}.public-note{padding:14px;font-size:10px}}
@media print{body{background:white}.public-layout .page-heading{display:none}.stat-card{background:white!important;box-shadow:none;color:#222;border:1px solid #ccc}.stat-card .stat-value,.stat-card .stat-top,.stat-card small{color:#222}.panel-heading:before{display:none}.panel{box-shadow:none}.mini-note{border:0}.public-note{background:white;border:0}}

/* Readability update */
body{font-size:16px}h1{font-size:32px}h2,.panel-heading h2{font-size:21px}h3{font-size:18px}label,.filter-bar label{font-size:15px}input,select,textarea,.filter-bar select{font-size:16px;padding:12px 14px}.btn,.btn.small,.text-btn,.table-link{font-size:15px}.nav-item{font-size:15px}.stat-card .stat-value{font-size:48px;font-variant-numeric:tabular-nums;letter-spacing:0}.stat-card .stat-top{font-size:16px}.stat-card small{font-size:13px}.stat-card{min-height:190px}.bar-row{font-size:14px;grid-template-columns:minmax(150px,1fr) minmax(70px,2fr) 65px}.bar-row strong{font-size:18px;color:#49355f;font-variant-numeric:tabular-nums}.bar-track{height:19px}.ring strong{font-size:40px}.ring span,.ring-caption,.chart-unit{font-size:14px}.panel-heading p,.page-heading p,.mini-note,.field-note,.public-note{font-size:14px}table{font-size:15px}th{font-size:14px}td strong{font-size:15px}td small,.badge{font-size:13px}.num{font-size:17px;font-weight:600;color:#544466}.account{font-size:14px}.account small{font-size:12px}.site-footer strong{font-size:15px}.site-footer span{font-size:13px}.login-card label{font-size:16px}.login-card p{font-size:15px}.login-credit{font-size:13px}.public-brand small{font-size:13px}.public-links{font-size:15px}.public-layout .page-heading p{font-size:16px}.public-layout .account .btn{font-size:14px}.staff-layout .topbar{height:auto;min-height:88px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
@media(max-width:760px){.stat-card .stat-value{font-size:39px}.stat-card .stat-top{font-size:14px}.stat-card small{font-size:12px}.stat-card{padding:17px;min-height:175px}.bar-row{grid-template-columns:115px 1fr 45px;font-size:13px;gap:10px}.bar-row strong{font-size:16px}.panel-heading h2{font-size:19px}.public-layout .page-heading p{font-size:14px}.public-brand small{font-size:11px}.site-footer span{font-size:11px}.nav-item{font-size:13px}.account .icon-btn{display:grid}.filter-bar select{font-size:15px}.public-layout .account .btn{font-size:13px}}
@media print{body,table{font-size:10px}th,td strong{font-size:10px}.num{font-size:11px}.bar-row{font-size:10px}.bar-row strong{font-size:11px}}

.insight-ribbon{display:grid;grid-template-columns:1.3fr 1fr 1fr;background:#fff;border:1px solid #e6def4;border-radius:16px;margin:0 0 24px;padding:24px 12px;box-shadow:0 5px 18px #63489708}.insight-ribbon>div{padding:0 24px;border-right:1px solid #eee8f7}.insight-ribbon>div:last-child{border:0}.insight-ribbon span{display:block;font-size:15px;color:#877499}.insight-ribbon strong{display:block;font-size:31px;color:#6c4cb1;font-variant-numeric:tabular-nums;margin-top:5px}.insight-ribbon>div:nth-child(2) strong{color:#467dc4}.insight-ribbon>div:nth-child(3) strong{color:#bd6597}.insight-ribbon small{font-size:13px;font-weight:400;color:#9b8ea8}.outcome-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.outcome-tile{position:relative;overflow:hidden;background:linear-gradient(125deg,#f0e9ff,#f9f5ff);border:1px solid #e7dcfa;padding:21px;border-radius:14px;color:#7753ac}.outcome-tile strong{display:block;font-size:35px;line-height:1.3;font-variant-numeric:tabular-nums;margin:7px 0}.outcome-tile>span:not(.outcome-index){display:block;font-size:15px}.outcome-tile small{font-size:12px;opacity:.7}.outcome-index{position:absolute;right:15px;top:12px;opacity:.25;font-size:26px;font-weight:700}.outcome-1,.outcome-4{background:linear-gradient(125deg,#e4f6f0,#f4fcf9);border-color:#d4eee3;color:#328c78}.outcome-2,.outcome-5{background:linear-gradient(125deg,#fff0e1,#fff9f2);border-color:#f6e2cd;color:#bd8053}.outcome-3,.outcome-6{background:linear-gradient(125deg,#e7effc,#f5f8ff);border-color:#d9e5fa;color:#557fb9}.filter-bar input[type=search]{font-size:15px;background:#faf9ff}.filter-bar label:has(input[type=search]){min-width:190px}
@media(max-width:1000px){.outcome-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.insight-ribbon strong{font-size:26px}.insight-ribbon>div{padding:0 16px}}@media(max-width:640px){.outcome-tiles{grid-template-columns:1fr 1fr;gap:10px}.outcome-tile{padding:17px}.outcome-tile strong{font-size:32px}.outcome-tile>span:not(.outcome-index){font-size:14px}.insight-ribbon{grid-template-columns:1fr;padding:4px 20px}.insight-ribbon>div{padding:16px 0;border-right:0;border-bottom:1px solid #eee8f7}.insight-ribbon strong{font-size:29px}.filter-bar label:has(input[type=search]){flex-basis:100%}}
@media print{.insight-ribbon,.outcome-tile{box-shadow:none;background:white;break-inside:avoid}.outcome-tiles{grid-template-columns:repeat(4,1fr)}}

.gender-legend{display:flex;justify-content:center;gap:22px;margin:10px 0 20px;font-size:14px;color:#847394}.gender-legend i,.income-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px}.male-dot{background:#6c91df}.female-dot{background:#c47ead}.gender-chart{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:20px 12px 0;background:repeating-linear-gradient(to top,#f0ecf6 0,#f0ecf6 1px,transparent 1px,transparent 40px);border-radius:12px;margin-bottom:20px}.gender-group{text-align:center}.gender-columns{height:180px;display:flex;align-items:flex-end;justify-content:center;gap:9px}.gender-column{width:35%;max-width:42px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.gender-column strong{font-size:15px;color:#756583;margin-bottom:7px}.gender-bar{width:100%;min-height:2px;border-radius:6px 6px 0 0}.gender-bar.male{background:linear-gradient(#97b5f2,#6989d3)}.gender-bar.female{background:linear-gradient(#e0a3cb,#bd77a4)}.gender-group>span{display:block;font-size:12px;background:white;padding:12px 0;color:#95839c}.age-summary{margin-top:10px}.income-donut{width:210px;height:210px;border-radius:50%;margin:18px auto 25px;display:grid;place-items:center;box-shadow:0 0 0 10px #faf8fd}.income-donut>div{width:158px;height:158px;background:white;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.income-donut strong{font-size:40px;color:#694992;font-variant-numeric:tabular-nums}.income-donut span{font-size:12px;color:#9e8eac}.income-legend>div{display:grid;grid-template-columns:15px 1fr 40px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #f5f1f8;font-size:14px;color:#8c7a9a}.income-legend strong{text-align:right;color:#664b7c;font-size:17px}.district-summary thead th{background:#6a4e9b;color:white;font-size:15px}.district-summary tfoot th,.district-summary tfoot td{background:#f0e9fa;color:#67478d}.rate-pill{display:inline-block;padding:4px 9px;background:#e9f6ee;color:#4f9778;border-radius:6px;font-size:14px}.outcome-tile{border-top:4px solid #a083d2}.outcome-1,.outcome-4{border-top-color:#62b99f}.outcome-2,.outcome-5{border-top-color:#e9a374}.outcome-3,.outcome-6{border-top-color:#809fd3}@media(max-width:640px){.gender-chart{gap:5px;padding-left:0;padding-right:0}.gender-columns{gap:5px}.gender-column strong{font-size:13px}.gender-group>span{font-size:10px}.income-legend>div{font-size:13px}.district-summary table{min-width:690px}}@media print{.gender-bar,.income-donut{print-color-adjust:exact;-webkit-print-color-adjust:exact}.gender-chart{break-inside:avoid}.district-summary thead th{background:#eee;color:black}}

.list-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:20px;flex-wrap:wrap}.list-pagination span{margin-right:auto;color:#9685a3;font-size:14px}.list-pagination select{max-width:145px}.list-pagination button:disabled{opacity:.4;cursor:default}@media print{.list-pagination{display:none}.activity-records tr[hidden]{display:table-row}}

/* Compact sign-in page: fit standard desktop and mobile viewport heights. */
.login-body{min-height:100svh;padding:16px 18px;box-sizing:border-box}.login-card{width:460px;max-width:100%;padding:22px 32px;border-radius:20px}.login-logo{width:80px;height:80px;margin-bottom:8px}.login-card .eyebrow{font-size:9px;margin-bottom:5px}.login-card h1{font-size:25px;line-height:1.3}.login-card p{font-size:13px;line-height:1.5;margin:8px 0 17px}.login-card label{font-size:14px;gap:5px;margin-bottom:12px}.login-card input{font-size:16px;padding:9px 12px;min-height:42px}.login-card .btn.full{padding:10px;min-height:42px;font-size:15px}.login-card .mini-note{font-size:11px;line-height:1.5;padding:9px 12px;margin-top:13px}.login-card .login-credit{font-size:11px;line-height:1.6;padding-top:11px;margin-top:13px}.login-body .back-link{top:13px;left:18px;font-size:12px}.login-card .alert{padding:8px 12px;margin:10px 0;font-size:12px}
@media(max-height:740px){.login-body{padding:12px 16px}.login-card{padding:18px 28px}.login-logo{width:64px;height:64px;margin-bottom:5px}.login-card h1{font-size:23px}.login-card p{margin:5px 0 12px;font-size:12px}.login-card label{margin-bottom:9px}.login-card .mini-note{margin-top:10px;padding:7px 10px}.login-card .login-credit{margin-top:9px;padding-top:8px;font-size:10px}.login-body .back-link{top:8px;font-size:11px}}
@media(max-height:610px){.login-body{padding:10px 14px}.login-logo{width:48px;height:48px;margin-bottom:3px}.login-card{padding:14px 25px}.login-card h1{font-size:21px}.login-card .eyebrow{font-size:8px;margin-bottom:3px}.login-card p{font-size:11px;margin:4px 0 9px}.login-card label{font-size:13px;margin-bottom:8px;gap:3px}.login-card input{min-height:38px;padding:7px 10px}.login-card .btn.full{min-height:38px;padding:8px}.login-card .mini-note{font-size:10px;margin-top:8px;padding:6px 9px}.login-card .login-credit{font-size:9px;line-height:1.5;margin-top:7px;padding-top:6px}.login-body .back-link{position:fixed;left:10px;top:5px;font-size:10px}}
@media(max-width:600px){.login-body .back-link{position:static;align-self:flex-start;margin:0 0 10px}.login-body{flex-direction:column;justify-content:center;gap:0}.login-card{margin:0 auto}.login-card .login-credit{font-size:10px}}
@media(max-height:480px) and (min-width:650px){.login-card{width:680px;display:grid;grid-template-columns:200px 1fr;column-gap:25px;padding:18px 25px;text-align:left}.login-card .login-logo{grid-column:1;grid-row:1 / 4;width:100px;height:100px;justify-self:center;margin:auto}.login-card .eyebrow,.login-card h1,.login-card>p,.login-card>form,.login-card>.alert{grid-column:2}.login-card .mini-note,.login-card .login-credit{grid-column:1 / -1;text-align:center}.login-card .login-credit br{display:none}.login-card .login-credit strong{margin-right:8px}}
