/* NUMEN Brandbook 1.0, 07.09.2026, pp. 6, 12, 14, 16–18.
 * Shared presentation layer. No changes to map symbology or application state.
 * Dark brand surfaces for navigation; light working surfaces for dense data.
 */
@font-face{font-family:"Numen Suisse";src:url("./fonts/SuisseIntl-Regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Numen Suisse";src:url("./fonts/SuisseIntl-SemiBold.otf") format("opentype");font-weight:600 900;font-style:normal;font-display:swap}
@font-face{font-family:"Numen Legal";src:url("./fonts/BebasNeue-Regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Numen Legal";src:url("./fonts/BebasNeue-Bold.otf") format("opentype");font-weight:600 900;font-style:normal;font-display:swap}
:root{--numen-night:#061129;--numen-stone:#e6d2b6;--numen-mist:#fff7ef;--numen-font:"Numen Suisse",Arial,sans-serif;--numen-legal:"Numen Legal",var(--numen-font);--paper:var(--numen-mist);--ink:var(--numen-night);--numen:var(--numen-stone);--blue:var(--numen-night);--signal:var(--numen-stone);--white:#fff;--soft:#f4e8d9;--muted:#606775;--line:#d9d1c6}
html{font-family:var(--numen-font);color:var(--ink);background:var(--paper)}
body{font-family:var(--numen-font)!important;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}
body :is(h1,h2,h3,h4,h5,h6,p,span,small,strong,label,legend,summary,a,button,input,select,textarea,td,th,li,dt,dd){font-family:var(--numen-font)!important}
body :is(h1,h2,h3,h4,h5,h6){font-weight:400;letter-spacing:-.035em}
body :is(button,input,select,textarea){font-size:inherit}
body :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--numen-night)!important;outline-offset:4px}
body :is(button,input,select,textarea){accent-color:var(--numen-night)}
body :is(.analysis-header,.topbar,.map-header,.document-header,.site-header,.home-header),body[data-numen-page="gradplan"]>header{background:var(--numen-night);color:var(--numen-stone);border-color:rgba(230,210,182,.28);box-sizing:border-box}
body :is(.analysis-header,.topbar,.map-header,.document-header,.site-header,.home-header) a,body[data-numen-page="gradplan"]>header a{color:var(--numen-stone)}
body :is(.analysis-header,.topbar,.map-header,.document-header,.site-header,.home-header) :focus-visible{outline-color:var(--numen-stone)!important}
body :is(.analysis-header,.map-header,.document-header,.site-header){min-height:86px;height:auto;padding-top:12px;padding-bottom:12px;gap:20px}
body :is(.brand,.numen-auth__brand),body :is(.map-header,.document-header)>a:first-child,body .home-header h1{display:block;flex:0 0 auto;width:202px;height:50px;min-height:50px;margin:0;overflow:hidden;text-indent:-10000px;background:url("./logos/numen-eng_color_1.svg") center/contain no-repeat;font-size:0;letter-spacing:0;line-height:0;border:0;white-space:nowrap}
body .brand>*{visibility:hidden}
body :is(.map-page,.document-page){grid-template-rows:auto minmax(0,1fr)}
body .home-header{min-height:180px;height:auto;align-items:center;padding:32px clamp(20px,4vw,64px)}
body .home-header h1{width:min(440px,65vw);height:auto;aspect-ratio:934/231}
body .home-header p{margin:0}
body .home-header a{display:inline-flex;align-items:center;min-height:44px}
body .city-grid{background:var(--numen-stone);gap:1px}
body .city{background-color:var(--numen-night);min-height:240px;padding:32px;color:var(--numen-stone)}
body .city h2{color:var(--numen-stone);font-size:clamp(28px,3.5vw,48px);line-height:1.12;letter-spacing:-.025em}
body .city-link:hover,body .city-link:focus-visible{background-color:#15223a}
body .city-link::after{border-color:var(--numen-stone)}
body .hero h1{line-height:1;letter-spacing:-.045em;font-size:clamp(52px,7.4vw,108px)}
body .workspace-title h2{line-height:1.08;font-size:clamp(32px,4.2vw,64px);letter-spacing:-.035em}
body :is(.start-form,.planning-card,.urban-card,.upload-card,.analysis-map-card,.geobase-card,.ufm-card,.finance-card,.report-preview){color:var(--numen-night)}
body .start-form{border-top-color:var(--numen-night)}
body :is(.start-form input,.geobase-card input:not([type=file]),.geobase-card select,.geobase-card textarea){background:var(--numen-mist);color:var(--numen-night);border-color:var(--line)}
body :is(.primary-button,.development-to-finance,.ufm-controls>button:first-child,.fm-downloads button,.fm-downloads a,.zouit-actions button,#library-login button,#library-refresh){background:var(--numen-night);color:var(--numen-stone);border-color:var(--numen-night);min-height:44px}
body :is(.primary-button,.development-to-finance,.fm-downloads button,.fm-downloads a):hover{background:#19253d}
body :is(.summary-card,.development-potential-status,.development-potential-highlight,.urban-next-step,.document-readiness,.finance-site-link,.ufm-scenario-bar,.ufm-highlight){background:var(--numen-stone);color:var(--numen-night)}
body .tab{color:var(--muted);font-size:15px}
body .tab.is-active,body .ufm-scenario-bar button.is-active{background:var(--numen-night);color:var(--numen-stone)}
body :is(.add-cadastral,.source-links a,.report-actions button,.geobase-actions button){min-height:44px}
body :is(.geobase-notice,#library-login){background:var(--numen-mist);border-color:var(--numen-stone);color:var(--numen-night)}
body :is(.geobase-card legend,.geobase-card h4,.metric-grid strong,.user-document-grid strong){letter-spacing:-.025em}
body :is(.report-preview,.zouit-page main){color:var(--numen-night)}
body :is(.report-preview a,.zouit-text-link,#report-zouit-links a){color:var(--numen-night)}
body :is(.disclaimer,.document-legal-note,.numen-copyright,.legal-notice){font-family:var(--numen-legal)!important;font-size:16px;letter-spacing:.02em;line-height:1.4}
/* Existing login controls and authentication logic are retained verbatim. */
body .numen-auth{background:var(--numen-night);color:var(--numen-stone);font-family:var(--numen-font)}
body .numen-auth__box{width:min(100%,420px)}
body .numen-auth__brand{width:260px;height:65px;margin:0 0 36px -19px}
body .numen-auth__title{font-size:30px;font-weight:400;line-height:1.15}
body .numen-auth__input{background:#142039;color:var(--numen-mist);border:1px solid #748096;border-radius:0;font-size:17px}
body .numen-auth__input:focus{border-color:var(--numen-stone)}
body .numen-auth__button{background:var(--numen-stone);color:var(--numen-night);border-radius:0;font-weight:600}
body .numen-auth :focus-visible{outline-color:var(--numen-stone)!important}
/* Current production auth.js uses auth-gate; keep its form and handlers intact. */
body #auth-gate{background:var(--numen-night);color:var(--numen-stone);font-family:var(--numen-font)}
body #auth-gate .auth-card{width:min(100%,420px);color:var(--numen-stone)}
body #auth-gate .auth-brand{width:260px;max-width:100%;height:65px;margin:0 0 36px -19px;overflow:hidden;text-indent:-10000px;background:url("./logos/numen-eng_color_1.svg") center/contain no-repeat;font-size:0;line-height:0}
body #auth-gate input{background:#142039;color:var(--numen-mist);border:1px solid #748096;border-radius:0;font-family:var(--numen-font);font-size:17px}
body #auth-gate button{background:var(--numen-stone);color:var(--numen-night);border:0;border-radius:0;min-height:44px;font-weight:600}
body #auth-gate :focus-visible{outline-color:var(--numen-stone)!important}
/* Home page uses the dominant dark field specified by the brandbook. */
body[data-numen-page="home"]{background:var(--numen-night);color:var(--numen-stone)}
body[data-numen-page="home"] .topbar{background:var(--numen-night);backdrop-filter:none}
body[data-numen-page="home"] .hero{background:var(--numen-night);color:var(--numen-stone)}
body[data-numen-page="home"] .eyebrow{color:var(--numen-stone);font-weight:400}
body[data-numen-page="home"] .hero h1{font-size:clamp(56px,9vw,140px);font-weight:400;letter-spacing:-.035em;line-height:.95}
body[data-numen-page="home"] .hero h1 span{font-size:.32em;letter-spacing:.18em}
body[data-numen-page="home"] .hero h1 .numen-hero-logo{display:block;width:min(780px,76vw);height:auto;margin-left:-6.4%;margin-bottom:20px}
body[data-numen-page="home"] .hero h1:has(.numen-hero-logo){font-size:clamp(56px,9vw,140px);line-height:.3}
body[data-numen-page="home"] .lead{font-size:clamp(22px,2.8vw,38px);line-height:1.3;max-width:720px}
body[data-numen-page="home"] .hero-mark{display:none}
body[data-numen-page="colleagues"] .hero h1 em{font-family:var(--numen-font);font-style:normal;color:var(--numen-night);-webkit-text-stroke:0}
/* Existing Numen Park marketing pages already use this palette. The legacy
 * architecture page is dark; v2 home and apartment pages are light. */
body[data-numen-page="park"]:not(.v2-page){--muted:#aeb4c1;--line:#2d364b;background:var(--numen-night);color:var(--numen-mist)}
body[data-numen-page="park"]:not(.v2-page) :focus-visible{outline-color:var(--numen-stone)!important}
/* Genplan and standalone restrictions use the same working-paper treatment. */
body[data-numen-page="gradplan"]{background:var(--numen-mist);color:var(--numen-night)}
body[data-numen-page="gradplan"] :is(#search,.coverage-result){background:#f0e2cf}
body[data-numen-page="gradplan"] button{background:var(--numen-night);color:var(--numen-stone)}
body[data-numen-page="gradplan"] .examples button{background:transparent;color:var(--numen-night)}
body[data-numen-page="gradplan"] :is(.subtle,.intro,.eyebrow){color:var(--muted)}
body[data-numen-page="zouit"]{background:var(--numen-mist);color:var(--numen-night)}
body[data-numen-page="zouit"] a{color:var(--numen-night)}
/* City-map UI is themed independently of geographic tiles, layers and markers. */
body[data-numen-page="map-ui"]{--green:var(--numen-night);--navy:var(--numen-night);--lime:var(--numen-stone)}
body[data-numen-page="map-ui"] .brand-mark{display:block;flex:none;width:160px;height:44px;overflow:hidden;text-indent:-10000px;background:url("./logos/numen-eng_color_1.svg") center/contain no-repeat;letter-spacing:0;font-size:0}
body[data-numen-page="map-ui"] .topbar{color:var(--numen-stone);background:var(--numen-night)}
body[data-numen-page="map-ui"] .brand-block p{color:var(--numen-stone)}
body[data-numen-page="map-ui"] .market-strip,body[data-numen-page="map-ui"] .method-card{background:var(--numen-night);color:var(--numen-stone)}
body[data-numen-page="map-ui"] .market-strip span{color:var(--numen-stone)}
body[data-numen-page="map-ui"] .top-actions .ghost-button{color:var(--numen-stone);border-color:#68748b;background:transparent}
body[data-numen-page="map-ui"] .section-nav button.active{background:var(--numen-stone);color:var(--numen-night);border-bottom-color:var(--numen-night)}
body[data-numen-page="map-ui"] .numen-notes-toggle{background:var(--numen-stone);color:var(--numen-night);border-color:var(--numen-stone)}
/* Preserve photograph/map colors and risk semantics; only brand chrome changes. */
@media(max-width:760px){
  body :is(.analysis-header,.map-header,.document-header,.site-header){padding:12px 20px;gap:12px;flex-wrap:wrap}
  body :is(.brand,.map-header>a:first-child,.document-header>a:first-child){width:170px;height:44px;min-height:44px}
  body .analysis-header nav{display:flex;flex-wrap:wrap;gap:12px 20px}
  body .analysis-header nav a{min-height:32px;display:inline-flex;align-items:center}
  body .back-link{font-size:13px;gap:6px}
  body .home-header{min-height:140px;padding:20px;gap:20px;align-items:flex-start}
  body .city{min-height:112px;padding:24px}
  body .city h2{font-size:30px}
  body .hero h1{font-size:clamp(48px,11vw,72px);line-height:1.04}
  body .topbar{gap:12px;padding:8px 16px}
  body .topbar .brand{width:160px;height:44px;min-height:44px}
  body .login-link{font-size:12px;line-height:1.3;max-width:120px;text-align:right}
  body .fm-downloads{grid-template-columns:minmax(0,1fr)}
}
@media print{
  html,body{background:white!important;color:var(--numen-night)!important}
  body :is(.report-preview,.report-cover){background:white!important;color:var(--numen-night)!important}
}
