﻿/* Locally served Google Fonts. Licenses accompany the font files. */
.nh-groups a{display:flex;align-items:center;min-height:44px}.nh-create-group{min-height:44px}
.nh-feed .btn{min-height:44px;padding:10px 14px}.nh-feed .nh-navigation a{min-height:44px;display:inline-flex;align-items:center}
.nh-feed .nh-layout{align-items:start}.nh-compose label,.nh-reply-form label{display:block;width:100%;font-size:12px;font-weight:650;margin-bottom:14px}.nh-compose input,.nh-compose textarea,.nh-compose select,.nh-reply-form textarea{display:block;width:100%;padding:11px 12px;border:1px solid var(--nh-line);border-radius:10px;margin-top:6px;background:var(--card-bg,#fff);color:var(--nh-ink);font:inherit;font-size:14px;min-height:44px}.nh-compose textarea,.nh-reply-form textarea{resize:vertical}.nh-compose .nh-panel-heading label{width:auto;min-width:140px}.nh-compose-footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.nh-compose-footer small{max-width:330px;color:var(--nh-muted)}.nh-compose-footer button{min-height:44px;white-space:normal}.nh-publish-status{font-size:12px;margin:10px 0 0}.nh-post,.nh-feed-empty{margin-top:20px}.nh-post-meta{font-size:12px;color:var(--nh-muted);margin:8px 0}.nh-post-body,.nh-reply p{white-space:pre-wrap;overflow-wrap:anywhere}.nh-post h2{overflow-wrap:anywhere}.nh-post-body{line-height:1.75}.nh-feed-guide{position:sticky;top:70px}.nh-feed-guide p{font-size:13px;color:var(--nh-muted)}.nh-thread{margin-top:18px;border-top:1px solid var(--nh-line);padding-top:12px}.nh-reply{padding:14px;background:var(--bg-color,#f4f7f5);border-radius:10px;margin-bottom:12px}.nh-reply strong{font-size:12px;color:var(--nh-accent)}.nh-reply p{margin:6px 0 0;font-size:13px}.nh-reply-form{margin-top:18px}.nh-feed button:focus-visible,.nh-feed textarea:focus-visible,.nh-feed select:focus-visible{outline:3px solid #0b6e4f;outline-offset:3px}
@media(max-width:1050px){.nh-feed-guide{position:static}}@media(max-width:540px){.nh-compose-footer{flex-direction:column;align-items:stretch}.nh-feed .nh-panel-heading{align-items:start}.nh-compose .nh-panel-heading label{width:100%}.nh-feed .nh-navigation{width:100%}.nh-feed .nh-navigation a,.nh-feed .nh-navigation button{padding:8px 10px}}
.nh-collab-tools{margin-top:20px}.nh-native-tools{grid-template-columns:repeat(4,minmax(0,1fr))}.nh-native-tools .nh-module{min-height:110px}.nh-library-search{display:flex;gap:12px;align-items:end;margin:20px 0}.nh-library-search input{min-width:240px}.nh-decks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.nh-deck{min-width:0;border:1px solid var(--nh-line);border-radius:14px;overflow:hidden}.nh-deck-cover{min-height:160px;background:linear-gradient(125deg,#124532,#0b6e4f);padding:24px;display:flex;align-items:center}.nh-deck-cover h3{color:white;font-size:22px;overflow-wrap:anywhere}.nh-deck-actions{display:flex;justify-content:space-between;align-items:center;padding:16px;gap:10px}.nh-pagination{display:flex;gap:16px;align-items:center;justify-content:center;margin-top:24px}.nh-slide{background:#f5f7f1;color:#102c22;padding:clamp(20px,4vw,55px);min-height:360px;max-height:65vh;overflow:auto;border-top:6px solid #f2b01e;border-radius:12px}.nh-slide img{width:110px;height:auto;margin-bottom:24px}.nh-slide h2{font-size:clamp(24px,3vw,42px);color:#103d2f;overflow-wrap:anywhere}.nh-slide p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:clamp(16px,2vw,23px);line-height:1.65}.nh-slide-controls{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:16px}.nh-slide-viewer:focus-visible{outline:3px solid #0b6e4f;outline-offset:4px}.nh-guide{margin-bottom:20px}
@media(max-width:900px){.nh-decks,.nh-native-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.nh-decks{grid-template-columns:1fr}.nh-library-search{flex-wrap:wrap}.nh-library-search label,.nh-library-search input{width:100%;min-width:0}.nh-slide{min-height:300px}.nh-slide-controls{font-size:12px}.nh-pagination{gap:10px}}
@font-face{font-family:'DM Sans';src:url('/assets/nhimbe_core/fonts/DM-Sans.ttf') format('truetype');font-weight:100 1000;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/nhimbe_core/fonts/Manrope.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
:root,[data-theme=light]{--primary:#0b6e4f;--primary-color:#0b6e4f;--btn-primary:#0b6e4f;--brand-color:#0b6e4f;--nh-green:#0b6e4f;--nh-gold:#f2b01e;--nh-line:#dce6e0;--font-stack:'DM Sans',system-ui,sans-serif;--bg-color:#f4f7f5;--border-radius:10px}
body,.frappe-control,input,button,select,textarea{font-family:'DM Sans',system-ui,sans-serif}
h1,h2,h3,.page-title,.nh-module strong{font-family:Manrope,'DM Sans',sans-serif;letter-spacing:-.035em}
.btn-primary{background:var(--nh-green)!important;border-color:var(--nh-green)!important;color:#fff!important}
.btn-primary:hover{background:#08573e!important}
.navbar{border-bottom:1px solid var(--nh-line);box-shadow:0 2px 12px #10221b04}
.navbar .app-logo{width:112px!important;max-height:30px!important;object-fit:contain}
.layout-main-section{border-radius:16px}
.form-section,.list-row{border-color:var(--nh-line)}
.desk-sidebar .selected,.standard-sidebar-item.selected{background:#e3f1e9!important;color:#08573e!important;border-radius:9px}
.control-input input:focus,.form-control:focus{border-color:#0b6e4f;box-shadow:0 0 0 3px #0b6e4f14}
body[data-path=login]{background:radial-gradient(ellipse at 15% 10%,#dceee2,transparent 50%),radial-gradient(ellipse at 85% 90%,#fbefd2,transparent 50%),#f6f8f5;min-height:100vh}
[data-path=login] .page-card{border:1px solid #dce6e0;border-radius:24px;box-shadow:0 24px 80px #143d2710;padding:32px;max-width:420px}
[data-path=login] .page-card-head .app-logo{width:168px!important;max-height:56px!important;height:auto!important}
[data-path=login] .page-card-head h4{font-family:Manrope,sans-serif;font-size:25px;letter-spacing:-.7px}
[data-path=login] .btn-login{min-height:44px;border-radius:10px}
[data-path=login] button[type=submit]{background:#0b6e4f!important;color:white!important;border-color:#0b6e4f!important;min-height:44px}
.nh-workspace{font-family:'DM Sans',sans-serif;--nh-ink:#102c22;--nh-muted:#52685e;--nh-accent:#0b6e4f;padding:24px 16px}
.nh-hero{position:relative;overflow:hidden;background:#103d2f;color:#fff;padding:36px 40px;border:1px solid #245342;min-height:224px;box-shadow:0 12px 40px #113e2f12}
.nh-hero:after{content:'';position:absolute;width:300px;height:300px;border:48px solid #f2b01e16;border-radius:50%;right:-70px;top:-120px;pointer-events:none}
.nh-hero h1{font-size:clamp(28px,3vw,42px);font-weight:750;max-width:650px;color:#fff}.nh-hero p:not(.nh-eyebrow){color:#d2e6da;max-width:540px}
.nh-hero .nh-eyebrow{color:#f4c75c}.nh-stage{background:#ffffff12;color:#f8e6ba;border-color:#ffffff30;white-space:normal;z-index:1}
.nh-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.nh-hero-actions a{display:inline-flex;align-items:center;min-height:42px;padding:9px 16px;border-radius:10px;background:#f2b01e;color:#183428;font-weight:750;text-decoration:none}.nh-hero-actions a+ a{background:#ffffff12;border:1px solid #ffffff30;color:white}
.nh-navigation{padding:5px;background:var(--card-bg,#fff);border:1px solid var(--nh-line);border-radius:14px;width:fit-content;max-width:100%}.nh-navigation button{cursor:pointer;min-height:44px}.nh-navigation [aria-current]{background:#e4f1e9;color:#0b6045}
.nh-module{position:relative;gap:10px;min-height:160px;border-color:var(--nh-line);background:var(--card-bg,#fff);padding:18px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.nh-module:hover{background:var(--card-bg,#fff);border-color:#80b29c;box-shadow:0 8px 20px #103d2f0a;transform:translateY(-3px)}
.nh-module-icon{display:grid;place-items:center;width:38px;height:38px;background:#edf5ef;border-radius:11px;color:#0b6e4f}.nh-module-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nh-module strong{font-size:15px}.nh-module-description{font-size:12px;color:var(--nh-muted);line-height:1.5}.nh-marker{position:absolute;right:16px;top:18px;font-size:15px;color:#80968b}
.nh-panel{border-color:var(--nh-line);box-shadow:0 3px 12px #10221b03}.nh-panel h2{font-size:19px}.nh-search input{min-height:42px}.nh-layout{grid-template-columns:minmax(0,2.3fr) minmax(260px,1fr)}
.nh-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 24px}.nh-stat{background:var(--card-bg,#fff);border:1px solid var(--nh-line);padding:18px 22px;border-radius:15px}.nh-stat strong{display:block;font:700 26px Manrope,sans-serif;margin:6px 0}.nh-stat span,.nh-stat small{font-size:12px;color:var(--nh-muted)}
.nh-readiness{list-style:none;margin:16px 0;padding:0}.nh-readiness li{padding:13px 0;border-bottom:1px solid var(--nh-line)}.nh-readiness a{color:var(--nh-accent);font-weight:650}.nh-readiness small{display:block;margin-top:4px;color:var(--nh-muted);line-height:1.5}.nh-status{display:inline-block;border-radius:6px;padding:3px 7px;background:#fff1d4;color:#77500a;font-size:10px;margin-bottom:5px;font-weight:700}.nh-status.available{background:#e4f3e9;color:#14683e}.nh-help{margin-top:22px}.nh-help p{color:var(--nh-muted);font-size:13px}.nh-panel[hidden]{display:none}
@media(max-width:1050px){.nh-modules{grid-template-columns:repeat(2,minmax(0,1fr))}.nh-layout{grid-template-columns:1fr}.nh-hero{align-items:flex-start}}
@media(max-width:600px){.nh-workspace{padding:12px 4px}.nh-hero{padding:24px;gap:16px;min-height:0}.nh-hero h1{letter-spacing:-1px}.nh-stage{font-size:11px}.nh-stats{gap:7px}.nh-stat{padding:12px 10px}.nh-stat strong{font-size:21px}.nh-stat small{font-size:10px}.nh-module{padding:14px;min-height:164px}.nh-navigation{width:100%}.nh-navigation button{padding:8px 12px;font-size:12px}.nh-panel{padding:20px}.nh-hero-actions a{font-size:12px}}
@media(prefers-reduced-motion:reduce){.nh-module{transition:none}.nh-module:hover{transform:none}}
[data-theme=dark]{--nh-line:#344a40;--bg-color:#14221c}[data-theme=dark] .nh-workspace{--nh-ink:#e2eee7;--nh-muted:#b4c8bd;--nh-accent:#7cd5ad}[data-theme=dark] .nh-hero{background:#103d2f}[data-theme=dark] .nh-module-icon,[data-theme=dark] .nh-navigation [aria-current]{background:#244d3b;color:#a0e2bf}[data-theme=dark] .nh-status{background:#4c3b18;color:#ffe1a3}[data-theme=dark] .nh-status.available{background:#244d3b;color:#a0e2bf}

/* Nhimbe boot splash: branded mark + indeterminate Nhimbe loading bar (replaces framework logo) */
.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}
.splash img{width:76px;height:76px;animation:nh-splash-pulse 1.6s ease-in-out infinite}
/* Keep the footer's grid gutters inside the viewport at tablet breakpoints. */
.web-footer > .container{padding-left:15px;padding-right:15px;box-sizing:border-box}
.splash::after{content:"";width:184px;height:5px;border-radius:999px;background:#dceee5;background-image:linear-gradient(90deg,transparent 0,#0b6e4f 45%,#15b886 62%,transparent 100%);background-size:45% 100%;background-repeat:no-repeat;animation:nh-splash-slide 1.15s ease-in-out infinite}
@keyframes nh-splash-slide{0%{background-position:-45% 0}100%{background-position:145% 0}}
@keyframes nh-splash-pulse{0%,100%{opacity:1}50%{opacity:.72}}
[data-theme=dark] .splash::after{background:#22392f}
@media(prefers-reduced-motion:reduce){.splash img{animation:none}.splash::after{animation:none;background-position:50% 0}}

/* Nhimbe 3D app iconography - depth + lift on every app-logo tile (launcher grid, sidebar, login) */
.app-logo{
  border-radius:23% !important;
  box-shadow:0 7px 16px rgba(16,34,27,.20), 0 1px 3px rgba(16,34,27,.14), inset 0 1px 0 rgba(255,255,255,.40) !important;
  transition:transform .2s cubic-bezier(.2,.7,.3,1), box-shadow .2s ease, filter .2s ease !important;
  filter:saturate(1.05);
}
.app-logo:hover{
  transform:translateY(-4px) scale(1.06) !important;
  box-shadow:0 16px 30px rgba(16,34,27,.28), 0 4px 8px rgba(16,34,27,.16), inset 0 1px 0 rgba(255,255,255,.5) !important;
  filter:saturate(1.12);
}
/* Lift the whole tile (icon + label) on the launcher/switcher when its logo is hovered */
.dropdown-menu-item a:hover, .sidebar-item:hover, .app-item:hover, .apps-list a:hover{
  transform:translateY(-2px);
  transition:transform .2s cubic-bezier(.2,.7,.3,1);
}
