/* Haaka Phase17 | local CSS independent of Bootstrap CDN availability */
html{scrollbar-gutter:stable}body{overflow-x:hidden}img{max-width:100%;height:auto}.shell.container,.container.shell,.partner17-layout .container{width:min(100% - 36px,1320px);max-width:1320px;margin-inline:auto}
.row{display:flex;flex-wrap:wrap;margin-inline:-12px}.row>*{width:100%;min-width:0;padding-inline:12px}.col-lg-2,.col-lg-3,.col-lg-4,.col-md-6,.col-6{min-width:0}.col-6{flex:0 0 50%;max-width:50%}
@media(min-width:768px){.col-md-6{flex:0 0 50%;max-width:50%}}
@media(min-width:992px){.col-lg-2{flex:0 0 16.6667%;max-width:16.6667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333%;max-width:33.3333%}}
.form-control,.form-select{display:block;width:100%;min-width:0;padding:.75rem .9rem;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* Regions: preserve cinematic artwork, give the copy a readable surface in light mode */
.region17-layout{min-width:0;max-width:1320px;margin-inline:auto}.region17-layout .region12-index-heading{max-width:850px}.region17-layout .region12-public-search{max-width:780px}.region17-layout .region12-search-row{display:flex;gap:12px;align-items:stretch}.region17-layout .region12-search-row .form-control{flex:1;min-width:0;min-height:48px}.region17-layout .region12-search-row button{white-space:nowrap}
.region17-layout .region12-place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.region17-layout .region12-place-card{min-width:0;overflow:hidden;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 45px rgba(20,12,8,.045)}.region17-layout .region12-place-art{min-height:170px}.region17-layout .region12-place-body{background:var(--panel);color:var(--text);padding:24px}.region17-layout .region12-place-body p{color:var(--muted);overflow-wrap:anywhere}.region17-layout .region12-explore{color:var(--accent)}.region17-layout .region12-empty{background:var(--panel);color:var(--text);padding:38px;border:1px dashed var(--line)}
[data-theme=light] .region17-layout .region12-place-card,[data-theme=light] .region12-detail .region12-child-card{background:#fffdf9;color:#28221c;border-color:#e4d6c9}
[data-theme=light] .region17-layout .region12-place-body,[data-theme=light] .region12-detail .region12-child-card>div:last-child{background:#fffdf9;color:#28221c}
[data-theme=light] .region17-layout .region12-place-body p,[data-theme=light] .region12-detail .region12-lead:not(.region12-hero .region12-lead){color:#5d5149}
/* Partner: screenshot-inspired warm editorial hero, fully self-contained forms */
.partner17-layout{background:var(--bg);color:var(--text);min-width:0}.partner17-layout .partner13-hero{padding-block:clamp(60px,7vw,110px);background:linear-gradient(125deg,#f7efe4,#fff9f0);color:#251e19;min-height:0}.partner17-layout .partner13-hero .eyebrow{color:#bc5527}
.partner17-layout .partner13-hero h1{max-width:1050px;font-size:clamp(42px,6.7vw,96px);line-height:1.03;letter-spacing:-.065em;margin:0 0 22px}.partner17-layout .partner13-hero h1 span,.partner17-layout .partner13-hero h1 em{display:block;font-style:normal}.partner17-layout .partner13-hero h1 em{color:#ef701b}.partner17-layout .partner13-hero-desc{max-width:610px;color:#5f5750;font-size:clamp(16px,1.5vw,21px)}
.partner17-layout .partner13-buyer-band{background:var(--bg);border-block:1px solid var(--line);padding:30px 0}.partner17-layout .partner13-buyers{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.partner17-layout .partner13-buyer{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0;min-height:90px;padding:15px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text)}.partner17-layout .partner13-buyer strong{font-size:15px}.partner17-layout .partner13-buyer span{color:var(--muted);font-size:12px}
.partner17-layout .partner13-content{padding-block:50px 75px}.partner17-layout .partner13-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.94fr);gap:clamp(20px,3.5vw,65px);align-items:start}.partner17-layout .partner13-enquiry,.partner17-layout .partner13-resources{min-width:0}.partner17-layout .partner13-section-title{margin-bottom:22px}.partner17-layout .partner13-section-title h2{font-size:clamp(25px,3vw,40px);margin-bottom:9px}.partner17-layout .partner13-form,.partner17-layout .partner13-resources{background:var(--panel);color:var(--text);padding:clamp(18px,2.5vw,35px);border:1px solid var(--line);border-radius:12px}.partner17-layout .partner13-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.partner17-layout .partner13-form-grid .wide{grid-column:1/-1}.partner17-layout .partner13-form label{display:flex;flex-direction:column;gap:8px;min-width:0;color:var(--text);font-size:.84rem;font-weight:700}.partner17-layout .partner13-form input,.partner17-layout .partner13-form select,.partner17-layout .partner13-form textarea{width:100%;min-width:0;max-width:100%;padding:12px 13px;border-radius:7px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:15px}.partner17-layout .partner13-form textarea{min-height:115px;resize:vertical}.partner17-layout .partner13-form>.btn-h{margin-top:18px}
.partner17-layout .partner13-resources h2{font-size:1.5rem;margin-bottom:20px}.partner17-layout .partner13-resource{border-top:1px solid var(--line);padding:19px 0}.partner17-layout .partner13-resource h3{font-size:1rem;margin:0 0 8px}.partner17-layout .partner13-resource p{font-size:.9rem}.partner17-layout .partner13-resource a{display:inline-block;color:var(--accent);font-weight:750;margin:5px 8px 0 0}.partner17-layout .partner13-screener{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:clamp(20px,5vw,75px);align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:clamp(18px,3vw,44px);margin-top:48px;color:var(--text)}.partner17-layout .partner13-screener .partner13-form{padding:24px;background:var(--bg)}
[data-theme=light] .partner17-layout .partner13-form,[data-theme=light] .partner17-layout .partner13-resources,[data-theme=light] .partner17-layout .partner13-screener,[data-theme=light] .partner17-layout .partner13-buyer{background:#fffdf9;color:#25201b;border-color:#e5d9cc}
[data-theme=light] .partner17-layout .partner13-form :is(input,select,textarea){background:#fff;color:#28231e;border-color:#cfc3b6}
[data-theme=light] .partner17-layout .partner13-screener .partner13-form{background:#faf5ee}
[data-theme=dark] .partner17-layout .partner13-hero{background:linear-gradient(125deg,#2a2421,#17191b);color:#fff8ef}.partner17-layout .partner13-hero .btn-outline{border-color:currentColor;color:inherit}[data-theme=dark] .partner17-layout .partner13-hero-desc{color:#d0c5b9}
/* App badges: uploaded artwork is the complete badge; don't overlay generated text. */
.footer-app-badges{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.site-footer .haaka17-store-link{display:inline-flex;align-items:center;justify-content:center;max-width:178px;min-height:52px;padding:0;background:transparent;border-radius:8px;text-decoration:none;overflow:hidden}.haaka17-store-link.is-unreleased{opacity:.65;cursor:default}.haaka17-store-image{display:block;width:auto;max-width:178px;height:auto;max-height:63px;object-fit:contain}.haaka17-store-generated{display:flex;flex-direction:column;justify-content:center;min-height:52px;padding:8px 12px;border:1px solid currentColor;border-radius:8px}.haaka17-store-generated small{font-size:10px}.haaka17-store-generated strong{font-size:15px;line-height:1.25}.site-footer .footer-columns{row-gap:28px}
/* Admin: stable top bar / independently scrolling navigation / pinned footer */
.admin14-shell{min-width:0}.admin14-shell .admin14-header{position:sticky!important;top:0;z-index:1070;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-inline:clamp(12px,2vw,28px);background:var(--admin14-paper,#fff9ef);border-bottom:1px solid var(--admin14-border,#e2d5c6)}.admin14-shell .admin14-body{display:grid!important;grid-template-columns:232px minmax(0,1fr)}.admin14-shell .admin-sidebar{position:sticky!important;top:58px;align-self:start!important;height:calc(100dvh - 58px)!important;overflow:auto!important;display:flex!important;flex-direction:column!important;padding:14px 10px 10px!important;scrollbar-width:thin}.admin14-shell .admin-sidebar nav{display:flex;flex-direction:column;flex:1;gap:3px}.admin14-shell .admin-sidebar nav a{min-height:42px;display:flex;align-items:center;gap:10px;border-radius:8px;padding:9px 12px;min-width:0}.admin14-shell .admin-sidebar nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin14-shell .admin14-sidebar-foot{position:sticky;bottom:-10px;padding:14px 10px;margin-top:auto;background:var(--admin14-paper,#fff9ef);border-top:1px solid var(--admin14-border,#e2d5c6);z-index:1}.admin14-shell .admin14-content{min-width:0}.admin14-shell .admin14-toolbar{display:flex;align-items:center;gap:12px;min-width:0}.admin14-shell .admin14-user-name{max-width:170px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
[data-theme=light] .admin14-shell :is(.admin14-metric,.admin14-report-card,.admin14-quick-card,.admin-panel){color:#2c241d;background:#fffaf3;border-color:#e4d8cc}
[data-theme=light] .admin14-shell :is(input,select,textarea){color:#28211c;background:#fff;border-color:#cbbdb0}
@media(max-width:1100px){.region17-layout .region12-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.partner17-layout .partner13-buyers{grid-template-columns:repeat(3,minmax(0,1fr))}.admin14-shell .admin14-body{grid-template-columns:208px minmax(0,1fr)}}
@media(max-width:850px){.partner17-layout .partner13-columns{grid-template-columns:1fr}.partner17-layout .partner13-resources{max-width:none}.partner17-layout .partner13-screener{grid-template-columns:1fr}.partner17-layout .partner13-buyers{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.admin14-shell .admin14-body{display:block!important}.admin14-shell .admin-sidebar{position:fixed!important;top:58px!important;left:0!important;height:calc(100dvh - 58px)!important;width:min(290px,86vw)!important;z-index:1080;transform:translateX(-110%);box-shadow:18px 0 45px #0002;transition:transform .2s}.admin14-shell .admin-sidebar.is-open{transform:translateX(0)}.region17-layout .region12-place-grid{grid-template-columns:1fr}.partner17-layout .partner13-hero{padding-block:65px}.partner17-layout .partner13-hero h1{font-size:clamp(38px,9.5vw,65px)}.partner17-layout .partner13-buyer{min-height:74px}.partner17-layout .partner13-content{padding-block:30px 50px}}
@media(max-width:480px){.shell.container,.container.shell,.partner17-layout .container{width:min(100% - 26px,1320px)}.partner17-layout .partner13-form-grid{grid-template-columns:1fr}.partner17-layout .partner13-form-grid .wide{grid-column:auto}.partner17-layout .partner13-buyers{grid-template-columns:1fr 1fr}.partner17-layout .partner13-form,.partner17-layout .partner13-resources{padding:19px}.region17-layout .region12-search-row{flex-direction:column}.region17-layout .region12-search-row button{width:100%}}
@media(prefers-reduced-motion:reduce){.admin14-shell .admin-sidebar{transition:none!important}}

/* Phase17 communications and private member inbox */
.phase17-transport{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:11px 15px;background:var(--admin14-warm,#f8eee1);border:1px solid var(--admin14-border,#e4d8cc);border-radius:10px}.phase17-transport code{overflow-wrap:anywhere}.phase17-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.phase17-stats .admin-panel{margin:0;min-height:102px}.phase17-stats small,.phase17-stats strong{display:block}.phase17-stats strong{font:700 31px Georgia,serif;color:var(--admin14-copper,#b9612d)}.phase17-comm-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;margin-bottom:18px}.phase17-comm-grid .admin-panel{margin:0}.phase17-form{display:grid;gap:15px}.phase17-form label{display:grid;gap:6px;font-weight:700;font-size:13px}.phase17-form :is(input,textarea){width:100%;min-width:0;padding:11px 12px;border:1px solid var(--admin14-border,#d6c7b6);border-radius:7px;background:var(--admin14-paper,#fffaf4);color:var(--admin14-ink,#2c261f)}.phase17-form .btn-h{justify-self:start}.phase17-table{width:100%;border-collapse:collapse}.phase17-table th,.phase17-table td{padding:11px;text-align:left;border-bottom:1px solid var(--admin14-border,#e1d5ca);overflow-wrap:anywhere}.phase17-table th{font-size:12px;letter-spacing:.06em;text-transform:uppercase}.phase17-muted-note{padding:18px 0;color:var(--admin14-muted,#76685a);font-size:12px}.phase17-notices,.phase17-optout{padding-block:70px;min-height:65vh}.phase17-notices h1,.phase17-optout h1{font-size:clamp(34px,5vw,60px)}.phase17-notice-list{display:grid;gap:14px;max-width:960px}.phase17-notice{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--panel);display:flex;justify-content:space-between;gap:16px;align-items:start}.phase17-notice h2{font-size:19px;margin:8px 0}.phase17-notice a{color:var(--accent)}.phase17-notice.is-read{opacity:.72}.haaka17-inbox-link{font-size:28px;text-decoration:none}
@media(max-width:1100px){.phase17-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:850px){.phase17-comm-grid{grid-template-columns:1fr}}@media(max-width:570px){.phase17-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.phase17-notice{flex-direction:column}}
/* Offcanvas still works with the local fallback if Bootstrap CDN JS/CSS fails. */
@media(max-width:900px){.offcanvas.mobile-drawer{position:fixed;inset:0 0 0 auto;width:min(340px,90vw);max-width:100%;height:100dvh;z-index:1090;transform:translateX(110%);visibility:hidden;transition:transform .22s ease;background:#1f1d1a;color:#fff;overflow-y:auto;box-shadow:-18px 0 40px #0004}.offcanvas.mobile-drawer.show{transform:translateX(0);visibility:visible}.offcanvas.mobile-drawer .offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:20px}.offcanvas.mobile-drawer .offcanvas-body{padding:10px 24px 28px}.offcanvas.mobile-drawer .btn-close{border:0;background:transparent;color:inherit;font-size:20px;cursor:pointer}.offcanvas.mobile-drawer .btn-close::after{content:'×'}}

.phase17-smtp-test{margin-left:auto}.phase17-smtp-test .btn-h{padding:8px 12px}.phase17-smtp-test .btn-h:disabled{opacity:.4;cursor:not-allowed}
/* 320px phone: keep primary controls accessible through the mobile drawer without forcing horizontal scroll. */
@media(max-width:360px){.haaka13-header .main-nav{gap:6px!important}.haaka13-header .brand{min-width:70px!important}.haaka13-header .brand img{width:88px!important}.haaka13-header .haaka13-actions{gap:2px!important}.haaka13-header .haaka13-login{display:none!important}}
