:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1f2933;background:#f4f7f9}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}.eyebrow{margin:0 0 .55rem;font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#356b75}.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr)}.brand{padding:clamp(3rem,8vw,7rem);display:flex;flex-direction:column;justify-content:center;background:#eaf1f2;border-right:1px solid #d5e0e2}.brand h1,.card h1,.card h2,header h1,.intro h2,.import-card h2,.empty-state h2{margin:0;line-height:1.08;color:#17252a}.brand h1{font-size:clamp(2.4rem,6vw,5.4rem);max-width:12ch}.brand p:last-child{max-width:58ch;font-size:1.08rem;line-height:1.7;color:#486168}.card{align-self:center;margin:clamp(2rem,7vw,6rem);padding:2rem;background:#fff;border:1px solid #dce5e7;border-radius:18px;box-shadow:0 18px 50px #17252a14}form{display:grid;gap:1rem;margin-top:1.6rem}label{display:grid;gap:.45rem;font-weight:700}input,select{padding:.82rem .9rem;border:1px solid #becdd1;border-radius:10px;outline:none;background:#fff;color:#1f2933}input:focus,select:focus{border-color:#356b75;box-shadow:0 0 0 3px #356b751f}button{border:0;border-radius:10px;padding:.78rem 1rem;font-weight:800;background:#274f58;color:#fff;cursor:pointer}button:disabled{cursor:not-allowed}.secondary,.module button{background:#eef3f4;color:#274f58}.error{color:#8b2f2f}.setup{min-height:100vh;display:grid;place-items:center;padding:2rem}.setup .card{margin:0;width:min(720px,100%)}code{background:#eef3f4;padding:.15rem .35rem;border-radius:5px}.shell{min-height:100vh}.shell header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.6rem clamp(1.2rem,5vw,4rem);background:#fff;border-bottom:1px solid #dce5e7}.user{display:flex;gap:.8rem;align-items:center;color:#526970}.shell main{padding:1.5rem clamp(1.2rem,5vw,4rem) 4rem}.status{padding:.9rem 1rem;background:#eaf1f2;border:1px solid #d5e0e2;border-radius:12px;color:#3e5a61;font-size:.9rem}.intro{padding:2.4rem 0 1.5rem;max-width:860px}.intro h2{font-size:clamp(1.8rem,4vw,3rem)}.intro p:last-child,.module p,.import-card p,.empty-state p{color:#526970;line-height:1.65}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.module{position:relative;display:flex;flex-direction:column;min-height:220px;padding:1.25rem;background:#fff;border:1px solid #dce5e7;border-radius:14px}.module h3{margin:.8rem 0 0;color:#20363c}.badge{align-self:flex-start;padding:.25rem .5rem;border-radius:999px;background:#eef3f4;color:#527078;font-size:.72rem;font-weight:800}.badge.available{background:#dcefe8;color:#23614f}.module button{margin-top:auto;align-self:flex-start;opacity:.55}.module button:not(:disabled){opacity:1;background:#274f58;color:#fff}.text-button{padding:0;margin:0 0 .7rem;background:transparent;color:#356b75}.population-page{display:grid;gap:1rem}.toolbar-card,.import-card,.list-card,.empty-state{background:#fff;border:1px solid #dce5e7;border-radius:14px;padding:1.25rem}.toolbar-main{display:flex;align-items:end;gap:1rem}.toolbar-main label{min-width:min(520px,65vw)}.inline-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;padding-top:1rem;border-top:1px solid #e7edef}.inline-form .wide{grid-column:span 2}.notice{margin:0;padding:.85rem 1rem;border-radius:10px;border:1px solid}.notice.success{background:#edf8f3;border-color:#cbe9dc;color:#285f4d}.notice.error-box{background:#fff1f1;border-color:#edc9c9;color:#8b2f2f}.population-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.population-summary div{padding:1rem 1.1rem;background:#eaf1f2;border:1px solid #d5e0e2;border-radius:12px}.population-summary span{display:block;color:#527078;font-size:.78rem;font-weight:700}.population-summary strong{display:block;margin-top:.25rem;font-size:1.7rem;color:#20363c}.population-summary strong.small-value{font-size:1.05rem}.import-card{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.import-card h2{font-size:1.45rem}.import-card p{max-width:820px;margin-bottom:0}.file-button{display:inline-flex;align-items:center;justify-content:center;min-width:170px;padding:.78rem 1rem;border-radius:10px;background:#274f58;color:#fff;font-weight:800;cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.file-button.disabled{opacity:.55;cursor:not-allowed}.list-card{padding:0;overflow:hidden}.list-tools{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid #e3ebed}.segmented{display:flex;gap:.4rem}.segmented button{padding:.55rem .75rem;background:#eef3f4;color:#49666d}.segmented button.active{background:#274f58;color:#fff}.search-input{width:min(420px,100%)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid #e7edef;vertical-align:top}th{position:sticky;top:0;background:#f8fafb;color:#526970;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}td small{display:block;margin-top:.25rem;color:#789096}.study-toggle{min-width:52px;padding:.45rem .6rem;background:#eef3f4;color:#526970}.study-toggle.selected{background:#dcefe8;color:#23614f}.table-empty{text-align:center;color:#789096;padding:2rem}.empty-state{text-align:center;padding:3rem 1.5rem}.empty-state p{max-width:620px;margin:1rem auto 0}@media(max-width:960px){.auth{grid-template-columns:1fr}.brand{min-height:42vh;border-right:0;border-bottom:1px solid #d5e0e2}.grid,.population-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-form{grid-template-columns:1fr 1fr}.import-card{align-items:flex-start;flex-direction:column}}@media(max-width:640px){.shell header{align-items:flex-start;flex-direction:column}.user{width:100%;justify-content:space-between}.grid{grid-template-columns:1fr}.brand{padding:2.5rem 1.5rem}.card{margin:1rem}.toolbar-main,.list-tools{align-items:stretch;flex-direction:column}.toolbar-main label{min-width:0;width:100%}.inline-form{grid-template-columns:1fr}.inline-form .wide{grid-column:auto}.population-summary{grid-template-columns:1fr 1fr}.segmented{overflow:auto}.search-input{width:100%}}
