:root {
  --pos-primary:#0f766e;
  --pos-primary-dark:#0b5f59;
  --pos-primary-soft:#e5f7f3;
  --pos-accent:#f2b84b;
  --pos-danger:#c94f5b;
  --pos-warning:#d58b20;
  --pos-success:#2d8a5b;
  --pos-ink:#173b38;
  --pos-text:#355552;
  --pos-muted:#738783;
  --pos-bg:#f3f8f7;
  --pos-card:#ffffff;
  --pos-border:#d8e6e3;
  --pos-shadow:0 16px 45px rgba(23,59,56,.09);
  --pos-radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--pos-text);background:var(--pos-bg);font-size:15px}
a{color:var(--pos-primary)}
img{max-width:100%}
.btn{min-height:44px;border-radius:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}
.btn-sm{min-height:36px;border-radius:11px}
.btn-pos{color:#fff;background:linear-gradient(135deg,var(--pos-primary),#14a39a);border:0;box-shadow:0 10px 24px rgba(15,118,110,.2)}
.btn-pos:hover,.btn-pos:focus{color:#fff;background:linear-gradient(135deg,var(--pos-primary-dark),var(--pos-primary))}
.btn-soft{color:var(--pos-primary-dark);background:var(--pos-primary-soft);border:1px solid #c7e9e3}
.btn-soft:hover{color:var(--pos-primary-dark);background:#d8f2ed}
.form-control,.form-select{min-height:50px;border-radius:14px;border-color:#cfdeda;padding:.75rem .9rem;color:var(--pos-ink);box-shadow:none}
textarea.form-control{min-height:110px}
.form-control:focus,.form-select:focus{border-color:#61bdb3;box-shadow:0 0 0 .25rem rgba(15,118,110,.12)}
.form-label{font-weight:750;color:#294a46;margin-bottom:.45rem}
.form-text{color:var(--pos-muted)}
.required{color:var(--pos-danger)}
.alert{border:0;border-radius:16px}
.badge{font-weight:750;border-radius:999px;padding:.45rem .65rem}
.text-pos{color:var(--pos-primary)!important}
.bg-pos-soft{background:var(--pos-primary-soft)!important}

/* Public */
.public-body{min-height:100vh;background:radial-gradient(circle at 12% 6%,rgba(20,163,154,.12),transparent 26%),radial-gradient(circle at 90% 18%,rgba(242,184,75,.13),transparent 24%),var(--pos-bg)}
.public-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(216,230,227,.85)}
.public-nav-inner{width:min(100% - 2rem,1120px);margin:auto;min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.public-brand{display:flex;align-items:center;gap:.8rem;color:var(--pos-ink);text-decoration:none}
.public-brand-mark{width:45px;height:45px;border-radius:15px;background:linear-gradient(135deg,var(--pos-primary),#22b8aa);color:#fff;display:grid;place-items:center;font-size:1.25rem;box-shadow:0 9px 22px rgba(15,118,110,.2)}
.public-brand strong{display:block;font-size:1rem}.public-brand small{display:block;color:var(--pos-muted);font-size:.72rem}
.public-shell{width:min(100% - 2rem,940px);margin:0 auto;padding:2.1rem 0 6rem}
.public-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:1.4rem;align-items:center;margin-bottom:1.5rem}
.public-hero-copy{padding:1rem 0}.public-kicker{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .7rem;border-radius:999px;background:var(--pos-primary-soft);color:var(--pos-primary-dark);font-weight:750;font-size:.78rem}
.public-hero h1{margin:.9rem 0 .6rem;font-size:clamp(2rem,5vw,3.3rem);line-height:1.08;color:var(--pos-ink);letter-spacing:-.04em;font-weight:850}
.public-hero p{max-width:620px;font-size:1rem;line-height:1.7;color:var(--pos-muted)}
.public-illustration{position:relative;min-height:280px;border-radius:32px;background:linear-gradient(145deg,#0f766e,#2ab5a8);overflow:hidden;box-shadow:var(--pos-shadow);display:grid;place-items:center;color:#fff}
.public-illustration:before,.public-illustration:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.1)}
.public-illustration:before{width:240px;height:240px;top:-95px;right:-70px}.public-illustration:after{width:180px;height:180px;bottom:-95px;left:-50px}
.public-illustration i{font-size:7rem;position:relative}.public-illustration div{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;padding:1rem;border-radius:18px;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);font-weight:700}
.form-card,.public-card{background:rgba(255,255,255,.97);border:1px solid var(--pos-border);border-radius:var(--pos-radius);box-shadow:var(--pos-shadow);padding:1.4rem}
.form-card-header{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:1.25rem}.form-card-icon{width:46px;height:46px;flex:0 0 46px;border-radius:15px;background:var(--pos-primary-soft);color:var(--pos-primary);display:grid;place-items:center;font-size:1.1rem}
.form-card-header h2{margin:0;color:var(--pos-ink);font-size:1.25rem;font-weight:820}.form-card-header p{margin:.25rem 0 0;color:var(--pos-muted);font-size:.86rem;line-height:1.5}
.progress-shell{margin-bottom:1rem}.progress-meta{display:flex;justify-content:space-between;gap:1rem;font-size:.78rem;color:var(--pos-muted);margin-bottom:.45rem}.progress-meta strong{color:var(--pos-ink)}
.progress{height:9px;border-radius:999px;background:#e5eeec}.progress-bar{background:linear-gradient(90deg,var(--pos-primary),#2bc1b3);border-radius:999px}
.form-grid{display:grid;grid-template-columns:1fr;gap:1rem}
.question-card{padding:1rem;border:1px solid var(--pos-border);border-radius:18px;background:#fbfdfd;margin-bottom:.85rem}.question-card h3{font-size:.95rem;line-height:1.5;color:var(--pos-ink);margin:0 0 .75rem;font-weight:760}
.option-grid{display:grid;grid-template-columns:1fr;gap:.55rem}.option-card{display:flex;align-items:flex-start;gap:.65rem;min-height:48px;padding:.75rem .85rem;border:1px solid #d4e2df;border-radius:14px;background:#fff;cursor:pointer;transition:.18s}.option-card:hover{border-color:#91cbc4;background:#f5fbfa}.option-card:has(input:checked){border-color:#42a298;background:var(--pos-primary-soft);box-shadow:inset 0 0 0 1px rgba(15,118,110,.05)}.option-card input{margin-top:.2rem;accent-color:var(--pos-primary)}
.form-actions{display:flex;gap:.75rem;margin-top:1.2rem}.form-actions .btn{flex:1}
.success-shell{max-width:720px;margin:4rem auto;text-align:center}.success-icon{width:84px;height:84px;border-radius:28px;background:#ddf6e8;color:var(--pos-success);display:grid;place-items:center;font-size:2.3rem;margin:0 auto 1.2rem}

/* Admin */
.admin-body{min-height:100vh;background:var(--pos-bg)}
.admin-shell{display:flex;min-height:100vh}
.admin-sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,#0f615b,#0a4d49);color:#fff;z-index:1050;display:flex;flex-direction:column;transition:transform .22s ease;box-shadow:20px 0 50px rgba(10,77,73,.12)}
.sidebar-brand{padding:1.25rem 1.15rem;display:flex;align-items:center;gap:.8rem;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand span{width:45px;height:45px;border-radius:15px;background:rgba(255,255,255,.13);display:grid;place-items:center;font-size:1.2rem}.sidebar-brand strong{display:block}.sidebar-brand small{display:block;color:rgba(255,255,255,.65);font-size:.7rem}
.sidebar-nav{padding:1rem .8rem;display:grid;gap:.35rem;overflow-y:auto}.sidebar-nav a{display:flex;align-items:center;gap:.8rem;padding:.78rem .85rem;color:rgba(255,255,255,.78);text-decoration:none;border-radius:14px;font-weight:650;font-size:.88rem}.sidebar-nav a i{font-size:1rem;width:20px}.sidebar-nav a:hover,.sidebar-nav a.active{color:#fff;background:rgba(255,255,255,.12)}
.sidebar-footer{margin-top:auto;padding:1rem;border-top:1px solid rgba(255,255,255,.1)}.sidebar-user{display:flex;align-items:center;gap:.7rem;margin-bottom:.8rem}.sidebar-user span{width:39px;height:39px;border-radius:13px;background:rgba(255,255,255,.12);display:grid;place-items:center}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user small{color:rgba(255,255,255,.65);font-size:.68rem}
.admin-main{margin-left:270px;width:calc(100% - 270px);min-height:100vh;display:flex;flex-direction:column}.admin-topbar{position:sticky;top:0;z-index:1020;min-height:78px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--pos-border);display:flex;align-items:center;gap:1rem;padding:.85rem 1.4rem}.admin-menu-btn,.admin-avatar{width:46px;height:46px;border:0;border-radius:15px;background:var(--pos-primary-soft);color:var(--pos-primary);display:grid;place-items:center;font-size:1.2rem}.admin-menu-btn{display:none}.admin-topbar-title h1{margin:0;color:var(--pos-ink);font-size:1.35rem;font-weight:830}.admin-topbar-title p{margin:.12rem 0 0;color:var(--pos-muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58vw}
.admin-content{padding:1.4rem;flex:1}.admin-footer{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.4rem;color:var(--pos-muted);font-size:.72rem;border-top:1px solid var(--pos-border)}
.sidebar-backdrop{position:fixed;inset:0;background:rgba(7,37,34,.46);z-index:1040;opacity:0;pointer-events:none;transition:.2s}
.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.page-title h2{margin:0;color:var(--pos-ink);font-size:1.75rem;font-weight:850;letter-spacing:-.025em}.page-title p{margin:.3rem 0 0;color:var(--pos-muted)}.page-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.filter-card,.panel-card,.metric-card{background:#fff;border:1px solid var(--pos-border);border-radius:var(--pos-radius);box-shadow:var(--pos-shadow)}
.filter-card{padding:1.15rem;margin-bottom:1.15rem}.filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;align-items:end}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.metric-card{padding:1.15rem;display:flex;gap:.9rem;align-items:center}.metric-icon{width:52px;height:52px;flex:0 0 52px;border-radius:17px;background:var(--pos-primary-soft);color:var(--pos-primary);display:grid;place-items:center;font-size:1.25rem}.metric-card strong{display:block;color:var(--pos-ink);font-size:1.65rem;line-height:1.1}.metric-card span{display:block;color:var(--pos-muted);font-size:.78rem;margin-top:.25rem}.metric-card small{display:block;color:var(--pos-success);font-size:.69rem;margin-top:.22rem}
.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}
.panel-card{padding:1.15rem;min-width:0}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.8rem}.panel-header h3{margin:0;color:var(--pos-ink);font-size:1.08rem;font-weight:810}.panel-header p{margin:.2rem 0 0;color:var(--pos-muted);font-size:.76rem}.panel-badge{padding:.45rem .65rem;border-radius:999px;background:var(--pos-primary-soft);color:var(--pos-primary);font-size:.7rem;font-weight:780}
.chart-box{position:relative;min-height:310px}.chart-box canvas{width:100%;height:310px;display:block}
.insight-list{display:grid;gap:.7rem}.insight-item{display:flex;gap:.75rem;padding:.85rem;border:1px solid var(--pos-border);border-radius:16px;background:#fbfdfd}.insight-item i{width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:var(--pos-primary-soft);color:var(--pos-primary);display:grid;place-items:center}.insight-item strong{display:block;color:var(--pos-ink);font-size:.88rem}.insight-item span{display:block;color:var(--pos-muted);font-size:.74rem;line-height:1.45;margin-top:.18rem}
.table-card{background:#fff;border:1px solid var(--pos-border);border-radius:var(--pos-radius);box-shadow:var(--pos-shadow);overflow:hidden}.table-card-header{padding:1rem 1.15rem;border-bottom:1px solid var(--pos-border);display:flex;justify-content:space-between;align-items:center;gap:1rem}.table-card-header h3{margin:0;color:var(--pos-ink);font-size:1.05rem;font-weight:800}.table{margin:0}.table thead th{background:#f1f8f6;color:#43615d;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--pos-border);white-space:nowrap;padding:.85rem}.table td{padding:.8rem .85rem;vertical-align:middle;border-color:#edf3f2;color:#3a5753;font-size:.8rem}.table tbody tr:hover{background:#fbfdfd}.table-actions{display:flex;gap:.35rem;justify-content:flex-end}.table-actions .btn{width:36px;height:36px;min-height:36px;padding:0}
.status-good{background:#ddf6e8;color:#246c49}.status-warning{background:#fff0cf;color:#8a5d12}.status-danger{background:#ffe0e4;color:#9d3540}.status-info{background:#e4f4fb;color:#28677d}.status-muted{background:#eaf0ef;color:#576d69}
.progress-thin{height:8px;border-radius:999px;background:#e7efed;overflow:hidden}.progress-thin span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--pos-primary),#2bb8aa)}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.detail-item{padding:.85rem;border:1px solid var(--pos-border);border-radius:15px;background:#fbfdfd}.detail-item span{display:block;color:var(--pos-muted);font-size:.7rem}.detail-item strong{display:block;color:var(--pos-ink);font-size:.88rem;margin-top:.22rem;overflow-wrap:anywhere}.detail-item.full{grid-column:1/-1}
.pagination .page-link{color:var(--pos-primary);border-color:var(--pos-border)}.pagination .active>.page-link{background:var(--pos-primary);border-color:var(--pos-primary)}

/* Login */
.login-body{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 10% 20%,rgba(20,163,154,.18),transparent 28%),radial-gradient(circle at 90% 80%,rgba(242,184,75,.16),transparent 28%),#eef7f5}.login-shell{width:min(100%,980px);display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border:1px solid var(--pos-border);border-radius:30px;overflow:hidden;box-shadow:0 30px 80px rgba(20,70,65,.14)}.login-brand{padding:3rem;background:linear-gradient(145deg,#0f766e,#0a5550);color:#fff;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-brand:before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.08);right:-120px;top:-100px}.login-logo{width:70px;height:70px;border-radius:23px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:2rem;margin-bottom:1.3rem}.login-brand h1{font-size:2.2rem;font-weight:850;margin:0}.login-brand p{color:rgba(255,255,255,.75);line-height:1.7;margin:.7rem 0 0}.login-form{padding:3rem;display:flex;flex-direction:column;justify-content:center}.login-form h2{color:var(--pos-ink);font-weight:840;margin:0}.login-form>p{color:var(--pos-muted);margin:.5rem 0 1.4rem}

@media(max-width:1199px){.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.span-4,.span-5,.span-7,.span-8{grid-column:span 6}}
@media(max-width:991px){.admin-sidebar{transform:translateX(-105%)}.admin-sidebar.open{transform:translateX(0)}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.admin-main{margin-left:0;width:100%}.admin-menu-btn{display:grid}.admin-content{padding:1rem}.public-hero{grid-template-columns:1fr}.public-illustration{min-height:220px}.login-shell{grid-template-columns:1fr;max-width:620px}.login-brand{padding:2rem}.login-form{padding:2rem}.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}}
@media(max-width:767px){.public-nav-inner,.public-shell{width:min(100% - 1.1rem,940px)}.public-shell{padding-top:1.1rem}.public-hero h1{font-size:2rem}.public-illustration{display:none}.form-card,.public-card{padding:1rem;border-radius:19px}.form-actions{position:sticky;bottom:.5rem;padding:.6rem;background:rgba(243,248,247,.92);backdrop-filter:blur(10px);border-radius:18px;z-index:20}.page-title{display:block}.page-actions{margin-top:.8rem}.page-actions .btn{flex:1}.filter-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr}.dashboard-grid{display:block}.panel-card{margin-bottom:1rem;border-radius:20px}.chart-box,.chart-box canvas{min-height:280px;height:280px}.admin-topbar{padding:.75rem}.admin-topbar-title h1{font-size:1.1rem}.admin-topbar-title p{max-width:58vw}.table-card{border-radius:20px}.detail-grid{grid-template-columns:1fr}.admin-footer{display:block;text-align:center}.login-body{padding:.7rem}.login-shell{border-radius:22px}.login-brand{display:none}.login-form{padding:1.4rem}.public-brand small{display:none}}
@media print{.admin-sidebar,.admin-topbar,.page-actions,.filter-card,.admin-footer,.btn,.sidebar-backdrop{display:none!important}.admin-main{margin:0;width:100%}.admin-content{padding:0}.panel-card,.table-card,.metric-card{box-shadow:none;break-inside:avoid}.dashboard-grid{display:block}.panel-card{margin-bottom:1rem}.chart-box{min-height:250px}}

/* =========================================================
   Responsive hardening v2
   Keeps the existing application logic while making every
   public/admin screen stable on mobile, tablet and desktop.
   ========================================================= */
html,body{width:100%;max-width:100%;overflow-x:hidden}
body{min-width:0;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit}
a{text-underline-offset:3px}
.form-control,.form-select{display:block;width:100%;max-width:100%;background-color:#fff}
.form-control[type="month"],.form-control[type="date"]{min-width:0}
.input-group{display:flex;width:100%;min-width:0}
.input-group>.form-control{min-width:0;flex:1 1 auto;width:1%}
.form-grid>*,.filter-grid>*,.dashboard-grid>*,.detail-grid>*{min-width:0}
.form-card,.public-card,.filter-card,.panel-card,.metric-card,.table-card{isolation:isolate}

/* Bootstrap-independent dropdown safety. */
.dropdown{position:relative}
.dropdown-menu{position:absolute;z-index:1080;display:none;min-width:250px;margin:.55rem 0 0;padding:.55rem;list-style:none;background:#fff;border:1px solid var(--pos-border)!important;border-radius:18px!important;box-shadow:0 20px 52px rgba(16,58,54,.16)!important}
.dropdown-menu.show{display:block}
.dropdown-menu-end{right:0;left:auto}
.dropdown-menu li{list-style:none;margin:0;padding:0}
.dropdown-item,.dropdown-item-text{display:flex;width:100%;align-items:center;border:0;border-radius:12px;padding:.7rem .75rem;text-decoration:none;background:transparent;color:var(--pos-text);font-size:.82rem;line-height:1.45;text-align:left}
.dropdown-item:hover,.dropdown-item:focus{color:var(--pos-primary-dark);background:var(--pos-primary-soft)}
.dropdown-item-text{display:block;color:var(--pos-muted)}
.dropdown-divider{height:1px;margin:.35rem .25rem;border:0;background:var(--pos-border)}
.dropdown-menu form{margin:0}

/* Admin foundation. */
.admin-body{overflow-x:hidden;background:linear-gradient(180deg,#f8fbfa 0,#eef6f4 100%)}
.admin-shell{width:100%;min-width:0}
.admin-sidebar{width:280px;overflow:hidden}
.sidebar-brand{min-height:78px}
.sidebar-nav{flex:1;align-content:start}
.sidebar-nav a{min-height:46px}
.sidebar-footer .btn{border-color:rgba(255,255,255,.28)}
.admin-main{margin-left:280px;width:calc(100% - 280px);min-width:0}
.admin-topbar{min-width:0;padding-inline:clamp(1rem,2vw,1.6rem)}
.admin-topbar-title{min-width:0;flex:1 1 auto}
.admin-topbar-title h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-topbar-title p{max-width:min(66vw,760px)}
.admin-menu-btn,.admin-avatar{flex:0 0 46px;transition:transform .18s ease,background .18s ease}
.admin-menu-btn:hover,.admin-avatar:hover{background:#d8f2ed;transform:translateY(-1px)}
.admin-content{width:100%;max-width:1720px;margin-inline:auto;padding:clamp(1rem,2vw,1.6rem)}
.admin-footer{width:100%;max-width:1720px;margin-inline:auto}
.sidebar-backdrop{visibility:hidden}
.sidebar-backdrop.open{visibility:visible}

/* Titles and actions. */
.page-title{align-items:center;margin-bottom:1.25rem}
.page-title>div:first-child{min-width:0}
.page-title h2{font-size:clamp(1.55rem,2.5vw,2.15rem);line-height:1.15}
.page-title p{font-size:.9rem;line-height:1.5}
.page-actions{flex:0 0 auto;align-items:center}
.page-actions .btn{text-decoration:none;white-space:nowrap}

/* Filter layout. */
.filter-card{padding:1.25rem}
.filter-grid{grid-template-columns:repeat(4,minmax(150px,1fr)) minmax(190px,.8fr);gap:1rem}
.filter-grid .form-label{display:block;min-height:1.35rem;margin-bottom:.5rem}
.filter-grid .form-control,.filter-grid .form-select{height:52px}
.filter-grid>.d-flex{min-width:0;align-items:stretch}
.filter-grid>.d-flex .btn{min-width:52px;height:52px}

/* Metrics. */
.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.metric-card{min-height:122px;padding:1.15rem 1.2rem;border-radius:22px;overflow:hidden}
.metric-card>div{min-width:0}
.metric-card strong{font-size:clamp(1.65rem,2.4vw,2rem);overflow-wrap:anywhere}
.metric-card span,.metric-card small{line-height:1.4}
.metric-icon{box-shadow:inset 0 0 0 1px rgba(15,118,110,.05)}

/* Cards and charts. */
.dashboard-grid{align-items:start}
.panel-card{border-radius:22px;padding:1.25rem;overflow:hidden}
.panel-header{min-width:0}
.panel-header>div{min-width:0}
.panel-header h3{line-height:1.3}
.panel-header p{line-height:1.5}
.chart-box{width:100%;min-width:0;min-height:300px;overflow:hidden}
.chart-box canvas{max-width:100%!important;width:100%!important;height:300px!important}
.insight-item{min-width:0;align-items:flex-start}
.insight-item>div{min-width:0}
.insight-item strong,.insight-item span{overflow-wrap:anywhere}

/* Tables. */
.table-card{border-radius:22px}
.table-card-header{min-height:66px}
.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.table-responsive>.table{min-width:760px}
.table{width:100%}
.table th,.table td{white-space:nowrap}
.table td strong,.table td small{white-space:normal}
.table-actions{min-width:max-content}
.table-actions form{display:inline-flex;margin:0}

/* Detail/edit/public forms. */
.detail-grid{gap:1rem}
.detail-item{min-width:0}
.form-grid{width:100%}
.form-grid>div{width:100%}
.form-actions{align-items:stretch}
.form-actions .btn{min-width:0}
.public-shell{min-width:0}
.public-nav-inner{min-width:0}
.public-brand{min-width:0}
.public-brand>span:last-child{min-width:0}
.public-brand strong,.public-brand small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.option-card{width:100%}
.login-shell{min-width:0}

/* Tablet. */
@media(max-width:1399px){
  .filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .filter-grid>.d-flex{grid-column:auto}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1199px){
  .admin-sidebar{width:260px}
  .admin-main{margin-left:260px;width:calc(100% - 260px)}
  .dashboard-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
  .span-4,.span-5,.span-7,.span-8{grid-column:span 6}
}

/* Mobile/tablet sidebar and content. */
@media(max-width:991.98px){
  .admin-sidebar{width:min(86vw,310px);transform:translateX(-105%);box-shadow:24px 0 55px rgba(7,44,40,.24)}
  .admin-sidebar.open{transform:translateX(0)}
  .admin-main{margin-left:0;width:100%}
  .admin-topbar{min-height:72px;padding:.75rem 1rem}
  .admin-menu-btn{display:grid}
  .admin-content{padding:1rem}
  .sidebar-backdrop.open{opacity:1;pointer-events:auto;visibility:visible}
  .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}
  .page-title{align-items:flex-start}
}

@media(max-width:767.98px){
  :root{--pos-radius:20px;--pos-shadow:0 10px 30px rgba(23,59,56,.075)}
  body{font-size:14px}
  .admin-topbar{gap:.7rem}
  .admin-topbar-title h1{font-size:1.05rem}
  .admin-topbar-title p{font-size:.72rem;max-width:52vw}
  .admin-menu-btn,.admin-avatar{width:44px;height:44px;flex-basis:44px;border-radius:14px}
  .dropdown-menu{position:fixed;top:68px;right:.75rem;left:auto;width:min(280px,calc(100vw - 1.5rem));margin:0}
  .admin-content{padding:.85rem}
  .page-title{display:block;margin-bottom:1rem}
  .page-title h2{font-size:1.55rem}
  .page-title p{margin-top:.35rem}
  .page-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:.9rem;width:100%}
  .page-actions .btn{width:100%;padding-inline:.65rem}
  .filter-card{padding:1rem;border-radius:20px}
  .filter-grid{grid-template-columns:1fr;gap:.85rem}
  .filter-grid .form-label{min-height:0}
  .filter-grid>.d-flex{display:grid!important;grid-template-columns:minmax(0,1fr) 54px;gap:.65rem!important}
  .filter-grid>.d-flex .btn{width:100%}
  .metric-grid{grid-template-columns:1fr;gap:.8rem}
  .metric-card{min-height:108px;padding:1rem}
  .metric-icon{width:48px;height:48px;flex-basis:48px;border-radius:15px}
  .dashboard-grid{display:block}
  .panel-card,.table-card{margin-bottom:.85rem;border-radius:20px}
  .panel-card{padding:1rem}
  .panel-header{margin-bottom:.65rem}
  .panel-header h3{font-size:1rem}
  .panel-badge{flex:0 0 auto}
  .chart-box{min-height:250px}
  .chart-box canvas{height:250px!important}
  .table-card-header{padding:.9rem 1rem;align-items:flex-start}
  .table-responsive>.table{min-width:700px}
  .table thead th,.table td{padding:.75rem;font-size:.76rem}
  .detail-grid{grid-template-columns:1fr}
  .detail-item.full{grid-column:auto}
  .form-card,.public-card{padding:1rem;border-radius:20px}
  .form-card-header{gap:.7rem}
  .form-card-icon{width:42px;height:42px;flex-basis:42px;border-radius:14px}
  .form-card-header h2{font-size:1.08rem}
  .form-actions{position:static;margin-top:1rem;padding:0;background:transparent;backdrop-filter:none}
  .public-nav-inner,.public-shell{width:min(100% - 1rem,940px)}
  .public-nav-inner{min-height:68px}
  .public-brand-mark{width:42px;height:42px;border-radius:14px}
  .public-shell{padding-top:1rem}
  .public-hero{margin-bottom:1rem}
  .public-hero-copy{padding:.3rem 0}
  .public-hero h1{font-size:1.85rem}
  .public-hero p{font-size:.92rem;line-height:1.6}
  .login-body{padding:.75rem}
  .login-shell{border-radius:22px}
  .login-form{padding:1.35rem}
}

@media(max-width:575.98px){
  .admin-topbar-title p{display:none}
  .admin-topbar-title h1{max-width:calc(100vw - 150px)}
  .page-actions{grid-template-columns:1fr}
  .form-actions{display:grid;grid-template-columns:1fr;gap:.65rem}
  .form-actions .btn{width:100%}
  .metric-card{align-items:flex-start}
  .metric-card strong{font-size:1.65rem}
  .panel-header{display:block}
  .panel-badge{display:inline-flex;margin-top:.55rem}
  .chart-box{min-height:230px}
  .chart-box canvas{height:230px!important}
  .public-nav .btn{padding-inline:.65rem}
  .public-brand small{display:none}
  .success-shell{margin:2rem auto}
}

@media(max-width:380px){
  .admin-content{padding:.65rem}
  .admin-topbar{padding-inline:.65rem}
  .admin-menu-btn,.admin-avatar{width:42px;height:42px;flex-basis:42px}
  .page-title h2{font-size:1.4rem}
  .metric-card{gap:.7rem}
  .metric-icon{width:44px;height:44px;flex-basis:44px}
  .form-card,.public-card,.filter-card,.panel-card{padding:.85rem}
}
