@font-face{font-family:"Inter";src:url("fonts/inter-latin-400-normal.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/inter-latin-600-normal.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/inter-latin-700-normal.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Nunito";src:url("fonts/nunito-latin-400-normal.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Nunito";src:url("fonts/nunito-latin-600-normal.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"Nunito";src:url("fonts/nunito-latin-700-normal.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Kalam";src:url("fonts/kalam-latin-400-normal.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Caveat";src:url("fonts/caveat-latin-400-normal.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Patrick Hand";src:url("fonts/patrick-hand-latin-400-normal.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Dancing Script";src:url("fonts/dancing-script-latin-400-normal.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Sacramento";src:url("fonts/sacramento-latin-400-normal.woff2") format("woff2");font-display:swap}

:root{
  --interface-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --heading-font:Georgia,"Times New Roman",serif;
  --handwriting-font:"Kalam",cursive;
  --on-main:#fff;
  --on-accent:#fff;
  --focus-ring:#d4af62;
}

html{background:var(--cream);overflow-x:hidden}
body{font-family:var(--interface-font);min-width:0;overflow-x:hidden}
h1,h2,h3,.brand strong,.kpi b,.action strong,.summary-strip b{font-family:var(--heading-font)}
button,input,select,textarea{font-family:var(--interface-font)}
button,.pill,.action,.card,input,select,textarea{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
button:disabled{cursor:not-allowed;opacity:.48;filter:saturate(.65);transform:none!important}
.primary{color:var(--on-accent)}
nav button:hover,nav button.active{color:var(--on-main)}
.brand-logo,.hero-logo{filter:none!important;mix-blend-mode:normal!important;transform:none!important}
.brand strong{text-transform:none;letter-spacing:.02em}
.brand-status{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:10px;color:#70746f}
.save-dot{width:7px;height:7px;border-radius:50%;background:#7f9e86;box-shadow:0 0 0 3px rgba(127,158,134,.14)}
.save-dot.syncing{background:var(--gold)}
.save-dot.offline{background:var(--burgundy)}

.mobile-nav-row{display:none;align-items:center;gap:10px;min-width:0}
.menu-button{display:none;width:44px;height:44px;border:1px solid var(--stone);border-radius:13px;background:var(--paper);color:var(--forest);font-size:22px;font-weight:900;flex:0 0 auto}
.active-page{display:none;min-width:0;color:var(--forest);font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-scrim{position:fixed;inset:0;background:rgba(16,26,22,.54);z-index:28;opacity:0;pointer-events:none;transition:opacity .2s ease}

.blueprint-button{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.header-actions .pill{min-height:42px}
.header-actions label.pill{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.header-actions #themeSelect{display:none}

.theme-shell,.data-shell,.family-shell,.print-shell{display:grid;gap:18px}
.page-intro{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap}
.theme-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(310px,.92fr);gap:20px;align-items:start}
.theme-controls{display:grid;gap:16px;min-width:0}
.theme-preview-wrap{position:sticky;top:96px;min-width:0}
.theme-preview{overflow:hidden;background:var(--cream);border:1px solid var(--stone);border-radius:24px;box-shadow:var(--shadow)}
.preview-bar{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--forest);color:var(--on-main)}
.preview-logo{width:36px;height:36px;border-radius:10px;object-fit:contain;background:#fbf7ee;flex:0 0 auto}
.preview-brand{display:grid;gap:1px}.preview-brand strong{font-family:var(--heading-font)}.preview-brand span{font-size:10px;opacity:.8}
.preview-body{padding:20px;display:grid;gap:12px}
.preview-panel{padding:17px;border:1px solid var(--stone);border-radius:17px;background:var(--paper)}
.preview-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.preview-values div{padding:12px;background:var(--mist);border-radius:12px}.preview-values small{display:block;color:#6a6f6b}.preview-values b{display:block;font-size:24px;color:var(--forest);font-family:var(--heading-font)}
.handwriting-sample{font-family:var(--handwriting-font);font-size:22px;color:var(--burgundy);margin:8px 0}
.preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.preset-button{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;text-align:left;border:1px solid var(--stone);border-radius:14px;background:var(--paper);color:var(--ink);padding:12px;min-width:0}
.preset-button.active{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 22%,transparent)}
.preset-swatches{display:flex}.preset-swatches i{width:19px;height:30px;border:2px solid var(--paper);margin-left:-5px}.preset-swatches i:first-child{margin-left:0;border-radius:8px 0 0 8px}.preset-swatches i:last-child{border-radius:0 8px 8px 0}
.preset-button strong{display:block;font-size:12px}.preset-button small{display:block;color:#727672;margin-top:2px}
.studio-section{display:grid;gap:12px}
.studio-section>h3{margin:0}.studio-section>p{margin:0;color:#6c716d;font-size:13px;line-height:1.55}
.color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.color-editor{min-width:0;border:1px solid var(--stone);border-radius:15px;padding:13px;background:var(--paper);position:relative}
.color-editor-toggle{appearance:none;width:100%;border:0;background:transparent;color:inherit;padding:0;display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:12px;cursor:pointer;font-weight:800;font-size:12px;min-width:0;text-align:left;box-shadow:none!important;transform:none!important}
.color-editor-toggle span{display:flex;align-items:center;gap:8px;min-width:0;line-height:1.25;overflow-wrap:anywhere}
.color-swatch{width:28px;height:28px;border-radius:9px;border:1px solid rgba(0,0,0,.12);flex:0 0 auto}
.color-editor-toggle b{font-size:10px;color:var(--burgundy);text-transform:uppercase;letter-spacing:.08em;position:relative;z-index:2;white-space:nowrap;justify-self:end}
.color-editor.open .color-editor-toggle{margin-bottom:13px}
.color-tools{display:grid;gap:10px;min-width:0}
.color-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:center;min-width:0}
.color-row input[type=color]{width:42px;height:42px;padding:2px;border:1px solid var(--stone);border-radius:10px;background:white}
.color-row input[type=text]{min-width:0;width:100%;text-transform:uppercase}
.slider-row{display:grid;grid-template-columns:22px minmax(0,1fr) 34px;gap:7px;align-items:center;font-size:10px;font-weight:800;color:#6b706c;min-width:0}
.slider-row input{min-width:0;width:100%;padding:0}
.font-grid,.switch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.font-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.font-choice{position:relative;min-height:108px;border:1px solid var(--stone);border-radius:13px;color:var(--ink);background:var(--paper);display:grid;align-content:center;justify-items:start;gap:3px;padding:13px;text-align:left}
.font-choice:hover,.handwriting-choice:hover,.mode-choice:hover{border-color:var(--gold)}
.font-choice.selected,.handwriting-choice.selected,.mode-choice.selected{border:2px solid var(--forest);background:color-mix(in srgb,var(--green) 72%,var(--paper))}
.font-choice>span{font-family:var(--choice-font);font-size:20px;line-height:1.2}.font-choice strong{font-size:11px;margin-top:5px}.font-choice small,.handwriting-choice small{color:#6d726e;font-size:10px}.font-choice>b,.handwriting-choice>b,.mode-choice>b{position:absolute;top:8px;right:9px;color:var(--forest);font-size:14px}
.mode-choice-grid,.handwriting-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.handwriting-mode-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.mode-choice{position:relative;min-height:78px;display:grid;align-content:center;gap:4px;border:1px solid var(--stone);border-radius:13px;background:var(--paper);color:var(--ink);padding:12px;text-align:left}.mode-choice strong,.mode-choice span{display:block}.mode-choice strong{font-size:12px}.mode-choice span{color:#6d726e;font-size:10px;line-height:1.35}
.handwriting-list{display:grid;gap:8px}.handwriting-choice{position:relative;min-height:76px;display:grid;grid-template-columns:minmax(0,1fr) 120px 20px;align-items:center;gap:12px;border:1px solid var(--stone);border-radius:13px;color:var(--ink);background:var(--paper);padding:10px 13px;text-align:left}.handwriting-choice>span:first-child{font-size:clamp(21px,2vw,29px);line-height:1.1;color:var(--burgundy)}.handwriting-choice strong,.handwriting-choice small{display:block}
.choice-card{border:1px solid var(--stone);border-radius:14px;background:var(--paper);padding:13px;min-width:0}
.choice-card label{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#696e6a;margin-bottom:7px}
.choice-card select{width:100%;min-width:0}
.switch-card{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--stone);border-radius:14px;background:var(--paper);padding:14px;cursor:pointer}
.switch-card input{width:20px;height:20px;accent-color:var(--forest);flex:0 0 auto}
.switch-card strong{display:block}.switch-card span{display:block;color:#6d726e;font-size:11px;line-height:1.45;margin-top:3px}

.transfer-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.transfer-step{position:relative;padding:16px;border:1px solid var(--stone);border-radius:16px;background:var(--paper)}
.transfer-step>b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--forest);color:var(--on-main);margin-bottom:10px}
.transfer-step strong{display:block}.transfer-step p{font-size:12px;color:#6b706c;line-height:1.5;margin:6px 0 0}
.action-row{display:flex;gap:10px;flex-wrap:wrap}
.privacy-boundary{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:flex-start;padding:16px;border-radius:16px;background:var(--green);border:1px solid var(--stone)}
.privacy-boundary strong{display:block}.privacy-boundary p{margin:5px 0 0;font-size:12px;line-height:1.55;color:#5f6661}

.family-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.family-status .card{padding:15px}.family-status b{display:block;font-family:var(--heading-font);font-size:23px;color:var(--forest)}
.family-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em;text-transform:uppercase}
.member-list{display:grid;gap:8px}.member-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--stone);border-radius:12px;background:var(--paper)}
.member-row small{color:#727772}
.sync-badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 10px;background:var(--green);color:var(--forest);font-size:11px;font-weight:800}
.sync-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:#77957d}
.sync-badge.offline{background:var(--rose);color:var(--burgundy)}.sync-badge.offline:before{background:var(--burgundy)}

.print-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.print-preview{background:#d9d4cc;padding:22px;border-radius:18px;overflow:auto}
.print-page{width:min(100%,760px);margin:auto;background:#fff;color:#222;padding:34px;min-height:760px;box-shadow:0 12px 34px rgba(0,0,0,.14);font-family:Arial,sans-serif}
.print-page.ink-saver{filter:grayscale(1)}
.print-header{display:flex;align-items:center;gap:12px;border-bottom:2px solid #173f35;padding-bottom:14px;margin-bottom:18px}.print-header img{width:52px;height:52px;border-radius:13px;object-fit:contain;background:#fbf7ee}.print-header strong{display:block;font-family:Georgia,serif;font-size:20px}.print-header span{font-size:11px;color:#666}
.print-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.print-kpis div{border:1px solid #ddd;padding:10px}.print-kpis small{display:block;color:#666}.print-kpis b{font-size:18px}
.print-section{break-inside:avoid;margin-top:18px}.print-section h3{font-size:15px;border-bottom:1px solid #ddd;padding-bottom:6px}.print-table{width:100%;min-width:0}.print-table th,.print-table td{color:#222;background:#fff;font-size:9px;padding:6px;border:1px solid #ddd;position:static}

body.night-mode{--cream:#101815;--paper:#17221e;--ink:#f2eee6;--stone:#35463f;--mist:#24322d;--green:#223a30;--rose:#3b252b;--shadow:0 18px 44px rgba(0,0,0,.32);color-scheme:dark}
body.night-mode header{background:rgba(16,24,21,.94)}
body.night-mode nav{background:rgba(23,34,30,.76)}
body.night-mode .field input,body.night-mode .field select,body.night-mode .field textarea,body.night-mode .search,body.night-mode .record-input,body.night-mode .color-row input,body.night-mode .choice-card select{background:#111a17;color:var(--ink)}
body.night-mode .lede,body.night-mode .brand small,body.night-mode .field label,body.night-mode .choice-card label,body.night-mode .choice-card span,body.night-mode .switch-card span,body.night-mode .studio-section>p,body.night-mode .empty,body.night-mode .footer-note{color:#bcc7c0}
body.night-mode .print-page{color:#222}

/* Entire App is literal: one selected interface font covers every app surface,
   including controls, tables, live metrics, games, family codes and print preview. */
body.font-entire,body.font-entire :where(*){font-family:var(--interface-font)!important}
body.font-entire .font-choice>span{font-family:var(--choice-font)!important}
body.font-entire .handwriting-choice>span:first-child{font-family:var(--sample-font)!important}

body.handwriting-accents .eyebrow,body.handwriting-accents .handwriting-accent,body.handwriting-headings .eyebrow,body.handwriting-headings .handwriting-accent,body.handwriting-full .eyebrow,body.handwriting-full .handwriting-accent{font-family:var(--handwriting-font);text-transform:none;letter-spacing:.02em;font-size:1.05em}
body.handwriting-headings :where(h1,h2,h3,h4,.action strong,.brand strong,.preview-brand strong){font-family:var(--handwriting-font)!important}
body.handwriting-full :where(main,nav,header) :where(h1,h2,h3,h4,p,a,button,label,small,span,strong){font-family:var(--handwriting-font)!important}
body.handwriting-full :where(main,nav,header){font-family:var(--handwriting-font)}
body.handwriting-full :where(form,form *,input,select,textarea,table,table *,.kpi,.kpi *,.tag,.tag *,.metric-row,.metric-row *,.chart-row,.chart-row *,.summary-strip b,.preview-values b,.family-code,.member-row b,.record-input,.print-page,.print-page *){font-family:var(--interface-font)!important}
body.handwriting-full .brand strong{font-family:var(--heading-font)!important}body.handwriting-full .brand :where(small,span,i){font-family:var(--interface-font)!important}
body.handwriting-full .font-choice>span{font-family:var(--choice-font)!important}body.handwriting-full .handwriting-choice>span:first-child{font-family:var(--sample-font)!important}

body.calm-mode *,body.calm-mode *:before,body.calm-mode *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

@media(max-width:1100px){
  .theme-layout{grid-template-columns:1fr}.theme-preview-wrap{position:static}.color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:1000px){
  header{z-index:35}.topbar{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.mobile-nav-row{display:flex}.menu-button,.active-page{display:block}.topbar>.brand{display:none}
  .layout{display:block;min-height:calc(100vh - 112px);z-index:auto}
  nav#nav{position:fixed;top:0;left:0;bottom:0;width:min(86vw,330px);height:100dvh;padding:86px 14px 24px;background:var(--paper);border-right:1px solid var(--stone);box-shadow:18px 0 50px rgba(0,0,0,.2);z-index:30;display:block;overflow-y:auto;transform:translateX(-105%);transition:transform .22s ease}
  nav#nav button{display:block;width:100%;white-space:normal;text-align:left}
  nav#nav .divider,nav#nav .tiny{display:block}
  body.nav-open nav#nav{transform:translateX(0);z-index:1001}body.nav-open .nav-scrim{left:min(86vw,330px);z-index:1000;opacity:1;pointer-events:auto}body.nav-open{overflow:hidden}
  main{padding:24px}.view{scroll-margin-top:132px}
  .header-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.header-actions .pill{width:100%;min-width:0;padding:9px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

@media(max-width:720px){
  .topbar{padding:10px 12px}.header-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.header-actions #exportBtn,.header-actions label[for=importFile],.header-actions #pdfBtn{display:none}
  main{padding:18px 14px 28px}.hero{border-radius:22px}.page-intro{display:block}
  .color-grid,.font-grid,.font-choice-grid,.switch-grid,.transfer-steps,.family-status,.print-controls{grid-template-columns:1fr}.preset-grid{grid-template-columns:1fr}
  .handwriting-mode-grid{grid-template-columns:1fr}.handwriting-choice{grid-template-columns:minmax(0,1fr) 96px 18px}.handwriting-choice>span:first-child{font-size:21px}
  .color-editor{min-width:0}.print-preview{padding:10px}.print-page{padding:20px;min-width:620px}.print-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:420px){
  .header-actions{grid-template-columns:1fr 1fr}.header-actions .pill{font-size:11px}.hero-actions{display:grid;grid-template-columns:1fr}.hero-actions button,.hero-actions select{width:100%}.sticker-grid{grid-template-columns:1fr}.task{display:grid}
}

@media print{
  @page{size:auto;margin:12mm}
  header,nav,.nav-scrim,.footer-note,.page-intro,.print-controls,.print-actions,.print-preview> :not(.print-page),dialog{display:none!important}
  body,html,.layout,main,.view{background:#fff!important;color:#000!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}
  main>.view{display:none!important}main>#reports{display:block!important}
  #reports>.print-shell>.card,#reports>.print-shell>.privacy-boundary{display:none!important}
  .print-preview{display:block!important;background:#fff!important;padding:0!important}.print-page{display:block!important;width:100%!important;min-width:0!important;min-height:0!important;box-shadow:none!important;padding:0!important}
}
