/* TN Assembly: vivid blue, teal and amber with quiet geometric patterns. */
:root{--ink:#132744;--blue:#2354e6;--navy:#112648;--muted:#51647c;--line:#dce5f3;--soft:#f1f6fd;--teal:#006d70;--amber:#f4b844;--accent:#bdf477}
body{background:#f8fbff;font-size:16px;line-height:1.95}
.notice{background:#112648;font-size:12px;letter-spacing:.02em}
header{padding-top:26px;padding-bottom:26px;background:#fff;max-width:none;padding-left:max(32px,calc((100vw - 1256px)/2));padding-right:max(32px,calc((100vw - 1256px)/2))}
.brand{font-size:29px;letter-spacing:-1.25px}
.brand small{font-size:14px;margin-top:8px}
.header-right{font-size:14px}
.header-right>a{border-radius:12px;background:#edf3ff;border-color:#cddcff;padding:11px 17px;font-size:14px;font-weight:600}
.nav-wrap{border:0;border-top:1px solid var(--line);box-shadow:0 4px 14px #11264808}
.nav-wrap nav{gap:24px}
.nav-wrap nav a{font-size:14px;padding:16px 0 13px}
.nav-wrap nav a[aria-current]{border-bottom-width:4px}
main{padding-bottom:64px}
.page-topline{padding:20px 0}
.person-chip{background:#fff;border:1px solid #c8d9f9;box-shadow:0 6px 20px #2354e60a;border-radius:14px}
.person-chip:hover{background:#edf4ff;box-shadow:0 8px 24px #2354e61a}
.hero{grid-template-columns:1.15fr 1fr;gap:0;border:1px solid #18335c;border-radius:22px;background:#112648;box-shadow:0 18px 42px #11264813}
.hero-main{padding:42px 36px;background-image:radial-gradient(circle at 1px 1px,#b7d2ff16 1px,transparent 0);background-size:19px 19px;position:relative}
.hero-main .eyebrow{font-size:14px;line-height:2.1;font-family:inherit;font-weight:500;letter-spacing:0;color:#b8cff5}
.hero h1{font-size:clamp(34px,4vw,52px);letter-spacing:0;line-height:1.7;margin:15px 0 12px}
.hero-sub{font-size:24px;color:#fff;font-weight:500}
.hero-main>p:not(.eyebrow):not(.hero-sub){font-size:16px;line-height:2;color:#d2def1}
.hero .actions{gap:10px;margin-top:28px}
.button,button{border-radius:12px;padding:13px 19px;min-height:48px;font-size:15px;box-shadow:0 4px 10px #2354e60d;transition:background .15s,box-shadow .15s}
.button:hover,button:hover{box-shadow:0 6px 16px #2354e626}
.hero .button{background:#bdf477;border-color:#bdf477;color:#153218}
.hero .button:hover{background:#d3ffa0}
.hero .button.light{border-color:#6b84a9;background:transparent;color:#fff}
.cm-office{margin:0;background:#e8eff8;display:flex;flex-direction:column;min-width:0}
.cm-office .office-photo{width:100%;height:100%;min-height:290px;max-height:475px;display:block;object-fit:cover;object-position:center 30%}
.cm-office figcaption{background:#fff;color:var(--ink);padding:20px 24px;display:flex;align-items:flex-start;gap:13px;border-bottom-right-radius:21px}
.office-caption-rule{width:5px;align-self:stretch;background:var(--blue);border-radius:4px;flex-shrink:0}
.cm-office strong{font-size:20px;display:block;line-height:1.7}
.cm-office span:not(.office-caption-rule){display:block;font-size:14px;color:var(--muted)}
.cm-office small{font-size:12px;color:var(--muted);line-height:1.8;display:block;margin-top:5px}
.election-ribbon{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:22px;align-items:center;margin:24px 0;background:#fff7e5;border:1px solid #edcd89;border-radius:16px;padding:22px 26px}
.election-ribbon h2{font-size:19px;margin:0;color:#744705;line-height:1.8}
.election-ribbon>div>span{font-size:14px;color:#756046;display:block}
.election-ribbon b{font-size:18px;line-height:1.8;display:block;color:#4e371a}
.election-ribbon .source{font-size:12px;color:#756046;text-decoration:none;margin-top:5px}
.election-ribbon .textlink{color:#784d0c}
.quick-grid{gap:14px;background:transparent;margin:24px 0 32px;border:0;overflow:visible;counter-reset:services}
.quick{border:0!important;border-radius:16px;padding:22px 18px;font-size:16px;line-height:2;font-weight:600;display:flex;flex-direction:column;align-items:flex-start;gap:15px;background:#e8f0ff;color:#1a449f;box-shadow:inset 0 0 0 1px #2861d41a;position:relative;overflow:hidden}
.quick:before{counter-increment:services;content:'0' counter(services);font:650 13px/1.4 system-ui;letter-spacing:.08em;border:1px solid currentColor;opacity:.7;padding:4px 8px;border-radius:6px}
.quick:after{content:'';width:75px;height:75px;position:absolute;right:-22px;top:-24px;border:16px solid currentColor;border-radius:50%;opacity:.055}
.quick:nth-child(2){background:#e1f5ef;color:#006359}
.quick:nth-child(3){background:#fff0d9;color:#8a4d08}
.quick:nth-child(4){background:#efe9ff;color:#6240b3}
.quick:hover{filter:brightness(.97);color:inherit}
.section-heading{margin:44px 0 22px}
.eyebrow{color:var(--teal);font-size:12px;letter-spacing:.09em}
.section-heading h2,h2{color:#173157;font-size:26px;line-height:1.8}
.textlink{font-size:15px;line-height:1.9;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:#9fb9fb}
.textlink:hover{color:#113797;text-decoration-thickness:2px}
.stat-grid{background:#fff;border-radius:16px}
.stat-grid span,.stat-grid small{font-size:14px}
.stat-grid .tamil-stat{font-size:23px;line-height:2.4}
.stat-grid strong{color:var(--blue)}
.stat-grid article:nth-child(even) strong{color:var(--teal)}
.card{border-radius:16px;background:#fff;box-shadow:0 7px 24px #11264804;padding:26px}
.card h3{color:#173157;font-size:19px}
.card p{font-size:16px;line-height:2}
.tag{font-size:13px;border-radius:6px;background:#eaf1ff;color:#244fb2;padding:4px 10px}
.cards .card:nth-child(3n+2) .tag{background:#e0f3ed;color:#086c60}
.cards .card:nth-child(3n+3) .tag{background:#fff0d8;color:#84500b}
.card h3 a{color:var(--blue);text-decoration:underline;text-decoration-color:#c0d1fc;text-underline-offset:6px}
.card h3 a:hover{text-decoration-color:var(--blue)}
.split-banner{border-radius:18px;background-color:#e8f3f1;background-image:repeating-linear-gradient(135deg,transparent,transparent 12px,#006d7005 12px,#006d7005 14px);border-color:#c4e2dc;padding:30px}
.split-banner .eyebrow{color:#00645b}
.split-banner h2{color:#0c4a47}
.split-banner p{font-size:16px;color:#365e5c}
.split-banner .button{background:#006a64;border-color:#006a64}
.page-heading{border:1px solid #d4e2f7;border-radius:18px;background:linear-gradient(115deg,#e6efff,#f1f8ff);padding:26px 30px;margin-bottom:28px}
.page-heading h1{font-size:clamp(26px,3vw,36px);line-height:1.9;margin-bottom:8px}
.updated,.small{font-size:13px}
.note{border-radius:0 12px 12px 0;font-size:15px;background:#edf3ff}
.source{font-size:13px;text-decoration:none}
.tablewrap{border-radius:14px;background:#fff}
table{font-size:15px}
th{background:#eaf1fd}
.form-panel,.filterbar{border-radius:16px;background:#eef4ff}
.form-panel h2{font-size:24px}
.schedule{border-radius:18px;background:#173760}
.schedule .source{color:#c7dafa}
.local-overview{display:grid;grid-template-columns:1.15fr 1fr;gap:0;margin:30px 0;border:1px solid #cee3e4;border-radius:18px;overflow:hidden;background:#fff}
.local-overview>div{padding:32px}
.local-overview h2{margin:8px 0 15px;font-size:25px}
.local-overview p{font-size:16px;line-height:2}
.local-overview .local-photo{margin:0;display:flex;flex-direction:column;background:#e6f1f1}
.local-photo img{width:100%;height:100%;min-height:210px;max-height:340px;object-fit:cover;display:block}
.local-photo figcaption{padding:10px 18px;font-size:13px;color:#385c61;background:#e6f1f1}
.heritage-intro{font-size:18px;line-height:2;max-width:850px;margin-bottom:30px}
.heritage-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0 36px}
.heritage-card{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden;min-width:0;display:flex;flex-direction:column}
.heritage-card figure{margin:0;background:#edf2f8}
.heritage-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.heritage-card.portrait img{object-fit:contain;background:#ecede9}
.heritage-card figcaption{padding:10px 18px;font-size:12px;color:var(--muted);line-height:1.8}
.heritage-card>div{padding:22px 24px;flex:1}
.heritage-card h2{font-size:21px;line-height:1.85;margin:4px 0 14px}
.heritage-card p{font-size:16px;line-height:2}
.heritage-card .tag{background:#dcf0ea;color:#086458}
.heritage-card:nth-child(2) .tag{background:#fff0dc;color:#855218}
.heritage-card:nth-child(3) .tag{background:#eee8ff;color:#6144a8}
.local-note{font-size:14px;color:var(--muted);border-left:3px solid #cdddf4;padding:0 0 0 16px}
.person-hero{border-radius:20px;background-color:#142d50;background-image:radial-gradient(circle at 1px 1px,#b7d2ff0d 1px,transparent 0);background-size:20px 20px}
.profile-sections a{font-size:15px}
.profile-section-title>span{background:#e8f0ff;border-radius:7px;padding:5px 9px}
.person-bio,.profile-record{background:#fff;border-radius:14px}
.profile-empty{border-radius:14px;background:#edf4fd}
footer{border-top:1px solid #d1dff1;padding-top:35px;padding-bottom:35px}
footer p,footer a{font-size:14px}
footer a{text-decoration:underline;text-decoration-color:#a5bbe0;text-underline-offset:5px}
@media(max-width:1050px){.hero{grid-template-columns:1fr 1fr}.hero-main{padding:32px 26px}.hero h1{font-size:36px}.hero-sub{font-size:21px}.election-ribbon{grid-template-columns:1fr 1fr}.election-ribbon .textlink{justify-self:start}.heritage-gallery{grid-template-columns:1fr 1fr}.heritage-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.local-overview>div{padding:26px}.local-overview{grid-template-columns:1fr 1fr}}
@media(max-width:760px){header{padding:22px 20px;gap:16px}.header-right{gap:12px}.hero{grid-template-columns:1fr}.hero-main{padding:30px 24px}.hero h1{font-size:clamp(31px,7vw,44px)}.hero-main .eyebrow{font-size:13px}.hero-sub{font-size:23px}.cm-office .office-photo{height:auto;max-height:400px;min-height:0;aspect-ratio:4/3}.cm-office figcaption{border-radius:0 0 21px 21px}.local-overview{grid-template-columns:1fr}.local-photo img{max-height:280px;min-height:0;height:auto;aspect-ratio:16/9}.heritage-gallery{grid-template-columns:1fr}.heritage-card:last-child{grid-column:auto;display:flex}.heritage-card img{max-height:300px}.heritage-card.portrait img{max-height:320px}.page-heading{padding:22px}.section-heading h2,h2{font-size:23px}.quick{padding:19px 16px;font-size:15px;gap:12px}.person-chip strong{font-size:16px}.card{padding:24px}.stat-grid .tamil-stat{font-size:21px}.local-overview>div{padding:24px}.election-ribbon{padding:22px;gap:16px}.election-ribbon>div:first-child{grid-column:1/-1}.election-ribbon .textlink{grid-column:1/-1}.election-ribbon b{font-size:16px}}
@media(max-width:430px){.brand{font-size:26px}.header-right>a{font-size:14px}.quick-grid{gap:10px}.quick{font-size:14px;padding:17px 13px}.hero .actions{flex-direction:column;align-items:stretch}.hero h1{font-size:32px}.page-topline{gap:12px}.election-ribbon{gap:16px 12px}.election-ribbon b{font-size:15px}.election-ribbon>div>span{font-size:13px}}
@media(prefers-reduced-motion:reduce){.button,button,.person-chip{transition:none}.quick:hover{filter:none}}
@media print{body{background:#fff}.hero,.page-heading,.split-banner,.person-hero{background:#fff;color:#000;box-shadow:none}.hero-main{background:none}.hero-main p,.hero h1{color:#000!important}.cm-office .office-photo{max-height:250px}.election-ribbon,.local-overview,.heritage-gallery{break-inside:avoid}.heritage-gallery{display:block}.heritage-card{break-inside:avoid;margin-bottom:18px}.heritage-card img{max-height:180px}.quick-grid{display:none}}
/* Exact 2:1 portrait dimensions, shared by header entries and profile pages. */
:root{--official-portrait-width:256px;--official-portrait-height:320px}
.cm-office{background-color:#e6edfa;background-image:repeating-linear-gradient(135deg,transparent,transparent 18px,#2354e605 18px,#2354e605 20px)}
.cm-office .office-photo{display:block;width:var(--official-portrait-width);height:var(--official-portrait-height);min-height:0;max-height:none;aspect-ratio:4/5;object-fit:cover;object-position:center;margin:24px auto;border-radius:12px;box-shadow:0 8px 24px #11264820;flex:none}
.cm-office figcaption{margin-top:auto}
.person-chip img,.person-hero img{width:calc(var(--official-portrait-width)/2);height:calc(var(--official-portrait-height)/2);max-width:none;aspect-ratio:4/5;object-fit:cover;object-position:center;flex-shrink:0}
.person-hero figure{width:calc(var(--official-portrait-width)/2)}
.person-hero{grid-template-columns:calc(var(--official-portrait-width)/2) minmax(0,1fr)}
.person-chip{gap:16px;padding:10px 20px 10px 10px}
.person-chip strong{max-width:290px}
.person-chip small{margin-bottom:6px}
@media(max-width:760px){:root{--official-portrait-width:224px;--official-portrait-height:280px}.person-chip{gap:14px;padding-right:14px}.person-chip strong{font-size:16px}}
@media(max-width:500px){.person-hero{grid-template-columns:1fr}.person-chip strong{font-size:15px}.person-chip-cta{font-size:14px}}
