:root {
  --nvl-font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --nvl-bg: #f5faf7;
  --nvl-surface: #ffffff;
  --nvl-surface-muted: #eef5f1;
  --nvl-panel: #ecf4ef;
  --nvl-text: #0f1f17;
  --nvl-text-secondary: #4a6358;
  --nvl-ink: #142822;
  --nvl-ink-muted: #3d5348;
  --nvl-border: #dbe8e0;
  --nvl-border-strong: #c5d9ce;
  --nvl-accent-line: #2f7d5a;
  --nvl-radius-sm: 8px;
  --nvl-radius-md: 12px;
  --nvl-radius-lg: 14px;
  --nvl-shadow-xs: 0 1px 2px rgba(15, 40, 30, 0.05);
  --nvl-shadow-sm: 0 2px 10px rgba(15, 40, 30, 0.07);
  --nvl-shadow-md: 0 8px 28px rgba(15, 40, 30, 0.09);
  --nvl-btn: #007a3d;
  --nvl-btn-hover: #006332;
  --nvl-btn-on-primary: #ffffff;
  --nvl-focus-ring: 0 0 0 2px var(--nvl-surface), 0 0 0 4px var(--nvl-accent-line);
  --nvl-ring-focus: 0 0 0 3px rgba(0, 122, 61, 0.22);
  --nvl-card: #f0f6f3;
  --nvl-surface-raised: #e8f2ec;
}

body.theme-dark {
  --nvl-bg: #12141a;
  --nvl-surface: #1a1d24;
  --nvl-surface-muted: #22262e;
  --nvl-panel: #22262e;
  --nvl-card: #2c3138;
  --nvl-text: #e8eaed;
  --nvl-text-secondary: #9aa0a8;
  --nvl-ink: #e8eaed;
  --nvl-ink-muted: #9aa0a8;
  --nvl-border: #2d323c;
  --nvl-border-strong: #3d4450;
  --nvl-accent-line: #34d399;
  --nvl-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.35);
  --nvl-shadow-sm: 0 4px 14px rgba(0, 0, 0, 0.35);
  --nvl-shadow-md: 0 12px 36px rgba(0, 0, 0, 0.45);
  --nvl-btn: #34d399;
  --nvl-btn-hover: #6ee7b7;
  --nvl-btn-on-primary: #0f1f17;
  --nvl-focus-ring: 0 0 0 2px var(--nvl-surface), 0 0 0 4px var(--nvl-accent-line);
  --nvl-ring-focus: 0 0 0 3px rgba(52, 211, 153, 0.28);
  --nvl-surface-raised: #2e343d;
}

/* NVL Office Support Portal - Clean, professional UI */
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth}
body{margin:0;font-family:var(--nvl-font);line-height:1.6;color:var(--nvl-text);background:var(--nvl-bg);min-height:100vh;-webkit-font-smoothing:antialiased}
@keyframes pageBgMove{0%,100%{background-position:0% 50%,100% 50%}50%{background-position:100% 50%,0% 50%}}
.main-wrapper{min-height:100vh;display:flex;flex-direction:column}
.container{flex:1;max-width:1400px;margin:0 auto;padding:40px 48px;width:100%}
.container.planner-active{max-width:1600px}
.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:32px;padding:0 0 20px 0;border-bottom:1px solid var(--nvl-border)}
.app-header .logo-link{display:inline-block;cursor:pointer;transition:opacity .2s;border:none;background:transparent;padding:0;margin:0;font:inherit}
.app-header .logo-link:hover{opacity:.8}
.logo{max-height:48px;width:auto;display:block;vertical-align:middle}
/* Dashboard panel */
.home-dashboard-wrap{position:relative;overflow:hidden;border-radius:12px;margin-bottom:24px}
.home-dashboard-bg{position:absolute;inset:-2px;z-index:0;background:#fff;border:1px solid var(--nvl-border)}
.home-dashboard-inner{position:relative;z-index:1;padding:48px 56px;min-height:calc(100vh - 200px);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:40px;width:100%;max-width:100%}
body.theme-dark{color:var(--nvl-text);background:var(--nvl-bg);min-height:100vh}
body.theme-dark .home-dashboard-bg{background:var(--nvl-surface);backdrop-filter:blur(10px)}
/* Card grid */
.hub-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:20px;max-width:100%;margin:0 auto;justify-items:stretch;width:100%}
.hub-circle{min-height:160px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;border:1px solid var(--nvl-border);box-shadow:0 1px 3px rgba(0,0,0,.04);transition:all .18s ease;padding:24px 20px}
.hub-circle:hover{box-shadow:0 4px 12px rgba(0,0,0,.08);border-color:#ddd;transform:translateY(-1px)}
.hub-circle .tab-icon{font-size:1.5rem;margin-bottom:10px;text-align:center;display:block;opacity:.9}
.hub-circle .tab-title{font-size:0.95rem;font-weight:600;margin-bottom:6px;text-align:center;width:100%;color:var(--nvl-text);letter-spacing:-.01em}
.hub-circle .tab-description{font-size:0.8rem;line-height:1.45;text-align:center;width:100%;color:var(--nvl-text-secondary)}
.hub-bar{max-width:100%;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px 24px;border-radius:10px;background:#fff;border:1px solid var(--nvl-border);box-shadow:0 1px 3px rgba(0,0,0,.04)}
.hub-bar .tab-icon{font-size:1.6rem;margin-right:10px;margin-bottom:0}
.hub-bar .tab-title{font-size:1.1rem;margin:0}
.hub-bar .tab-description{font-size:0.9rem;margin-top:2px}
body.theme-dark .hub-bar{background:var(--nvl-card);border-color:var(--nvl-border-strong)}
.logo{max-height:56px;width:auto;display:block}
.greeting-message{margin:0;font-size:0.9rem;color:var(--nvl-text-secondary)}
.screen{display:none}
.screen.active{display:block;animation:fadeIn .2s ease-out}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.portal-header{margin-bottom:28px}
.portal-header h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--nvl-text);letter-spacing:-.02em}
.last-used-row{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.last-used-label{font-size:0.9rem;color:var(--nvl-text-secondary)}
.last-used-link{padding:8px 16px;font-size:0.875rem;font-weight:500;background:var(--nvl-btn);color:var(--nvl-btn-on-primary);border:none;border-radius:8px;cursor:pointer;transition:background .2s}
.last-used-link:hover{background:var(--nvl-btn-hover)}
.home-main-row{display:flex;justify-content:flex-start;align-items:flex-start;gap:48px;position:relative;width:100%}
@media (max-width:1200px){.home-main-row{flex-direction:column}.home-main-row>div:last-child{margin-left:0;margin-top:24px;width:100%;max-width:100%}.dashboard-calendar-widget{max-width:100%}.hub-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}
.app-sidebar{width:200px;flex-shrink:0;display:flex;flex-direction:column;gap:4px;padding:0;position:sticky;top:32px;align-self:flex-start;margin-right:40px;min-height:calc(100vh - 100px);justify-content:flex-start}
.app-sidebar-bottom{display:flex;flex-direction:column;gap:4px;margin-top:auto}
.app-tab{position:relative;padding:12px 16px;background:#fff;border:none;border-left:3px solid transparent;border-radius:8px;cursor:pointer;text-align:left;font-size:0.875rem;font-weight:500;color:var(--nvl-text);transition:all .15s ease;box-shadow:0 1px 2px rgba(0,0,0,.04);white-space:nowrap;border:1px solid var(--nvl-border)}
.app-tab:hover{background:var(--nvl-surface-muted);border-color:var(--nvl-border)}
.app-tab.active{background:var(--nvl-surface-muted);border-color:var(--nvl-border);font-weight:600}
.app-tab.office-tab.active{border-left-color:#c41e3a;border-left-width:3px}
.app-tab.warehouse-tab.active{border-left-color:#2d5a27;border-left-width:3px}
.app-tab.marketing-tab.active{border-left-color:#b8860b;border-left-width:3px}
.app-tab.lee-tab.active{border-left-color:#1e4d6b;border-left-width:3px}
.app-tab.gill-tab.active{border-left-color:#5c2d6b;border-left-width:3px}
.app-tab.danny-tab.active{border-left-color:#8b4513;border-left-width:3px}
.app-tab.paul-tab.active{border-left-color:#0d6b5c;border-left-width:3px}
.app-tab.office-tab:hover{border-left-color:#c41e3a}
.app-tab.warehouse-tab:hover{border-left-color:#2d5a27}
.app-tab.marketing-tab:hover{border-left-color:#b8860b}
.app-tab.lee-tab:hover{border-left-color:#1e4d6b}
.app-tab.gill-tab:hover{border-left-color:#5c2d6b}
.app-tab.danny-tab:hover{border-left-color:#8b4513}
.app-tab.paul-tab:hover{border-left-color:#0d6b5c}
.app-tab.zigzag-tab{background:#2563eb;color:#fff;border:1px solid #1e40af;text-decoration:none;display:block}
.app-tab.zigzag-tab:hover{background:#1d4ed8;border-color:#1e40af}
.app-tab-content{display:none;min-height:600px}
.app-tab-content.active{display:block;animation:fadeIn .3s ease-out}
body.theme-dark .app-tab{background:var(--nvl-card);color:var(--nvl-text);box-shadow:none}
body.theme-dark .app-tab:hover{box-shadow:none;background:var(--nvl-surface-muted)}
body.theme-dark .app-tab.active{background:var(--nvl-surface-muted)}
body.theme-dark .app-tab.zigzag-tab{background:#2563eb;color:#fff;border-color:#1e40af}
body.theme-dark .app-tab.zigzag-tab:hover{background:#1d4ed8;border-color:#1e40af}
@media (max-width:1200px){.app-sidebar{width:100%;padding-right:0;flex-direction:row;gap:8px;margin-bottom:24px;position:relative;top:0;min-height:auto;justify-content:flex-start;flex-wrap:wrap}.app-sidebar-bottom{width:100%;flex-direction:row;gap:8px;margin-top:12px;padding-top:12px;border-top:2px solid var(--nvl-border-strong)}.app-tab{flex:1;text-align:center;border-left:none;border-bottom:4px solid transparent;padding:12px 16px;border-radius:8px 8px 0 0;transform:none}.app-tab:hover{transform:none}.app-tab.active{border-left:none}.app-tab.office-tab.active{border-bottom-color:#c41e3a}.app-tab.warehouse-tab.active{border-bottom-color:#2d5a27}.app-tab.marketing-tab.active{border-bottom-color:#d4af37}.app-tab.lee-tab.active{border-bottom-color:#1e4d6b}.app-tab.gill-tab.active{border-bottom-color:#5c2d6b}.app-tab.danny-tab.active{border-bottom-color:#8b4513}.app-tab.paul-tab.active{border-bottom-color:#0d6b5c}.app-tab.office-tab:hover{border-left:none;border-bottom-color:#c41e3a;transform:none}.app-tab.warehouse-tab:hover{border-left:none;border-bottom-color:#2d5a27;transform:none}.app-tab.marketing-tab:hover{border-left:none;border-bottom-color:#d4af37;transform:none}.app-tab.lee-tab:hover{border-left:none;border-bottom-color:#1e4d6b;transform:none}.app-tab.gill-tab:hover{border-left:none;border-bottom-color:#5c2d6b;transform:none}.app-tab.danny-tab:hover{border-left:none;border-bottom-color:#8b4513;transform:none}.app-tab.paul-tab:hover{border-left:none;border-bottom-color:#0d6b5c;transform:none}.app-tab-content{min-height:auto}}
.tabs-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:32px}
.tab-button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:18px 20px;background:#fff;border:1px solid var(--nvl-border);border-radius:10px;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.tab-button:hover{border-color:var(--nvl-border-strong);box-shadow:0 2px 8px rgba(0,0,0,.06);transform:translateY(-1px)}
.tab-button.hub-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 20px;background:#fff;border:1px solid var(--nvl-border);border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.04);min-height:160px}
.tab-button.hub-circle:hover{border-color:#ddd;box-shadow:0 2px 8px rgba(0,0,0,.06);transform:translateY(-1px)}
.tab-icon{font-size:1.4rem;margin-bottom:8px}
.tab-title{font-size:0.95rem;font-weight:600;color:var(--nvl-text);margin-bottom:4px}
.tab-description{font-size:0.8rem;color:var(--nvl-text-secondary);line-height:1.4}
/* Circle spokes override base tab styles */
.tab-button.hub-node{padding:0;width:170px;height:170px;border-radius:999px;align-items:center;justify-content:center;text-align:center}
.tab-button.hub-node .tab-icon{font-size:1.4rem;margin-bottom:6px}
.tab-button.hub-node .tab-title{font-size:0.95rem;margin-bottom:2px;text-align:center}
.tab-button.hub-node .tab-description{font-size:0.8rem;line-height:1.3;text-align:center}
.quick-links-stats-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;padding-top:24px;border-top:1px solid var(--nvl-border-strong);align-items:start}
@media (max-width:600px){.quick-links-stats-row{grid-template-columns:1fr}}
.quick-links-home-section{}
.quick-links-home-heading{font-size:1.15rem;font-weight:600;color:var(--nvl-ink);margin:0 0 12px 0}
.stats-home-section{}
.stats-home-heading{font-size:1.15rem;font-weight:600;color:var(--nvl-ink);margin:0 0 12px 0}
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.stat-card{background:#fff;border:1px solid var(--nvl-border-strong);border-radius:10px;padding:14px 16px;box-shadow:0 2px 6px rgba(0,0,0,.05);display:flex;flex-direction:column;gap:4px}
.stat-value{font-size:1.5rem;font-weight:700;color:var(--nvl-ink);line-height:1.2}
.stat-label{font-size:0.8rem;color:var(--nvl-ink-muted);text-transform:uppercase;letter-spacing:.04em}
.quick-links-home-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.quick-links-home-buttons a,.quick-links-home-buttons button{padding:10px 18px;font-size:0.875rem;font-weight:500;background:var(--nvl-btn);color:var(--nvl-btn-on-primary);border:none;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-block;transition:background .2s}
.quick-links-home-buttons a:hover,.quick-links-home-buttons button:hover{background:var(--nvl-btn-hover)}
.quick-links-manage-btn{padding:10px 18px;font-size:0.875rem;font-weight:500;background:transparent;color:var(--nvl-text-secondary);border:1px solid var(--nvl-border);border-radius:8px;cursor:pointer;transition:all .15s}
.quick-links-manage-btn:hover{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong);color:var(--nvl-text)}
.screen-header{margin-bottom:20px}
.back-button{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;font-size:0.9rem;font-weight:500;background:#fff;color:var(--nvl-text-secondary);border:1px solid var(--nvl-border);border-radius:8px;cursor:pointer;transition:all .15s}
.back-button:hover{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong);color:var(--nvl-text)}
.back-button svg{flex-shrink:0}
.calculator-card{background:#fff;border:1px solid var(--nvl-border);border-radius:10px;padding:28px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.calculator-card h2{margin:0 0 20px 0;font-size:1.25rem;font-weight:600;color:var(--nvl-text)}
.converter-wrapper{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.input-group,.result-group{flex:1;min-width:140px}
.input-group label,.result-group label{display:block;font-size:0.875rem;font-weight:500;color:var(--nvl-text-secondary);margin-bottom:6px}
.input-group input,.result-group .result{width:100%;padding:10px 12px;font-size:0.95rem;border:1px solid var(--nvl-border);border-radius:8px;background:#fff}
.input-group input:focus{outline:none;border-color:var(--nvl-accent-line);box-shadow:var(--nvl-ring-focus)}
.result-group .result{font-weight:600;color:var(--nvl-ink);background:var(--nvl-panel)}
.swap-button{flex-shrink:0;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:var(--nvl-surface-muted);border:1px solid var(--nvl-border-strong);border-radius:8px;cursor:pointer;color:var(--nvl-ink-muted);transition:background .2s}
.swap-button:hover{background:var(--nvl-border-strong)}
.price-section{margin-bottom:20px}
.price-input-group label{display:block;font-size:0.9rem;font-weight:500;color:var(--nvl-ink-muted);margin-bottom:6px}
.price-input-group input{padding:12px 14px;font-size:1rem;border:1px solid var(--nvl-border-strong);border-radius:8px;width:100%}
.price-input-group input:focus{outline:none;border-color:var(--nvl-accent-line)}
.price-conversion-display{margin:12px 0;font-size:0.95rem}
.converted-price-label{color:var(--nvl-ink-muted)}
.converted-price-value{font-weight:600;color:var(--nvl-ink)}
.total-price-group label{display:block;font-size:0.9rem;font-weight:500;color:var(--nvl-ink-muted);margin-bottom:6px}
.total-result{font-size:1.25rem;font-weight:700;color:var(--nvl-ink)}
.info{margin:16px 0;padding:12px;background:var(--nvl-panel);border-radius:8px;font-size:0.9rem;color:var(--nvl-ink-muted)}
.info p{margin:0}
.cross-link-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--nvl-border)}
.cross-link-btn{padding:10px 18px;font-size:0.9rem;font-weight:500;background:var(--nvl-btn);color:var(--nvl-btn-on-primary);border:none;border-radius:8px;cursor:pointer;transition:background .2s}
.cross-link-btn:hover{background:var(--nvl-btn-hover)}
.filter-section{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}
.filter-group{flex:1;min-width:180px}
.filter-label{display:block;font-size:0.9rem;font-weight:500;color:var(--nvl-ink-muted);margin-bottom:6px}
.filter-select{width:100%;padding:10px 12px;font-size:0.95rem;border:1px solid var(--nvl-border-strong);border-radius:8px;background:#fff}
.search-section{margin-bottom:20px}
.search-input{width:100%;padding:12px 14px;font-size:1rem;border:1px solid var(--nvl-border-strong);border-radius:8px}
.search-input:focus{outline:none;border-color:var(--nvl-accent-line)}
.company-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--nvl-border)}
.company-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}
.company-section.hidden,.conversion-row.hidden{display:none!important}
.company-name{font-size:1.1rem;font-weight:600;color:var(--nvl-ink);margin:0 0 12px 0}
.conversions-table{display:flex;flex-direction:column;gap:10px}
.conversion-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px 14px;background:var(--nvl-panel);border-radius:8px;border:1px solid var(--nvl-border)}
.their-color,.our-color{display:flex;flex-direction:column;gap:2px}
.color-label{font-size:0.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--nvl-accent-line)}
.color-value{font-size:0.95rem;font-weight:500;color:var(--nvl-ink)}
.arrow{font-size:1.25rem;color:var(--nvl-accent-line);font-weight:700}
.shipping-input-section{margin-bottom:24px}
.shipping-input-section label{display:block;font-size:0.9rem;font-weight:500;color:var(--nvl-ink-muted);margin-bottom:6px}
.shipping-input-section input{width:100%;max-width:280px;padding:12px 14px;font-size:1rem;border:1px solid var(--nvl-border-strong);border-radius:8px}
.shipping-results{display:flex;flex-direction:column;gap:20px}
.result-card{padding:16px;background:var(--nvl-panel);border-radius:8px;border:1px solid var(--nvl-border)}
.result-label{font-size:0.9rem;color:var(--nvl-ink-muted);margin-bottom:4px}
.result-value{font-size:1.5rem;font-weight:700;color:var(--nvl-ink)}
.result-note{font-size:0.8rem;color:var(--nvl-accent-line);margin-top:4px}
.converter-hides-section{padding:16px;background:var(--nvl-panel);border-radius:8px;border:1px solid var(--nvl-border);margin-bottom:24px;max-width:280px}
.carriage-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.carriage-option{padding:14px;background:var(--nvl-panel);border:2px solid var(--nvl-border);border-radius:8px;cursor:pointer;transition:border-color .2s,background .2s}
.carriage-option:hover{border-color:var(--nvl-border-strong)}
.carriage-option.selected,.carriage-option:focus-within{border-color:var(--nvl-accent-line);background:#fff;box-shadow:0 0 0 3px rgba(16,185,129,.22)}
.carriage-header{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.carriage-name{font-weight:600;color:var(--nvl-ink)}
.carriage-range{font-size:0.85rem;color:var(--nvl-ink-muted)}
.carriage-price{font-size:1.1rem;font-weight:700;color:var(--nvl-ink)}
.pallet-option{border-style:dashed}
.selected-carriage{padding:16px;background:var(--nvl-surface-muted);border-radius:8px;border:1px solid var(--nvl-border-strong)}
.selected-label{font-size:0.85rem;color:var(--nvl-ink-muted);margin-bottom:4px}
.selected-value{font-weight:600;color:var(--nvl-ink)}
.selected-price{font-size:1.25rem;font-weight:700;color:var(--nvl-ink);margin-top:4px}
.sample-form-container{max-width:100%}
.form-controls{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.print-button,.clear-button{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;font-size:0.95rem;border:none;border-radius:8px;cursor:pointer;transition:opacity .2s}
.print-button{background:var(--nvl-btn);color:var(--nvl-btn-on-primary)}
.print-button:hover,.clear-button:hover{opacity:.9}
.clear-button{background:#f5f5f5;color:var(--nvl-text-secondary);border:1px solid var(--nvl-border)}
.sample-form{background:#fff;border:1px solid var(--nvl-border);border-radius:10px;padding:28px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.form-header h2{margin:0 0 24px 0;font-size:1.2rem;font-weight:600;color:var(--nvl-text)}
.form-section{margin-bottom:24px}
.form-section:last-of-type{margin-bottom:0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.form-row:last-child{margin-bottom:0}
.form-field{display:flex;flex-direction:column;gap:6px}
.form-field.full-width{grid-column:1 / -1}
.form-field label{font-size:0.9rem;font-weight:500;color:var(--nvl-ink-muted)}
.form-input,.form-textarea{padding:10px 12px;font-size:0.95rem;font-family:inherit;border:1px solid var(--nvl-border-strong);border-radius:8px}
.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--nvl-accent-line)}
.form-textarea{resize:vertical;min-height:80px}
.form-three-column{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:700px){.form-three-column{grid-template-columns:1fr}}
.form-column h3{font-size:1rem;font-weight:600;color:var(--nvl-ink);margin:0 0 10px 0}
.search-box{margin-bottom:10px}
.search-input-small{width:100%;padding:8px 10px;font-size:0.9rem;border:1px solid var(--nvl-border-strong);border-radius:6px}
.items-container{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.item-selector{display:flex;align-items:flex-start;gap:8px}
.item-selector select,.item-selector input{flex:1;padding:8px 10px;font-size:0.9rem;border:1px solid var(--nvl-border-strong);border-radius:6px}
.notes-textarea{flex:1;padding:8px 10px;font-size:0.9rem;font-family:inherit;border:1px solid var(--nvl-border-strong);border-radius:6px;min-height:60px;resize:vertical}
.add-item-btn{padding:8px 14px;font-size:0.9rem;background:transparent;color:var(--nvl-accent-line);border:1px dashed var(--nvl-accent-line);border-radius:6px;cursor:pointer;transition:background .2s,color .2s}
.add-item-btn:hover{background:var(--nvl-panel);color:var(--nvl-ink-muted)}
.remove-item-btn{flex-shrink:0;width:32px;height:32px;padding:0;font-size:1.25rem;line-height:1;background:var(--nvl-surface-muted);color:var(--nvl-ink-muted);border:none;border-radius:6px;cursor:pointer;transition:background .2s}
.remove-item-btn:hover{background:var(--nvl-border-strong)}
.contacts-container{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.contact-controls{margin-top:8px}
.add-contact-btn{padding:10px 18px;font-size:0.9rem;font-weight:500;background:var(--nvl-btn);color:var(--nvl-btn-on-primary);border:none;border-radius:8px;cursor:pointer;transition:background .2s}
.add-contact-btn:hover{background:var(--nvl-btn-hover)}
.notes-input-section{margin-bottom:16px}
.notes-textarea-large{width:100%;min-height:200px;padding:14px;font-size:0.95rem;font-family:inherit;border:1px solid var(--nvl-border-strong);border-radius:8px;resize:vertical}
.notes-textarea-large:focus{outline:none;border-color:var(--nvl-accent-line)}
.notes-controls{margin-top:12px}
.clear-notes-btn{padding:10px 18px;font-size:0.95rem;background:var(--nvl-surface-muted);color:var(--nvl-ink-muted);border:1px solid var(--nvl-border-strong);border-radius:8px;cursor:pointer;transition:background .2s}
.clear-notes-btn:hover{background:var(--nvl-border-strong)}
.quick-links-description{font-size:0.95rem;color:var(--nvl-ink-muted);margin:0 0 16px 0;line-height:1.5}
.quick-links-controls{margin-bottom:16px}
.add-quick-link-btn{padding:10px 18px;font-size:0.9rem;font-weight:500;background:var(--nvl-btn);color:var(--nvl-btn-on-primary);border:none;border-radius:8px;cursor:pointer;transition:background .2s}
.add-quick-link-btn:hover{background:var(--nvl-btn-hover)}
.quick-links-list{display:flex;flex-direction:column;gap:10px}
.emailer-form{max-width:640px}
.emailer-row{display:flex;flex-wrap:wrap;gap:16px}
.emailer-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.emailer-image-options{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.emailer-file-input{position:absolute;width:0.1px;height:0.1px;opacity:0;overflow:hidden}
.emailer-upload-label{cursor:pointer;margin:0}
.emailer-upload-btn{margin:0;cursor:pointer;display:inline-block}
.emailer-file-name{font-size:0.85rem;color:var(--nvl-ink-muted);margin-top:4px}
body.theme-dark .emailer-file-name{color:var(--nvl-text-secondary)}
.emailer-preview-wrap{margin-top:20px;padding-top:20px;border-top:1px solid var(--nvl-border)}
.emailer-preview{max-width:600px;min-height:120px;padding:16px;background:var(--nvl-panel);border:1px solid var(--nvl-border);border-radius:8px;font-size:0.9rem;line-height:1.5}
.emailer-preview img{max-width:100%;height:auto;display:block;margin-bottom:12px}
body.theme-dark .emailer-preview-wrap{border-top-color:var(--nvl-border-strong)}
body.theme-dark .emailer-preview{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong)}
.app-footer{margin-top:auto;padding:24px;text-align:center;font-size:0.8rem;color:var(--nvl-text-secondary);background:var(--nvl-surface-muted);border-top:1px solid var(--nvl-border)}
.app-footer p{margin:0}
/* Dark mode */
body.theme-dark{color:var(--nvl-text);background:var(--nvl-bg)}
body.theme-dark .app-header{border-bottom-color:var(--nvl-ink-muted)}
body.theme-dark .side-nav-section-title{color:var(--nvl-text)}
body.theme-dark .side-nav-link{color:var(--nvl-text-secondary)}
body.theme-dark .side-nav-link:hover{background:rgba(16,185,129,.28);color:#fff}
body.theme-dark .greeting-message{color:var(--nvl-text-secondary)}
body.theme-dark .portal-header h1,body.theme-dark .tab-title,body.theme-dark .quick-links-home-heading{color:var(--nvl-text)}
body.theme-dark .last-used-label,body.theme-dark .tab-description,body.theme-dark .filter-label,body.theme-dark .input-group label,body.theme-dark .result-group label,body.theme-dark .price-input-group label,body.theme-dark .converted-price-label,body.theme-dark .total-price-group label,body.theme-dark .info,body.theme-dark .result-label,body.theme-dark .carriage-range,body.theme-dark .selected-label,body.theme-dark .form-field label,body.theme-dark .quick-links-description,body.theme-dark .color-label{color:var(--nvl-text-secondary)}
body.theme-dark .tab-button,body.theme-dark .back-button,body.theme-dark .calculator-card,body.theme-dark .sample-form{background:var(--nvl-card);border-color:var(--nvl-border-strong);box-shadow:0 2px 12px rgba(0,0,0,.3)}
body.theme-dark .tab-button:hover{border-color:var(--nvl-accent-line);box-shadow:0 4px 16px rgba(16,185,129,.22)}
body.theme-dark .hub-circle{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong);box-shadow:0 1px 3px rgba(0,0,0,.4)}
body.theme-dark .hub-circle:hover{border-color:var(--nvl-ink-muted);box-shadow:0 4px 12px rgba(0,0,0,.5)}
body.theme-dark .hub-circle .tab-title{color:var(--nvl-text)}
body.theme-dark .hub-circle .tab-description{color:var(--nvl-text-secondary)}
body.theme-dark .app-tab{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong)}
body.theme-dark .app-tab:hover{background:var(--nvl-surface);border-color:var(--nvl-border-strong)}
body.theme-dark .app-tab.active{background:var(--nvl-surface)}
body.theme-dark .app-tab.zigzag-tab{background:#2563eb;color:#fff;border-color:#1e40af}
body.theme-dark .app-tab.zigzag-tab:hover{background:#1d4ed8;border-color:#1e40af}
body.theme-dark .result-group .result,body.theme-dark .total-result,body.theme-dark .converted-price-value,body.theme-dark .color-value,body.theme-dark .result-value,body.theme-dark .carriage-name,body.theme-dark .selected-value,body.theme-dark .selected-price,body.theme-dark .carriage-price,body.theme-dark .form-header h2,body.theme-dark .company-name,body.theme-dark .form-column h3{color:var(--nvl-text)}
body.theme-dark .input-group input,body.theme-dark .result-group .result,body.theme-dark .price-input-group input,body.theme-dark .filter-select,body.theme-dark .search-input,body.theme-dark .form-input,body.theme-dark .form-textarea,body.theme-dark .search-input-small,body.theme-dark .notes-textarea,body.theme-dark .notes-textarea-large,body.theme-dark .shipping-input-section input{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong);color:var(--nvl-text)}
body.theme-dark .input-group input:focus,body.theme-dark .price-input-group input:focus,body.theme-dark .search-input:focus,body.theme-dark .form-input:focus,body.theme-dark .form-textarea:focus,body.theme-dark .notes-textarea-large:focus{border-color:var(--nvl-accent-line);box-shadow:var(--nvl-focus-ring)}
body.theme-dark .info,body.theme-dark .result-card,body.theme-dark .converter-hides-section,body.theme-dark .conversion-row,body.theme-dark .carriage-option,body.theme-dark .selected-carriage{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong)}
body.theme-dark .carriage-option.selected,body.theme-dark .carriage-option:focus-within{border-color:var(--nvl-accent-line);background:var(--nvl-card);box-shadow:0 0 0 3px rgba(16,185,129,.22)}
body.theme-dark .swap-button,body.theme-dark .remove-item-btn,body.theme-dark .clear-button,body.theme-dark .clear-notes-btn{background:var(--nvl-card);border-color:var(--nvl-border-strong);color:var(--nvl-text-secondary)}
body.theme-dark .swap-button:hover,body.theme-dark .remove-item-btn:hover,body.theme-dark .clear-button:hover,body.theme-dark .clear-notes-btn:hover{background:var(--nvl-border-strong)}
body.theme-dark .quick-links-manage-btn{color:var(--nvl-text-secondary);border-color:var(--nvl-ink-muted)}
body.theme-dark .quick-links-manage-btn:hover{background:var(--nvl-surface-muted);color:var(--nvl-text)}
body.theme-dark .quick-links-stats-row{border-top-color:var(--nvl-border-strong)}
body.theme-dark .stats-home-heading{color:var(--nvl-text)}
body.theme-dark .stat-card{background:var(--nvl-card);border-color:var(--nvl-border-strong);box-shadow:0 2px 6px rgba(0,0,0,.2)}
body.theme-dark .stat-value{color:var(--nvl-text)}
body.theme-dark .stat-label{color:var(--nvl-text-secondary)}
body.theme-dark .app-footer{background:rgba(0,0,0,.25);border-top-color:var(--nvl-border-strong);color:var(--nvl-text-secondary)}
body.theme-dark .result-note,body.theme-dark .arrow{color:var(--nvl-accent-line)}
.theme-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:transparent;border:1px solid var(--nvl-border-strong);border-radius:8px;cursor:pointer;color:var(--nvl-ink-muted);font-size:0.9rem;transition:background .2s,border-color .2s}
.theme-toggle:hover{border-color:var(--nvl-accent-line);background:rgba(16,185,129,.12)}
body.theme-dark .theme-toggle{border-color:var(--nvl-border-strong);color:var(--nvl-text-secondary)}
body.theme-dark .theme-toggle:hover{border-color:var(--nvl-accent-line);background:rgba(16,185,129,.22)}
.theme-toggle svg{width:18px;height:18px;flex-shrink:0}
.admin-header-btn{display:inline-flex;align-items:center;padding:8px 12px;font-size:0.9rem;background:transparent;border:1px solid var(--nvl-border-strong);border-radius:8px;cursor:pointer;color:var(--nvl-ink-muted);transition:background .2s,border-color .2s}
.admin-header-btn:hover{border-color:var(--nvl-accent-line);background:rgba(16,185,129,.12)}
body.theme-dark .admin-header-btn{border-color:var(--nvl-border-strong);color:var(--nvl-text-secondary)}
body.theme-dark .admin-header-btn:hover{border-color:var(--nvl-accent-line);background:rgba(16,185,129,.22)}
.admin-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.admin-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.admin-modal-box{position:relative;background:#fff;border:1px solid var(--nvl-border-strong);border-radius:12px;padding:24px;max-width:360px;width:100%;box-shadow:0 8px 32px rgba(0,0,0,.2)}
body.theme-dark .admin-modal-box{background:var(--nvl-card);border-color:var(--nvl-border-strong)}
.admin-modal-title{margin:0 0 12px 0;font-size:1.2rem;color:var(--nvl-ink)}
body.theme-dark .admin-modal-title{color:var(--nvl-text)}
.admin-modal-message{margin:0 0 12px 0;font-size:0.9rem;color:var(--nvl-ink-muted);min-height:1.2em}
.admin-modal-form label{display:block;font-size:0.9rem;margin-bottom:4px;color:var(--nvl-ink-muted)}
.admin-modal-form .form-input{margin-bottom:12px;width:100%}
.admin-modal-actions{display:flex;gap:10px;margin-top:16px}
.admin-section{margin-bottom:24px}
/* Planner left/right split – no scroll */
.planner-layout .planner-split{display:flex;gap:24px;align-items:stretch;min-height:0;max-height:calc(100vh - 200px);margin-top:16px}
.checklist-container{display:flex;flex-direction:column;gap:16px}
.checklist-item{display:flex;align-items:center;padding:16px;background:var(--nvl-panel);border:1px solid var(--nvl-border);border-radius:8px;transition:all .2s}
.checklist-item:hover{background:#fff;border-color:var(--nvl-accent-line);box-shadow:0 2px 8px rgba(16,185,129,.12)}
.checklist-item.completed{opacity:.6;background:#f0ede8}
.checklist-label{display:flex;align-items:center;gap:12px;cursor:pointer;flex:1;margin:0}
.checklist-checkbox{width:20px;height:20px;cursor:pointer;accent-color:var(--nvl-accent-line);flex-shrink:0}
.checklist-text{font-size:1rem;color:var(--nvl-ink);font-weight:500;user-select:none}
.checklist-item.completed .checklist-text{text-decoration:line-through;color:var(--nvl-ink-muted)}
.checklist-number-input{font-size:0.95rem;color:var(--nvl-ink);background:#fff}
.checklist-number-input:focus{outline:none;border-color:var(--nvl-accent-line);box-shadow:0 0 0 3px rgba(16,185,129,.18)}
body.theme-dark .checklist-container{background:var(--nvl-card);border-color:var(--nvl-border-strong)}
body.theme-dark .checklist-item{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong)}
body.theme-dark .checklist-item:hover{background:var(--nvl-card);border-color:var(--nvl-accent-line)}
body.theme-dark .checklist-item.completed{background:#1f1b17}
body.theme-dark .checklist-text{color:var(--nvl-text)}
body.theme-dark .checklist-item.completed .checklist-text{color:var(--nvl-text-secondary)}
body.theme-dark .checklist-number-input{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong);color:var(--nvl-text)}
.script-section{margin-top:24px}
.script-content{display:flex;flex-direction:column;gap:20px}
.script-part{border-left:3px solid var(--nvl-accent-line);padding-left:16px}
.script-part-title{margin:0 0 8px 0;font-size:1rem;font-weight:600;color:var(--nvl-accent-line);text-transform:uppercase;letter-spacing:.05em}
.script-text p{margin:8px 0;font-size:0.95rem;line-height:1.6;color:var(--nvl-ink)}
.script-note{margin:8px 0;font-size:0.85rem;font-style:italic;color:var(--nvl-ink-muted);opacity:.8}
body.theme-dark .script-section{background:var(--nvl-card);border-color:var(--nvl-border-strong)}
body.theme-dark .script-part{border-color:var(--nvl-accent-line)}
body.theme-dark .script-part-title{color:var(--nvl-text-secondary)}
body.theme-dark .script-text p{color:var(--nvl-text)}
body.theme-dark .script-note{color:var(--nvl-text-secondary)}
.planner-left{width:300px;flex-shrink:0;display:flex;flex-direction:column;gap:16px;overflow-y:auto}
.planner-color-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.planner-color-chip{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .2s}
.planner-color-chip:hover{transform:scale(1.1);box-shadow:0 2px 8px rgba(0,0,0,.2)}
.planner-color-chip.selected{border-color:var(--nvl-ink);box-shadow:0 0 0 2px #fff}
body.theme-dark .planner-color-chip.selected{border-color:var(--nvl-text);box-shadow:0 0 0 2px var(--nvl-surface-muted)}
.planner-edit-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);z-index:998;animation:fadeIn .2s ease-out}
.planner-edit-panel{position:fixed;top:0;right:0;width:380px;max-width:90vw;height:100vh;background:#fff;border-left:1px solid var(--nvl-border-strong);box-shadow:-4px 0 24px rgba(0,0,0,.15);z-index:999;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s ease-out;overflow-y:auto}
.planner-edit-panel.open{transform:translateX(0)}
#plannerAddPanel{z-index:1000}
.planner-edit-panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--nvl-border);flex-shrink:0}
.planner-edit-close-btn{background:transparent;border:none;cursor:pointer;color:var(--nvl-ink-muted);padding:4px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background .2s}
.planner-edit-close-btn:hover{background:var(--nvl-panel)}
.planner-edit-panel-content{padding:24px;flex:1}
.planner-delete-block-btn{width:100%;margin-top:12px;padding:10px 16px;font-size:0.9rem;background:transparent;color:#b33;border:1px solid #b33;border-radius:8px;cursor:pointer;transition:background .2s,color .2s}
.planner-delete-block-btn:hover{background:#b33;color:#fff}
.planner-block-edit-btn{font-size:0.75rem;padding:4px 8px;margin-left:4px}
.planner-scope-modal{position:fixed;inset:0;z-index:1001;display:flex;align-items:center;justify-content:center;padding:20px}
.planner-scope-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px)}
.planner-scope-modal-box{position:relative;background:#fff;border:1px solid var(--nvl-border-strong);border-radius:12px;padding:24px;max-width:380px;width:100%;box-shadow:0 8px 32px rgba(0,0,0,.2)}
.planner-scope-modal-title{margin:0 0 8px 0;font-size:1.1rem;font-weight:600;color:var(--nvl-ink)}
.planner-scope-modal-message{margin:0 0 20px 0;font-size:0.95rem;color:var(--nvl-ink-muted);line-height:1.4}
.planner-scope-modal-actions{display:flex;flex-direction:column;gap:10px}
.planner-scope-modal-actions button{width:100%;padding:12px 16px;font-size:0.95rem;border-radius:8px;cursor:pointer;border:1px solid var(--nvl-border-strong);background:#fff;color:var(--nvl-ink);transition:background .2s,border-color .2s}
.planner-scope-modal-actions button:hover{background:var(--nvl-panel);border-color:var(--nvl-accent-line)}
.planner-scope-modal-actions button.planner-scope-primary{background:var(--nvl-accent-line);color:#fff;border-color:var(--nvl-accent-line)}
.planner-scope-modal-actions button.planner-scope-primary:hover{background:var(--nvl-ink-muted)}
body.theme-dark .planner-scope-modal-box{background:var(--nvl-card);border-color:var(--nvl-border-strong)}
body.theme-dark .planner-scope-modal-title{color:var(--nvl-text)}
body.theme-dark .planner-scope-modal-message{color:var(--nvl-text-secondary)}
body.theme-dark .planner-scope-modal-actions button{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong);color:var(--nvl-text)}
body.theme-dark .planner-scope-modal-actions button:hover{background:var(--nvl-card);border-color:var(--nvl-accent-line)}
body.theme-dark .planner-scope-modal-actions button.planner-scope-primary{background:var(--nvl-accent-line);color:#fff}
body.theme-dark .planner-edit-backdrop{background:rgba(0,0,0,.6)}
body.theme-dark .planner-edit-panel{background:var(--nvl-card);border-color:var(--nvl-border-strong);box-shadow:-4px 0 24px rgba(0,0,0,.4)}
body.theme-dark .planner-edit-panel-header{border-color:var(--nvl-border-strong)}
body.theme-dark .planner-edit-close-btn{color:var(--nvl-text-secondary)}
body.theme-dark .planner-edit-close-btn:hover{background:var(--nvl-surface-muted)}
.planner-right{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
.planner-form-card{background:var(--nvl-panel);border:1px solid var(--nvl-border);border-radius:10px;padding:16px}
.planner-views-wrap{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}
@media (max-width:900px){.planner-split{flex-direction:column;max-height:none}.planner-left{width:100%;flex-direction:row;flex-wrap:wrap}.planner-form-card{flex:1;min-width:200px}}
/* Planner Calendar View */
.planner-calendar-view{display:flex;gap:16px;border:1px solid var(--nvl-border-strong);border-radius:12px;background:#fff;overflow:hidden;flex:1;min-height:400px}
.planner-time-column{width:56px;flex-shrink:0;background:var(--nvl-panel);border-right:1px solid var(--nvl-border-strong);padding:6px 0;position:relative}
.planner-time-slot{display:flex;align-items:flex-start;padding:2px 6px;font-size:0.7rem;color:var(--nvl-ink-muted);border-bottom:1px solid var(--nvl-border);position:relative}
.planner-time-slot:last-child{border-bottom:none}
.planner-time-slot.minor{font-size:0.65rem;color:var(--nvl-text-secondary);opacity:0.7;padding-left:8px}
.planner-zoom-controls{display:flex;align-items:center;gap:4px}
.planner-zoom-btn{min-width:32px;height:28px;padding:0;font-size:1.1rem;font-weight:600;line-height:1}
.planner-blocks-column{flex:1;position:relative;padding:6px;min-height:0}
.planner-blocks-container{position:relative;height:100%;min-height:550px}
.planner-view-controls{display:flex;gap:8px}
.planner-view-btn.active{background:var(--nvl-accent-line);color:#fff;border-color:var(--nvl-accent-line)}
.planner-view{min-height:400px}
.planner-week-container{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;border:1px solid var(--nvl-border-strong);border-radius:12px;background:#fff;padding:16px}
.planner-week-day{min-height:600px;border:1px solid var(--nvl-border);border-radius:8px;padding:8px;background:var(--nvl-panel);position:relative}
.planner-week-day-header{font-weight:600;font-size:0.85rem;color:var(--nvl-ink);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--nvl-border);text-align:center}
.planner-week-day.today{background:#fff8f0;border-color:var(--nvl-accent-line)}
.planner-week-day-header.today{color:var(--nvl-accent-line);font-weight:700}
.planner-month-container{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;border:1px solid var(--nvl-border-strong);border-radius:12px;background:#fff;padding:16px}
.planner-month-day{aspect-ratio:1;border:1px solid var(--nvl-border);border-radius:6px;padding:6px;background:var(--nvl-panel);position:relative;cursor:pointer;transition:all .2s}
.planner-month-day:hover{background:#fff;border-color:var(--nvl-accent-line)}
.planner-month-day.today{background:#fff8f0;border-color:var(--nvl-accent-line);font-weight:600}
.planner-month-day-number{font-size:0.85rem;color:var(--nvl-ink);margin-bottom:4px}
.planner-month-day-blocks{font-size:0.7rem;color:var(--nvl-ink-muted)}
.planner-month-day.has-blocks::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:6px;height:6px;background:var(--nvl-accent-line);border-radius:50%}
.planner-year-container{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;border:1px solid var(--nvl-border-strong);border-radius:12px;background:#fff;padding:20px}
.planner-year-month{min-height:200px;border:1px solid var(--nvl-border);border-radius:8px;padding:12px;background:var(--nvl-panel)}
.planner-year-month-header{font-weight:600;font-size:0.95rem;color:var(--nvl-ink);margin-bottom:8px;text-align:center}
.planner-year-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:0.7rem}
.planner-year-month-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:3px;cursor:pointer;transition:all .15s}
.planner-year-month-day:hover{background:#fff}
.planner-year-month-day.today{background:var(--nvl-accent-line);color:#fff;font-weight:600}
.planner-year-month-day.has-blocks{background:#fff8f0}
body.theme-dark .planner-week-container,.planner-month-container,.planner-year-container{background:var(--nvl-card);border-color:var(--nvl-border-strong)}
body.theme-dark .planner-week-day,.planner-month-day,.planner-year-month{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong)}
body.theme-dark .planner-week-day.today,.planner-month-day.today{background:var(--nvl-card);border-color:var(--nvl-accent-line)}
body.theme-dark .planner-week-day-header,.planner-month-day-number,.planner-year-month-header{color:var(--nvl-text)}
body.theme-dark .planner-month-day-blocks{color:var(--nvl-text-secondary)}
body.theme-dark .planner-year-month-day.today{background:var(--nvl-accent-line);color:#fff}
body.theme-dark .planner-year-month-day.has-blocks{background:var(--nvl-card)}
.planner-block{position:absolute;left:0;right:0;border-radius:6px;padding:8px 10px;cursor:pointer;transition:opacity .2s,transform .15s;box-shadow:0 2px 6px rgba(0,0,0,.12);border-left:3px solid;display:flex;align-items:flex-start;gap:8px;overflow:hidden}
.planner-block:hover{opacity:.9;transform:translateX(2px);box-shadow:0 3px 8px rgba(0,0,0,.18)}
.planner-block.completed{opacity:.6}
.planner-block-checkbox{width:18px;height:18px;flex-shrink:0;margin-top:2px;cursor:pointer;accent-color:var(--nvl-accent-line)}
.planner-block-content{flex:1;min-width:0}
.planner-block-title{font-weight:600;font-size:0.9rem;color:var(--nvl-ink);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planner-block-time{font-size:0.75rem;color:var(--nvl-ink-muted);margin-bottom:2px}
.planner-block-desc{font-size:0.8rem;color:var(--nvl-ink-muted);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.planner-block-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.planner-block-edit-btn,.planner-block-delete{font-size:0.8rem;padding:6px 10px;background:transparent;border:1px solid var(--nvl-border-strong);border-radius:6px;cursor:pointer;color:var(--nvl-ink-muted);transition:all .2s}
.planner-block-edit-btn:hover,.planner-block-delete:hover{background:var(--nvl-panel);border-color:var(--nvl-accent-line);color:var(--nvl-ink)}
.planner-block-delete{border-color:#c99;color:#a44}
.planner-block-delete:hover{background:#fdd;border-color:#b33;color:#b33}
body.theme-dark .planner-form-card{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong)}
body.theme-dark .planner-calendar-view{background:var(--nvl-card);border-color:var(--nvl-border-strong)}
body.theme-dark .planner-time-column{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong)}
body.theme-dark .planner-time-slot{color:var(--nvl-text-secondary);border-color:var(--nvl-border-strong)}
body.theme-dark .planner-block{background:var(--nvl-card);border-color:var(--nvl-border-strong);box-shadow:0 2px 6px rgba(0,0,0,.3)}
body.theme-dark .planner-block-title{color:var(--nvl-text)}
body.theme-dark .planner-block-time{color:var(--nvl-text-secondary)}
body.theme-dark .planner-block-desc{color:var(--nvl-text-secondary)}
body.theme-dark .planner-block-edit-btn,body.theme-dark .planner-block-delete{border-color:var(--nvl-border-strong);color:var(--nvl-text-secondary)}
body.theme-dark .planner-block-edit-btn:hover{background:var(--nvl-border-strong);border-color:var(--nvl-accent-line);color:var(--nvl-text)}
body.theme-dark .planner-block-delete{border-color:#8a5555;color:#c88}
body.theme-dark .planner-block-delete:hover{background:#6a3333;border-color:#a44;color:#fcc}
/* Dashboard Calendar Widget */
.dashboard-calendar-widget{background:#fff;border:1px solid var(--nvl-border-strong);border-radius:12px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,.06);max-width:320px}
.dashboard-calendar-widget h3{margin:0 0 16px 0;font-size:1.1rem;font-weight:600;color:var(--nvl-ink)}
.dashboard-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:16px}
.dashboard-calendar-day-header{text-align:center;font-size:0.7rem;font-weight:600;color:var(--nvl-ink-muted);padding:4px 0}
.dashboard-calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:0.85rem;color:var(--nvl-ink);cursor:pointer;border-radius:6px;transition:background .2s;position:relative}
.dashboard-calendar-day:hover{background:var(--nvl-panel)}
.dashboard-calendar-day.today{background:var(--nvl-accent-line);color:#fff;font-weight:600}
.dashboard-calendar-day.has-blocks::after{content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:4px;height:4px;background:var(--nvl-accent-line);border-radius:50%}
.dashboard-calendar-day.today.has-blocks::after{background:#fff}
.dashboard-calendar-upcoming{margin-top:16px;padding-top:16px;border-top:1px solid var(--nvl-border)}
.dashboard-calendar-upcoming h4{margin:0 0 12px 0;font-size:0.95rem;font-weight:600;color:var(--nvl-ink)}
.dashboard-calendar-upcoming-item{font-size:0.85rem;padding:8px;background:var(--nvl-panel);border-radius:6px;margin-bottom:6px;display:flex;align-items:center;gap:8px}
.dashboard-calendar-upcoming-item:last-child{margin-bottom:0}
.dashboard-calendar-upcoming-time{font-weight:600;color:var(--nvl-accent-line);min-width:50px}
.dashboard-calendar-upcoming-title{color:var(--nvl-ink);flex:1}
body.theme-dark .dashboard-calendar-widget{background:var(--nvl-card);border-color:var(--nvl-border-strong)}
body.theme-dark .dashboard-calendar-widget h3{color:var(--nvl-text)}
body.theme-dark .dashboard-calendar-day-header{color:var(--nvl-text-secondary)}
body.theme-dark .dashboard-calendar-day{color:var(--nvl-text)}
body.theme-dark .dashboard-calendar-day:hover{background:var(--nvl-surface-muted)}
body.theme-dark .dashboard-calendar-day.today{background:var(--nvl-accent-line);color:#fff}
body.theme-dark .dashboard-calendar-upcoming{border-color:var(--nvl-border-strong)}
body.theme-dark .dashboard-calendar-upcoming h4{color:var(--nvl-text)}
body.theme-dark .dashboard-calendar-upcoming-item{background:var(--nvl-surface-muted);color:var(--nvl-text)}
body.theme-dark .dashboard-calendar-upcoming-time{color:var(--nvl-accent-line)}
body.theme-dark .dashboard-calendar-upcoming-title{color:var(--nvl-text)}
.admin-section:last-child{margin-bottom:0}
.admin-section-title{font-size:1rem;font-weight:600;color:var(--nvl-ink);margin:0 0 12px 0}
body.theme-dark .admin-section-title{color:var(--nvl-text)}
.admin-add-user{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:16px}
.admin-add-user .form-input{flex:1;min-width:120px;margin-bottom:0}
.admin-users-list{list-style:none;margin:0;padding:0}
.admin-users-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--nvl-panel);border:1px solid var(--nvl-border);border-radius:8px;margin-bottom:8px}
body.theme-dark .admin-users-list li{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong)}
.admin-users-list li span{font-size:0.95rem;color:var(--nvl-ink)}
body.theme-dark .admin-users-list li span{color:var(--nvl-text)}
.admin-user-remove{padding:4px 10px;font-size:0.85rem;background:var(--nvl-surface-muted);color:var(--nvl-ink-muted);border:none;border-radius:6px;cursor:pointer}
.admin-user-remove:hover{background:var(--nvl-border-strong)}
.admin-password-form label{display:block;font-size:0.9rem;margin-bottom:4px;color:var(--nvl-ink-muted)}
.admin-password-form .form-input{margin-bottom:12px;width:100%;max-width:280px}
.admin-password-form button{margin-top:8px}
.lunch-learn-inputs{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-end;margin-bottom:16px}
.lunch-learn-totals{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:20px}
@media print{body,.main-wrapper{background:#fff}.screen-header,.form-controls,.back-button,.app-footer,.no-print{display:none!important}.sample-form{box-shadow:none;border:none;padding:0}}
/* NVL Toast & Confirm */
#nvl-toast-container{position:fixed;top:16px;right:16px;z-index:10000;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.nvl-toast{padding:12px 20px;border-radius:10px;font-size:0.95rem;font-weight:500;box-shadow:0 4px 16px rgba(0,0,0,.15);opacity:0;transform:translateX(100%);transition:opacity .3s,transform .3s}
.nvl-toast-visible{opacity:1;transform:translateX(0)}
.nvl-toast-success{background:#22c55e;color:#fff}
.nvl-toast-error{background:#dc2626;color:#fff}
.nvl-toast-info{background:var(--nvl-btn);color:#fff}
.nvl-confirm-overlay{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;padding:20px}
.nvl-confirm-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px)}
.nvl-confirm-box{position:relative;background:#fff;border-radius:14px;padding:24px;max-width:400px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.25);animation:nvlConfirmIn .2s ease-out}
@keyframes nvlConfirmIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.nvl-confirm-closing .nvl-confirm-box{animation:nvlConfirmOut .2s ease-out forwards}
@keyframes nvlConfirmOut{to{opacity:0;transform:scale(.95)}}
.nvl-confirm-title{margin:0 0 12px 0;font-size:1.2rem;font-weight:600;color:var(--nvl-ink)}
.nvl-confirm-message{margin:0 0 20px 0;font-size:0.95rem;color:var(--nvl-ink-muted);line-height:1.5}
.nvl-confirm-actions{display:flex;gap:12px;justify-content:flex-end}
.nvl-confirm-cancel,.nvl-confirm-ok{padding:10px 20px;font-size:0.95rem;border-radius:8px;cursor:pointer;transition:background .2s}
.nvl-confirm-cancel{background:var(--nvl-panel);color:var(--nvl-ink-muted);border:1px solid var(--nvl-border-strong)}
.nvl-confirm-cancel:hover{background:var(--nvl-surface-muted)}
.nvl-confirm-ok{background:var(--nvl-btn);color:var(--nvl-btn-on-primary);border:none}
.nvl-confirm-ok:hover{background:var(--nvl-btn-hover)}
body.theme-dark .nvl-confirm-box{background:var(--nvl-card);border:1px solid var(--nvl-border-strong)}
body.theme-dark .nvl-confirm-title{color:var(--nvl-text)}
body.theme-dark .nvl-confirm-message{color:var(--nvl-text-secondary)}
body.theme-dark .nvl-confirm-cancel{background:var(--nvl-surface-muted);color:var(--nvl-text-secondary);border-color:var(--nvl-border-strong)}
body.theme-dark .nvl-confirm-cancel:hover{background:var(--nvl-card)}

/* —— NVL 2025 shell refresh (tokens + polish) —— */
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--nvl-font);
  color:var(--nvl-text);
  background:var(--nvl-bg);
  letter-spacing:-0.01em;
}
.container{padding:36px 40px}
.app-header{
  margin-bottom:28px;
  padding-bottom:20px;
  border-bottom:1px solid var(--nvl-border);
  gap:20px;
}
.app-header-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.greeting-message{color:var(--nvl-text-secondary);font-size:0.9rem}
.portal-header h1{color:var(--nvl-text);font-size:1.6rem;font-weight:650;letter-spacing:-0.03em}
.home-dashboard-wrap{border-radius:var(--nvl-radius-lg);margin-bottom:28px}
.home-dashboard-bg{background:var(--nvl-surface);border:1px solid var(--nvl-border);border-radius:var(--nvl-radius-lg);box-shadow:var(--nvl-shadow-xs)}
.home-dashboard-inner{padding:44px 48px}
.hub-grid{gap:18px}
.hub-circle,.tab-button.hub-circle{
  min-height:168px;
  border-radius:var(--nvl-radius-md);
  background:var(--nvl-surface);
  border:1px solid var(--nvl-border);
  box-shadow:var(--nvl-shadow-xs);
  padding:26px 22px;
  transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease;
}
.hub-circle:hover,.tab-button.hub-circle:hover{
  border-color:var(--nvl-border-strong);
  box-shadow:var(--nvl-shadow-sm);
  transform:translateY(-2px);
}
.hub-circle .tab-title{color:var(--nvl-text)}
.hub-circle .tab-description{color:var(--nvl-text-secondary)}
.hub-bar{background:var(--nvl-surface);border:1px solid var(--nvl-border);border-radius:var(--nvl-radius-md);box-shadow:var(--nvl-shadow-xs)}
.app-tab{
  border-radius:var(--nvl-radius-sm);
  background:var(--nvl-surface);
  border:1px solid var(--nvl-border);
  box-shadow:var(--nvl-shadow-xs);
  color:var(--nvl-text);
}
.app-tab:hover{background:var(--nvl-surface-muted);border-color:var(--nvl-border-strong)}
.app-tab.active{background:var(--nvl-surface-muted);font-weight:600}
.calculator-card,.sample-form{
  border-radius:var(--nvl-radius-md);
  background:var(--nvl-surface);
  border:1px solid var(--nvl-border);
  box-shadow:var(--nvl-shadow-xs);
}
.calculator-card h2,.form-header h2{color:var(--nvl-text)}
.stat-card{
  border-radius:var(--nvl-radius-sm);
  background:var(--nvl-surface);
  border:1px solid var(--nvl-border);
  box-shadow:var(--nvl-shadow-xs);
}
.tab-button:not(.hub-circle){
  border-radius:var(--nvl-radius-md);
  border:1px solid var(--nvl-border);
  background:var(--nvl-surface);
  box-shadow:var(--nvl-shadow-xs);
}
.tab-button:not(.hub-circle):hover{border-color:var(--nvl-border-strong);box-shadow:var(--nvl-shadow-sm)}
.tab-title{color:var(--nvl-text)}
.tab-description{color:var(--nvl-text-secondary)}
.last-used-link,.add-contact-btn,.print-button,.cross-link-btn,.add-quick-link-btn,.quick-links-home-buttons a,.quick-links-home-buttons button{
  background:var(--nvl-btn);
  color:var(--nvl-btn-on-primary);
  border-radius:var(--nvl-radius-sm);
}
.last-used-link:hover,.add-contact-btn:hover,.print-button:hover,.cross-link-btn:hover,.add-quick-link-btn:hover,.quick-links-home-buttons a:hover,.quick-links-home-buttons button:hover{background:var(--nvl-btn-hover)}
.quick-links-manage-btn,.back-button,.theme-toggle,.admin-header-btn{
  border-radius:var(--nvl-radius-sm);
  border-color:var(--nvl-border);
}
.form-input,.form-textarea,.filter-select,.search-input,.input-group input,.notes-textarea-large{
  border-radius:var(--nvl-radius-sm);
  border-color:var(--nvl-border);
  background:var(--nvl-surface);
  color:var(--nvl-text);
}
.form-input:focus,.form-textarea:focus,.filter-select:focus,.search-input:focus,.input-group input:focus,.notes-textarea-large:focus{
  outline:none;
  border-color:var(--nvl-accent-line);
  box-shadow:var(--nvl-focus-ring);
}
body.theme-dark .form-input:focus,body.theme-dark .form-textarea:focus,body.theme-dark .filter-select:focus,body.theme-dark .search-input:focus,body.theme-dark .input-group input:focus,body.theme-dark .notes-textarea-large:focus{
  border-color:var(--nvl-accent-line);
  box-shadow:var(--nvl-focus-ring);
}

button:focus-visible,a.tab-button.hub-circle:focus-visible,.app-tab:focus-visible,.logo-link:focus-visible,.theme-toggle:focus-visible,.admin-header-btn:focus-visible,.back-button:focus-visible,.hub-circle:focus-visible,.tab-button:focus-visible,.quick-links-manage-btn:focus-visible,.add-contact-btn:focus-visible{
  outline:none;
  box-shadow:var(--nvl-focus-ring);
}
body.theme-dark button:focus-visible,body.theme-dark .app-tab:focus-visible,body.theme-dark .logo-link:focus-visible,body.theme-dark .theme-toggle:focus-visible,body.theme-dark .admin-header-btn:focus-visible,body.theme-dark .back-button:focus-visible,body.theme-dark .hub-circle:focus-visible,body.theme-dark .tab-button:focus-visible,body.theme-dark .quick-links-manage-btn:focus-visible,body.theme-dark .add-contact-btn:focus-visible{
  box-shadow:var(--nvl-focus-ring);
}

body.theme-dark{background:var(--nvl-bg);color:var(--nvl-text)}
body.theme-dark .home-dashboard-bg{background:var(--nvl-surface);border-color:var(--nvl-border)}
body.theme-dark .hub-circle,body.theme-dark .tab-button.hub-circle{background:var(--nvl-surface);border-color:var(--nvl-border)}
body.theme-dark .hub-circle .tab-title,body.theme-dark .portal-header h1{color:var(--nvl-text)}
body.theme-dark .hub-circle .tab-description{color:var(--nvl-text-secondary)}
body.theme-dark .greeting-message{color:var(--nvl-text-secondary)}
body.theme-dark .calculator-card,body.theme-dark .sample-form,body.theme-dark .tab-button{background:var(--nvl-surface);border-color:var(--nvl-border)}
body.theme-dark .last-used-link,body.theme-dark .add-contact-btn,body.theme-dark .print-button,body.theme-dark .cross-link-btn,body.theme-dark .add-quick-link-btn,body.theme-dark .quick-links-home-buttons a,body.theme-dark .quick-links-home-buttons button{background:var(--nvl-btn);color:var(--nvl-btn-on-primary)}
body.theme-dark .last-used-link:hover,body.theme-dark .add-contact-btn:hover{background:var(--nvl-btn-hover);color:var(--nvl-btn-on-primary)}
body.theme-dark .nvl-toast-info{background:var(--nvl-surface-raised);color:var(--nvl-text);border:1px solid var(--nvl-border)}
body.theme-dark .nvl-confirm-ok{background:var(--nvl-btn);color:var(--nvl-btn-on-primary)}
body.theme-dark .nvl-confirm-ok:hover{background:var(--nvl-btn-hover);color:var(--nvl-btn-on-primary)}