@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#075b43;--green2:#087c5d;--deep:#053b31;--gold:#efba38;--ink:#20332e;--muted:#6c7c75;--bg:#f3f6f3;--border:#dfe8e2;--red:#bf454b;--blue:#3478a4;--shadow:0 10px 32px #0837280a}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:'DM Sans',Arial,sans-serif;color:var(--ink);font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}.layout{display:flex;min-height:100vh}.sidebar{width:258px;flex:0 0 258px;background:linear-gradient(160deg,#064835,#06392f);color:#e8fff4;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;box-shadow:8px 0 30px #003f2812;z-index:3}.brand{display:flex;align-items:center;gap:13px;padding:23px 19px 27px;border-bottom:1px solid #ffffff23}.brand img{height:62px;width:62px;object-fit:contain;border-radius:50%;background:white}.brand b{display:block;font:800 26px Manrope}.brand small{font-size:9px;font-weight:800;letter-spacing:1.25px;color:#cfebdc}.sb-heading{font-size:10px;color:#91baaa;letter-spacing:1.8px;margin:24px 22px 10px;font-weight:800}nav{overflow:auto;padding:0 10px 10px}nav button{width:100%;border:0;background:none;color:#c4e2d3;text-align:left;padding:12px 13px;border-radius:9px;display:flex;align-items:center;gap:12px;margin:2px 0;font-size:13px;font-weight:600}nav button .ico{font-size:17px;width:21px;text-align:center}nav button.active,nav button:hover{background:#ffffff1d;color:#fff}nav button.active{border-left:3px solid var(--gold);padding-left:10px}.sb-bottom{margin-top:auto;padding:17px 20px;border-top:1px solid #ffffff25;color:#c8e5da;font-size:11px}.sb-bottom small{display:block;color:#7cab9a;margin-top:7px}.pulse{display:inline-block;height:8px;width:8px;background:#51c797;border-radius:50%;margin-right:6px}.main-shell{min-width:0;flex:1}.topbar{height:91px;background:white;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:15px 30px;gap:12px}.breadcrumb{font-size:11px;color:#88958c}.screen-title{font:800 21px Manrope;margin-top:4px;color:#144b39}.top-actions{display:flex;align-items:center;gap:12px}.pill{font-size:11px;color:#12815f;background:#e7f7ee;padding:8px 10px;border-radius:30px;white-space:nowrap}.role-label{color:#7b8b84;font-size:11px;display:flex;gap:7px;align-items:center}.role-label select{border:1px solid var(--border);padding:9px;max-width:180px;border-radius:8px;background:white;color:#234337;font-weight:700;font-size:11px}.avatar{background:var(--green);width:33px;height:33px;display:grid;place-items:center;color:white;border-radius:50%;font-weight:800}.mobile-menu{display:none}main{padding:27px 30px 35px;max-width:1670px;margin:auto;min-height:calc(100vh - 143px)}.footer{border-top:1px solid var(--border);background:white;padding:15px 30px;font-size:11px;color:#8c9991;display:flex;justify-content:space-between}.hero{background:linear-gradient(103deg,#064e39,#07845c);border-radius:17px;padding:30px 32px;box-shadow:var(--shadow);color:white;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden}.hero:after{content:'✦';position:absolute;right:14%;font-size:160px;color:#ffffff0e;top:-45px}.hero h1{font:800 29px Manrope;line-height:1.2;margin:8px 0}.hero p{color:#d3eae0;margin:0;max-width:680px;line-height:1.6}.eyebrow{font-size:11px;letter-spacing:1.8px;color:#f5ce6f;font-weight:800}.hero-mark{font-size:65px;color:#ffffff3e;margin-right:36px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:20px 0}.stat{background:white;border:1px solid var(--border);border-radius:12px;padding:20px;position:relative;box-shadow:var(--shadow)}.stat .label{font-size:11px;color:#72877c;font-weight:700}.stat strong{display:block;font:800 32px Manrope;margin:9px 0 1px;color:#174d3c}.stat .mini{font-size:11px;color:#82918a}.stat .stat-ico{position:absolute;right:17px;top:18px;width:39px;height:39px;border-radius:10px;background:#edf7f1;display:grid;place-items:center;font-size:19px}.row{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.panel{background:white;border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow);padding:22px;margin-bottom:18px}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.panel h2{font:800 16px Manrope;margin:0;color:#1e4637}.panel small{color:#85938b}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:25px 0 14px}.section-heading h2{font:800 18px Manrope;margin:0}.muted{color:var(--muted)}.btn{background:var(--green);color:white;border:1px solid var(--green);border-radius:8px;padding:10px 14px;font-size:12px;font-weight:800;white-space:nowrap}.btn:hover{filter:brightness(1.1)}.btn.secondary{background:white;color:var(--green);border-color:#bcd7cb}.btn.gold{background:var(--gold);color:#433a1b;border-color:var(--gold)}.btn.red{background:#b84145;border-color:#b84145}.btn.tiny{padding:7px 9px;font-size:11px}.btn:disabled{opacity:.35;cursor:not-allowed}.btnrow{display:flex;gap:8px;flex-wrap:wrap}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;background:#f6f9f7;color:#72867b;font-size:10px;text-transform:uppercase;letter-spacing:.65px;padding:13px 11px;white-space:nowrap;border-bottom:1px solid var(--border)}td{padding:12px 11px;border-bottom:1px solid #edf2ee;vertical-align:middle}tr:hover td{background:#fbfdfb}.code{font-family:monospace;font-size:11px;color:#277f61;font-weight:800}.badge{display:inline-block;border-radius:30px;padding:5px 9px;font-size:10px;font-weight:800;white-space:nowrap;background:#f0f3f4;color:#4b6a5e}.badge.approved{background:#dcf6e7;color:#147b50}.badge.returned{background:#ffebea;color:#ba4f55}.badge.submitted,.badge.provincial,.badge.caph,.badge.director,.badge.chair{background:#fff1cb;color:#9c6f10}.badge.draft{background:#edf0f1;color:#64736b}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.search,input,textarea,select{outline:none}.search,.filter{border:1px solid #d7e5dc;border-radius:8px;padding:10px 12px;background:white;min-width:170px}.search{flex:1}.empty{padding:34px;text-align:center;color:#84968b}.empty b{display:block;color:#4d675b;margin-bottom:6px}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.choice{border:1px solid var(--border);border-radius:14px;background:white;padding:23px;box-shadow:var(--shadow)}.choice .symbol{width:50px;height:50px;border-radius:12px;display:grid;place-items:center;background:#eaf5ef;font-size:24px}.choice h3{font:800 16px Manrope;margin:14px 0 8px}.choice p{color:#77877f;min-height:55px;font-size:12px;line-height:1.6}.form-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.step-tabs{display:flex;gap:6px;overflow:auto;margin:18px 0 20px}.step-tabs button{padding:10px 13px;border:1px solid var(--border);background:white;border-radius:8px;font-weight:700;color:#6f8978;white-space:nowrap;font-size:11px}.step-tabs button.active{background:#e4f3eb;color:var(--green);border-color:#9dcdba}.form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field label{display:block;font-size:11px;color:#62786c;font-weight:800;margin-bottom:7px}.field label em{color:#ce4a47;font-style:normal}.field input,.field textarea,.field select{width:100%;border:1px solid #dae6de;padding:11px 12px;border-radius:9px;color:#253f34;background:#fff}.field textarea{min-height:88px;resize:vertical}.field.wide{grid-column:span 2}.warning{background:#fff8e5;border:1px solid #f1dda4;padding:13px;border-radius:9px;color:#795e1f;font-size:12px;margin:12px 0;line-height:1.5}.info{background:#eaf5ee;color:#28644a;border-radius:9px;padding:12px;font-size:12px;margin:10px 0;line-height:1.6}.form-actions{border-top:1px solid var(--border);margin-top:22px;padding-top:18px;display:flex;justify-content:space-between;gap:10px}.attachment{padding:12px;border:1px solid var(--border);border-radius:9px;display:flex;justify-content:space-between;align-items:center;gap:8px;margin:8px 0}.attachment .filemeta{color:#788e80;font-size:11px;margin-top:4px}.timeline{display:grid;gap:0}.event{padding:8px 0 16px 27px;border-left:2px solid #c6e2d2;position:relative;font-size:12px}.event:before{content:'';position:absolute;left:-6px;top:9px;width:10px;height:10px;border-radius:50%;background:#15946e}.event b{display:block;color:#184b39}.event small{color:#8d9e93;display:block;margin:3px 0}.flowcards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.flow-card{background:#fff;border:1px solid var(--border);padding:15px 12px;border-radius:12px;position:relative}.flow-card:not(:last-child):after{content:'→';position:absolute;right:-13px;top:40%;z-index:2;font-size:18px;color:#a9bea9}.flow-card .num{background:#e9f6eb;color:var(--green);border-radius:8px;width:32px;height:32px;display:grid;place-items:center;font-weight:800;margin-bottom:9px}.flow-card b{font-size:12px}.flow-card p{font-size:11px;color:#809185;line-height:1.5}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.barline{display:flex;align-items:center;gap:8px;margin:12px 0}.barline label{width:148px;font-size:11px;color:#617a6b}.bartrack{height:11px;flex:1;border-radius:30px;background:#e9f1ec;overflow:hidden}.bartrack>span{display:block;height:100%;background:linear-gradient(90deg,#087c5c,#e8ba3d);border-radius:30px}.legend{font-size:11px;color:#7b8c80}.source-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:17px;display:flex;justify-content:space-between;gap:10px;margin:10px 0}.source-card b{font-size:12px}.source-card p{font-size:11px;color:#829286;margin:6px 0}.smallgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.readonly{background:#f8faf8;padding:11px;border:1px solid #e8eee9;border-radius:8px;min-height:46px;white-space:pre-wrap;overflow-wrap:anywhere}.detailgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detailgrid label{font-size:10px;font-weight:800;color:#829288;display:block;margin-bottom:5px}.section-note{background:#f7faf8;border-left:3px solid #d8aa2c;padding:13px;margin:11px 0;border-radius:4px;font-size:12px;color:#4d6959}.toast{position:fixed;right:20px;bottom:20px;z-index:20;background:#073f30;color:#fff;padding:14px 17px;border-radius:9px;box-shadow:0 8px 25px #0004;display:none;max-width:350px}.settings-row{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:10px}.settings-row p{font-size:11px;color:#809184;margin:6px 0 0}a{color:#147756}code{font-size:11px}.refrow{display:flex;gap:7px;align-items:center}.refrow a{font-size:11px}.divider{height:1px;background:var(--border);margin:18px 0}@media(max-width:1200px){.flowcards{grid-template-columns:repeat(3,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:13px 18px}main{padding:20px}}@media(max-width:850px){.sidebar{position:fixed;left:-275px;transition:.2s}.sidebar.open{left:0}.mobile-menu{display:block;background:none;border:0;font-size:24px;color:var(--green)}.role-label{font-size:0}.top-actions .pill{display:none}.row,.two-col{grid-template-columns:1fr}.choice-grid{grid-template-columns:1fr}.flowcards{grid-template-columns:1fr 1fr}.hero-mark{display:none}.hero h1{font-size:22px}.form-fields,.detailgrid{grid-template-columns:1fr}.field.wide{grid-column:span 1}.footer{display:block}.footer span{display:block;margin-top:5px}}@media print{.sidebar,.topbar,.footer,.btn,.toolbar,.form-actions{display:none!important}.main-shell{width:100%}main{padding:0}.panel{box-shadow:none;break-inside:avoid}.print-hide{display:none!important}}

.map-editor{margin:18px 0;padding:18px;border:1px solid #bed9c7;border-radius:14px;background:#f8fcf8}.interactive-google-map{height:390px;min-height:300px;background:#deebe1;border-radius:12px;overflow:hidden;margin:14px 0}.map-loading{height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:35px;color:#376d56;line-height:1.8}.role-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;border-left:5px solid #d3af45}.role-intro h2{margin:0 0 6px}.role-intro p{margin:0}.role-intro .btnrow{flex-shrink:0}@media(max-width:800px){.role-intro{display:block}.role-intro .btnrow{margin-top:14px}}

/* v4 | form-coded heritage location gallery */
.nav-sub-group{padding:0 0 7px 13px;margin-top:-1px;border-left:1px solid #63978255;margin-left:20px}.nav-sub-group button{font-size:11px;margin:1px 0;padding:8px 9px;min-height:30px}.nav-sub-group .nav-sub-form{border-left:3px solid transparent;border-radius:4px;line-height:1.4}.nav-sub-form.formcolor-1{border-left-color:#3bc594;color:#aeecda}.nav-sub-form.formcolor-2{border-left-color:#6cb8f2;color:#aedaf2}.nav-sub-form.formcolor-3{border-left-color:#e7a0ae;color:#f3cfda}.nav-sub-group .nav-sub-location{color:#eed68d}.gallery-disclaimer{background:#fff6dc;border:1px solid #efdca1;color:#735a22;padding:14px 17px;border-radius:10px;font-size:12px;margin:17px 0}.loc-form-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 22px}.loc-tab{border:1px solid #d6e1d9;background:#fff;padding:13px 14px;border-radius:10px;color:#334e43;font-size:12px;font-weight:800;display:flex;gap:10px;align-items:center}.loc-tab strong{border-radius:20px;background:#f2f5f3;padding:4px 8px}.loc-tab.formcolor-1{border-bottom:4px solid #11956f}.loc-tab.formcolor-2{border-bottom:4px solid #3981b5}.loc-tab.formcolor-3{border-bottom:4px solid #c4586b}.loc-tab.selected{background:#e8f5ed;border-color:#a7c9b8;box-shadow:0 3px 11px #0d5c3617}.location-filters{display:grid;grid-template-columns:1fr 1.5fr auto;align-items:end;gap:14px}.location-filters label{font-size:11px;color:#66796e;font-weight:800}.location-filters input,.location-filters select{display:block;width:100%;border:1px solid #cddfd4;padding:11px;border-radius:8px;margin-top:7px;background:#fff}.loc-counter{border-radius:10px;padding:8px 20px;background:#e9f4ec;text-align:center;color:#075f48}.loc-counter strong{font:800 23px Manrope;display:block}.loc-counter span{font-size:10px}.province-chips{margin-top:17px;display:flex;gap:8px;flex-wrap:wrap}.province-chips button{border:1px solid #d5e5db;background:#fff;border-radius:30px;font-size:11px;color:#416351;padding:7px 10px}.province-chips button.selected{background:#08765a;color:#fff}.province-chips span{font-weight:800;color:#b58a25;margin-left:3px}.heritage-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:24px}.heritage-card{background:white;border:1px solid #dfebe3;border-radius:14px;overflow:hidden;box-shadow:0 10px 25px #0837280b;display:flex;flex-direction:column}.heritage-card.form-1{border-top:4px solid #11956f}.heritage-card.form-2{border-top:4px solid #3981b5}.heritage-card.form-3{border-top:4px solid #c4586b}.heritage-thumb{position:relative;aspect-ratio:8/5;background:#e9f2ec;overflow:hidden}.heritage-thumb img{width:100%;height:100%;object-fit:cover;display:block}.heritage-form-label{position:absolute;left:10px;top:10px;background:#082c2cd9;color:#fff;border-radius:5px;padding:6px 8px;font-size:10px;letter-spacing:.5px;font-weight:800}.heritage-body{padding:16px;flex:1;display:flex;flex-direction:column}.heritage-location{color:#708578;font-size:11px}.heritage-body h3{font:800 15px Manrope;color:#204437;margin:9px 0 7px;line-height:1.4}.heritage-body p{margin:0 0 15px;font-size:12px;color:#64776b}.heritage-card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:7px}.heritage-card-foot .badge{font-size:9px;white-space:normal}.heritage-card-foot .btn{white-space:nowrap}.heritage-gallery+.panel{margin-top:15px}@media(max-width:1300px){.heritage-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.heritage-gallery{grid-template-columns:1fr}.location-filters{grid-template-columns:1fr}.loc-tab{flex:1;justify-content:space-between}.nav-sub-group{margin-left:12px}}

/* v5 integrated map displays */
.map-panel {margin-top:18px}
.map-panel .panel-header{align-items:flex-start;gap:14px;flex-wrap:wrap}
.map-panel .panel-header p{margin-top:6px;max-width:700px}
.embedded-map{height:360px;min-height:360px;border:1px solid #dce8dd;border-radius:12px;overflow:hidden;margin-top:16px}
.map-legend{display:flex;align-items:center;gap:13px;flex-wrap:wrap;font-size:12px;color:#46675a}
.map-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.map-key,.type-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#9b9b9b;flex:none}
.formtype-1{background:#07966d}.formtype-2{background:#348bc4}.formtype-3{background:#c95270}
.map-restricted{min-height:130px;border-radius:12px;background:#f4f7f5;display:grid;place-items:center;text-align:center;padding:20px;color:#647b6d}
.map-info-content{font:12px/1.5 Arial,sans-serif;max-width:260px;color:#163c2d}.map-info-content strong{font-size:13px}.map-info-content p{margin:5px 0 8px}
.map-controls{display:flex;align-items:end;gap:14px;margin:16px 0;flex-wrap:wrap}.map-controls label{display:grid;gap:6px;font-size:11px;color:#607467;flex:1;min-width:185px}
.map-controls select,.map-controls input{border:1px solid #d8e4da;border-radius:8px;padding:11px;background:white;font:inherit;min-width:0}
.gis-count{font-size:12px;color:#326850;white-space:nowrap;padding-bottom:11px}
.gis-map-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);gap:14px}
.gis-main-map{height:530px;min-height:530px;border:1px solid #dce8dd;border-radius:12px;overflow:hidden}
.gis-records{height:530px;overflow-y:auto;border:1px solid #e3ebe4;border-radius:12px;background:#f9fbf9}
.gis-record{display:flex;align-items:center;gap:10px;width:100%;border:0;border-bottom:1px solid #e3ece5;background:transparent;text-align:left;padding:13px;cursor:pointer;color:#173d30}
.gis-record:hover,.gis-record.selected{background:#e0f3e9}.gis-record span:nth-child(2){flex:1;min-width:0}
.gis-record strong{display:block;font-size:12px;line-height:1.4}.gis-record small{display:block;margin-top:4px;color:#728578;font-size:11px}
.gis-record-arrow{color:#2a8461}
@media(max-width:900px){.gis-map-layout{grid-template-columns:1fr}.gis-main-map{height:390px;min-height:390px}.gis-records{height:260px}.embedded-map{height:300px;min-height:300px}}
@media print{.embedded-map,.gis-main-map,.gis-records{display:none}}
