:root {
  color-scheme: dark;
  --ink:#f5f7fb; --muted:#a8b3c7; --muted-2:#7f8ca4; --night:#08111f; --panel:#111d31;
  --line:rgba(168,190,222,.16); --cyan:#69e4dd; --cyan-deep:#20b9b0; --amber:#ffc45a;
  --blue:#79aaff; --violet:#d48cff; --danger:#ff8b83; --radius-lg:24px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-synthesis:none;
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body { min-width:320px; min-height:100vh; margin:0; color:var(--ink); background:radial-gradient(circle at 85% -10%,rgba(72,142,255,.16),transparent 35rem),radial-gradient(circle at -8% 45%,rgba(39,210,197,.09),transparent 30rem),var(--night); line-height:1.5; overflow-x:hidden; }
button,input,textarea,select { font:inherit; }
button { color:inherit; }
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid rgba(105,228,221,.45); outline-offset:2px; }
.ambient { position:fixed; width:24rem; height:24rem; border-radius:50%; filter:blur(100px); opacity:.08; pointer-events:none; }
.ambient-one { top:20%; right:-12rem; background:var(--cyan); }
.ambient-two { bottom:-15rem; left:20%; background:var(--blue); }
.app-header { height:76px; max-width:1480px; margin:0 auto; padding:0 32px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.header-actions { display:flex; align-items:center; gap:16px; }
.theme-toggle { display:inline-flex; align-items:center; gap:7px; min-height:38px; padding:7px 11px; border:1px solid var(--line); border-radius:999px; background:rgba(5,14,28,.38); color:var(--muted); cursor:pointer; font-size:.76rem; font-weight:700; }
.theme-toggle:hover { border-color:rgba(105,228,221,.5); color:var(--ink); }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; font-weight:780; letter-spacing:-.02em; }
.brand-logo { width:34px; height:34px; border-radius:10px; box-shadow:0 7px 18px rgba(0,0,0,.2); }.brand-lockup { display:grid; gap:1px; }.brand-lockup strong { font-size:.95rem; line-height:1.1; }.brand-lockup small { padding:0; border:0; color:var(--muted-2); font-size:.62rem; font-weight:650; letter-spacing:.05em; text-transform:uppercase; }
.beta-pill { padding:3px 8px!important; }
.brand small { padding:3px 8px; border:1px solid rgba(105,228,221,.34); border-radius:99px; color:var(--cyan); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.brand-mark { width:29px; height:29px; display:grid; place-items:center; border:2px solid var(--cyan); border-radius:50%; position:relative; }
.brand-mark::before,.brand-mark::after { content:""; position:absolute; background:var(--cyan); border-radius:5px; }
.brand-mark::before { width:2px; height:8px; transform:translateY(-4px); }
.brand-mark::after { width:7px; height:2px; transform:translate(3px,1px) rotate(18deg); }
.brand-mark span { width:5px; height:5px; border-radius:50%; background:var(--amber); position:absolute; top:-3px; right:1px; box-shadow:0 0 12px var(--amber); }
.privacy-note { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:.88rem; }
.privacy-note svg { width:18px; fill:var(--cyan); }
.app-shell { width:min(1480px,100%); margin:0 auto; padding:34px 32px 70px; }
.product-intro { padding:25px 2px 29px; }
.product-intro h1 { max-width:880px; font-size:clamp(1.9rem,3.7vw,3.65rem); }
.product-intro > p:last-child { max-width:760px; margin:12px 0 0; color:var(--muted); font-size:1rem; }
.why-card { max-width:760px; margin-top:18px; padding:15px 17px; border:1px solid rgba(105,228,221,.28); border-radius:15px; background:linear-gradient(135deg,rgba(105,228,221,.1),rgba(121,170,255,.06)); }
.why-card strong { color:var(--cyan); font-size:.86rem; }
.why-card p { margin:5px 0 0; color:var(--muted); font-size:.86rem; }
.mode-switcher { display:grid; grid-template-columns:1fr 1fr; gap:9px; max-width:720px; margin:0 0 18px; padding:5px; border:1px solid var(--line); border-radius:17px; background:rgba(5,14,28,.45); }
.mode-button { min-height:68px; display:grid; gap:2px; padding:11px 15px; border:1px solid transparent; border-radius:12px; background:transparent; color:var(--muted); text-align:left; cursor:pointer; }
.mode-button strong { color:inherit; font-size:.95rem; }.mode-button small { color:var(--muted-2); font-size:.75rem; }
.mode-button.active { border-color:rgba(105,228,221,.42); background:linear-gradient(130deg,rgba(105,228,221,.15),rgba(121,170,255,.08)); color:var(--ink); }
.quick-calendar { margin-bottom:18px; padding:27px; border:1px solid var(--line); border-radius:var(--radius-lg); background:linear-gradient(155deg,rgba(23,37,61,.97),rgba(13,24,42,.98)); box-shadow:0 24px 70px rgba(0,0,0,.24); }
.quick-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:22px; }.quick-heading h2 { font-size:1.65rem; }.quick-heading p:last-child { margin:7px 0 0; color:var(--muted); }
.quick-badge { flex:0 0 auto; padding:7px 10px; border:1px solid rgba(105,228,221,.28); border-radius:99px; color:var(--cyan); font-size:.72rem; font-weight:750; }
.quick-grid { display:grid; grid-template-columns:1.05fr 1.8fr .9fr .8fr; gap:12px; align-items:end; }
.quick-source { margin:14px 0 0; }.quick-custom { margin-top:18px; padding:18px; border:1px solid rgba(121,170,255,.2); border-radius:16px; background:rgba(4,12,24,.28); }
.vsa-choice { margin-top:18px; padding:18px; border:1px solid rgba(105,228,221,.3); border-radius:16px; background:linear-gradient(135deg,rgba(105,228,221,.09),rgba(121,170,255,.05)); }
.vsa-choice .section-intro { margin-bottom:13px; }.vsa-choice .step-kicker { margin-bottom:5px; }.vsa-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.vsa-actions button.selected { box-shadow:0 0 0 2px rgba(105,228,221,.28); }
.quick-preview { min-height:38px; margin:11px 0 15px; }.quick-preview-note { align-self:center; color:var(--muted); font-size:.8rem; }
.quick-time-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.quick-duty { display:grid; grid-template-columns:1fr 1fr; gap:9px; padding:13px; border:1px solid var(--line); border-radius:13px; background:rgba(5,14,28,.42); }.quick-duty > strong { grid-column:1/-1; display:flex; align-items:center; gap:8px; font-size:.84rem; }.quick-duty label { display:grid; gap:5px; color:var(--muted); font-size:.7rem; }.quick-duty input { min-height:43px; }
.quick-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }.quick-caveat { margin:12px 0 0; color:var(--muted-2); font-size:.75rem; }
.calendar-file-ready { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:14px; padding:15px; border:1px solid rgba(105,228,221,.34); border-radius:14px; background:rgba(105,228,221,.075); }
.calendar-file-ready strong { font-size:.9rem; }.calendar-file-ready p { max-width:650px; margin:4px 0 0; color:var(--muted); font-size:.78rem; }.calendar-file-actions { display:flex; flex:0 0 auto; gap:8px; }
.calendar-file-ready a { text-decoration:none; }
.paid-export-panel { max-width:920px; margin:0 auto 30px; padding:22px 24px; border:1px solid rgba(212,140,255,.35); border-radius:20px; background:linear-gradient(135deg,rgba(212,140,255,.12),rgba(105,228,221,.07)); box-shadow:0 18px 50px rgba(0,0,0,.18); }
.paid-export-panel h2 { margin:0; font-size:1.35rem; }.paid-export-panel > div:first-child p:last-child { margin:8px 0 0; color:var(--muted); font-size:.86rem; }.paid-export-panel strong { color:var(--ink); }.paid-export-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:17px; }.waitlist-status { margin:13px 0 0; color:var(--cyan); font-size:.8rem; font-weight:700; }
.light-mode .paid-export-panel { background:linear-gradient(135deg,rgba(135,66,167,.08),rgba(8,127,134,.06)); box-shadow:0 18px 50px rgba(31,55,87,.1); }
.paid-export-actions a { text-decoration:none; }
.eyebrow,.step-kicker { margin:0 0 7px; color:var(--cyan); font-size:.75rem; font-weight:780; letter-spacing:.13em; text-transform:uppercase; }
h1 { max-width:900px; margin:0; font-size:clamp(2rem,4vw,4.25rem); line-height:.99; letter-spacing:-.052em; }
.intro-copy { max-width:730px; margin:15px 0 0; color:var(--muted); font-size:1.02rem; }
.workspace { display:grid; grid-template-columns:minmax(410px,.84fr) minmax(600px,1.4fr); gap:18px; align-items:start; }
.builder-card,.results-card { background:linear-gradient(155deg,rgba(23,37,61,.97),rgba(13,24,42,.98)); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:0 24px 70px rgba(0,0,0,.24); }
.builder-card,.results-card { padding:25px; min-width:0; }
.builder-heading,.results-heading,.calendar-heading,.editor-heading,.recognised-heading,.ledger-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
h2 { margin:0; font-size:1.42rem; letter-spacing:-.025em; }
h3 { margin:0; font-size:1rem; }
p { line-height:1.5; }
.text-button { border:0; background:transparent; color:var(--muted); cursor:pointer; padding:7px; font-size:.84rem; }
.text-button:hover { color:var(--cyan); }
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin:23px 0 25px; }
.step-button { min-height:43px; border:1px solid var(--line); border-radius:12px; background:rgba(4,12,24,.36); color:var(--muted); cursor:pointer; transition:.2s ease; font-size:.8rem; font-weight:680; }
.step-button span { display:inline-grid; width:20px; height:20px; margin-right:4px; place-items:center; border-radius:50%; background:rgba(255,255,255,.08); font-size:.68rem; }
.step-button.active { border-color:rgba(105,228,221,.55); background:rgba(105,228,221,.1); color:var(--ink); }
.step-button.active span { background:var(--cyan); color:#06201f; }
.step-button.complete span { background-content:"✓"; background:rgba(105,228,221,.14); color:var(--cyan); }
.form-step { display:none; }
.form-step.active { display:block; animation:lift-in .24s ease both; }
@keyframes lift-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
.light-mode { color-scheme:light; --ink:#16243a; --muted:#4d5b70; --muted-2:#69778b; --night:#f4f7fb; --panel:#ffffff; --line:rgba(38,65,102,.18); --cyan:#087f86; --cyan-deep:#087f86; --amber:#a96a00; --blue:#2c66c3; --violet:#8742a7; --danger:#c4423d; background:radial-gradient(circle at 85% -10%,rgba(72,142,255,.12),transparent 35rem),radial-gradient(circle at -8% 45%,rgba(39,210,197,.08),transparent 30rem),var(--night); }
.light-mode .app-header { background:rgba(255,255,255,.82); }
.light-mode .theme-toggle { background:#fff; }
.light-mode .mode-switcher,.light-mode .quick-calendar,.light-mode .builder-card,.light-mode .results-card { background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(244,248,253,.98)); box-shadow:0 20px 55px rgba(31,55,87,.12); }
.light-mode .mode-switcher { background:#edf3f8; }
.light-mode input[type="number"],.light-mode input[type="time"],.light-mode input[type="text"],.light-mode input[type="date"],.light-mode select,.light-mode textarea,.light-mode .input-with-unit { background:#fff; color:var(--ink); }
.light-mode .choice-card,.light-mode .check-card,.light-mode .life-rule,.light-mode .duty-change-row,.light-mode .quick-duty,.light-mode .day-choice,.light-mode .step-button,.light-mode .library-info,.light-mode .optional-limit-fields { background:rgba(255,255,255,.78); }
.light-mode .choice-card:has(input:checked),.light-mode .day-choice:has(input:checked) { background:rgba(8,127,134,.08); }
.light-mode .quick-custom,.light-mode .optional-limit-fields,.light-mode .duty-change-section { background:rgba(237,243,248,.7); }
.light-mode .hero-visual { background:linear-gradient(145deg,#ffffff,#eaf2f7); box-shadow:0 22px 55px rgba(31,55,87,.14); }.light-mode .hero-day { background:rgba(240,246,250,.88); border-color:rgba(38,65,102,.14); }
.question-block { min-width:0; margin:0 0 20px; padding:0; border:0; }
.first-question { margin-top:2px; }
.compact-question { margin:17px 0 13px; }
.question-label { display:block; margin:0 0 9px; color:var(--ink); font-size:1rem; font-weight:740; }
.question-help,.field-help { display:block; margin:-4px 0 10px; color:var(--muted-2); font-size:.76rem; font-weight:500; }
input[type="number"],input[type="time"],input[type="text"],input[type="date"],select,textarea { width:100%; min-height:48px; border:1px solid var(--line); border-radius:11px; background:rgba(5,14,28,.63); color:var(--ink); padding:10px 12px; transition:.2s ease; }
textarea { min-height:86px; resize:vertical; }
select { appearance:none; padding-right:34px; background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%); background-position:calc(100% - 18px) 21px,calc(100% - 13px) 21px; background-size:5px 5px; background-repeat:no-repeat; }
input:hover,select:hover,textarea:hover { border-color:rgba(168,190,222,.33); }
input:focus,select:focus,textarea:focus { border-color:var(--cyan); }
.has-error { border-color:rgba(255,139,131,.72)!important; background:rgba(255,139,131,.055)!important; }
.field.has-error > span:first-child,.question-block.has-error > .question-label,.check-card.has-error strong { color:var(--danger); }
.input-error { border-color:var(--danger)!important; box-shadow:0 0 0 2px rgba(255,139,131,.12); }
.field-error { display:block; margin-top:6px; color:var(--danger); font-size:.76rem; font-weight:700; line-height:1.35; }
.question-block.has-error .choice-row,.question-block.has-error .day-choices { padding:6px; border:1px solid rgba(255,139,131,.58); border-radius:14px; }
.sub-input { margin-top:9px; }
.input-with-unit { display:grid; grid-template-columns:1fr auto; align-items:center; border:1px solid var(--line); border-radius:11px; background:rgba(5,14,28,.63); overflow:hidden; }
.input-with-unit input { border:0; border-radius:0; background:transparent; }
.input-with-unit em { padding-right:12px; color:var(--muted-2); font-size:.75rem; font-style:normal; font-weight:650; }
.choice-row { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.three-choices { grid-template-columns:repeat(3,1fr); }
.choice-card { min-height:70px; display:flex; align-items:center; gap:11px; padding:12px; border:1px solid var(--line); border-radius:13px; background:rgba(5,14,28,.38); cursor:pointer; }
.choice-card:has(input:checked) { border-color:rgba(105,228,221,.5); background:rgba(105,228,221,.08); }
.choice-card input,.check-card input { width:18px; height:18px; flex:0 0 18px; accent-color:var(--cyan-deep); }
.choice-card span,.check-card span { display:grid; gap:2px; }
.choice-card strong,.check-card strong { font-size:.86rem; }
.choice-card small,.check-card small { color:var(--muted-2); font-size:.75rem; }
.recognised-card { margin:-4px 0 20px; padding:15px; border:1px solid rgba(105,228,221,.27); border-radius:14px; background:rgba(105,228,221,.055); }
.recognised-heading { margin-bottom:11px; }
.recognised-heading > div { display:flex; align-items:center; gap:8px; }
.recognised-heading strong { font-size:.82rem; }
.recognised-heading small { color:var(--cyan); font-size:.68rem; }
.success-dot { width:7px; height:7px; border-radius:50%; background:var(--cyan); box-shadow:0 0 10px var(--cyan); }
.pattern-preview { display:flex; flex-wrap:wrap; gap:5px; }
.pattern-chip { width:32px; height:32px; display:grid; place-items:center; border-radius:8px; font-size:.75rem; font-weight:850; }
.pattern-chip.d { background:rgba(105,228,221,.13); color:var(--cyan); }
.pattern-chip.b { background:rgba(255,196,90,.13); color:var(--amber); }
.pattern-chip.n { background:rgba(121,170,255,.15); color:var(--blue); }
.pattern-chip.o { background:rgba(255,255,255,.045); color:var(--muted-2); }
.recognised-card p { margin:10px 0 0; color:var(--muted); font-size:.74rem; }
.anomaly-editor { margin:-5px 0 20px; padding:15px; border:1px solid rgba(255,196,90,.23); border-radius:14px; background:rgba(255,196,90,.035); }
.editor-heading strong,.editor-heading small { display:block; }
.editor-heading small { color:var(--muted-2); font-size:.68rem; }
.editor-heading > span { padding:4px 8px; border-radius:99px; background:rgba(255,196,90,.1); color:var(--amber); font-size:.65rem; }
.shift-table-wrap { overflow-x:auto; margin:13px -4px 0; padding:0 4px; }
.shift-table { width:100%; min-width:560px; border-collapse:separate; border-spacing:0 6px; }
.shift-table th { padding:0 6px 3px; color:var(--muted-2); font-size:.61rem; letter-spacing:.04em; text-align:left; text-transform:uppercase; }
.shift-table td { padding:5px 6px; background:rgba(5,14,28,.43); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.shift-table td:first-child { border-left:1px solid var(--line); border-radius:9px 0 0 9px; font-size:.73rem; font-weight:700; }
.shift-table td:last-child { border-right:1px solid var(--line); border-radius:0 9px 9px 0; }
.shift-table input { min-width:88px; min-height:36px; padding:5px 7px; font-size:.73rem; }
.duty-code { width:22px; height:22px; display:inline-grid; margin-right:6px; place-items:center; border-radius:6px; font-size:.65rem; font-weight:850; }
.duty-d { background:rgba(105,228,221,.13); color:var(--cyan); }.duty-b { background:rgba(255,196,90,.13); color:var(--amber); }.duty-n { background:rgba(121,170,255,.15); color:var(--blue); }
.notice-card { padding:16px; border:1px solid rgba(255,196,90,.25); border-radius:13px; background:rgba(255,196,90,.055); }
.notice-card p { margin:5px 0 0; color:var(--muted); font-size:.8rem; }
.published-preset { display:grid; gap:12px; margin:0 0 20px; padding:16px; border:1px solid rgba(121,170,255,.3); border-radius:14px; background:linear-gradient(135deg,rgba(121,170,255,.1),rgba(105,228,221,.035)); }
.published-preset h3 { margin:2px 0 4px; font-size:.98rem; }
.published-preset p { margin:0; color:var(--muted); font-size:.78rem; }
.preset-kicker { color:var(--blue); font-size:.66rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.preset-button { width:100%; }
.preset-source { padding-top:10px; border-top:1px solid var(--line); font-size:.7rem!important; }
.preset-source a { color:var(--cyan); text-underline-offset:2px; }
.preset-status { padding:9px 11px; border-radius:9px; background:rgba(105,228,221,.08); color:#a8ece7; font-size:.72rem; }
.service-picker { align-items:end; }
.library-info { padding:12px; border:1px solid var(--line); border-radius:11px; background:rgba(4,12,24,.28); }
.library-info strong,.library-info span { display:block; }
.library-info strong { font-size:.82rem; }
.library-info span { margin-top:3px; color:var(--muted); font-size:.75rem; }
.library-info a { color:var(--cyan); text-underline-offset:2px; }
.new-start-date { margin-top:18px; }
.reduction-target { padding:15px; border:1px solid rgba(212,140,255,.25); border-radius:14px; background:rgba(212,140,255,.04); }
.optional-limits-toggle { margin-bottom:12px; }
.optional-limit-fields { padding:16px; border:1px solid var(--line); border-radius:14px; background:rgba(4,12,24,.24); }
.section-intro { margin:0 0 16px; }
.section-intro p { margin:4px 0 0; color:var(--muted-2); font-size:.82rem; }
.contract-credit { margin:0 0 22px; }
.duty-change-section { margin:0 0 22px; padding:15px; border:1px solid rgba(121,170,255,.22); border-radius:14px; background:rgba(121,170,255,.035); }
.duty-change-rows { display:grid; gap:9px; }
.duty-change-row { padding:12px; border:1px solid var(--line); border-radius:12px; background:rgba(5,14,28,.38); }
.duty-change-toggle { display:flex; align-items:center; gap:9px; margin-bottom:10px; cursor:pointer; font-size:.82rem; font-weight:740; }
.duty-change-toggle input { width:18px; height:18px; accent-color:var(--cyan-deep); }
.duty-change-fields { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
.duty-change-fields .field { font-size:.7rem; }
.day-choices { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
.day-choice { display:grid; place-items:center; min-height:42px; border:1px solid var(--line); border-radius:9px; background:rgba(5,14,28,.38); color:var(--muted); cursor:pointer; font-size:.75rem; font-weight:700; }
.day-choice:has(input:checked) { border-color:rgba(105,228,221,.5); background:rgba(105,228,221,.1); color:var(--ink); }
.day-choice input { position:absolute; opacity:0; }
.time-pair { display:grid; grid-template-columns:1fr auto 1fr; align-items:end; gap:10px; }
.time-pair > span { padding-bottom:13px; color:var(--muted-2); font-size:.75rem; }
.time-pair label span { display:block; margin-bottom:5px; color:var(--muted-2); font-size:.71rem; }
.life-rules { display:grid; gap:11px; margin-bottom:11px; }
.life-rules:empty::before { content:"No life rules added yet."; display:block; padding:18px; border:1px dashed rgba(168,190,222,.25); border-radius:13px; color:var(--muted-2); font-size:.8rem; text-align:center; }
.commitment-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.rule-count { flex:0 0 auto; padding:4px 8px; border:1px solid var(--line); border-radius:99px; color:var(--muted); background:rgba(255,255,255,.035); font-size:.68rem; font-weight:700; }
.life-rule { padding:14px; border:1px solid var(--line); border-radius:14px; background:rgba(5,14,28,.4); }
.life-rule-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.life-rule-heading strong { font-size:.84rem; }
.remove-rule { border:0; background:transparent; color:var(--muted); cursor:pointer; padding:5px; font-size:.74rem; }
.remove-rule:hover { color:var(--danger); }
.rule-grid { display:grid; grid-template-columns:1fr 1.25fr; gap:10px; }
.rule-grid .field { min-width:0; }
.rule-time-pair { display:grid; grid-template-columns:1fr 1fr; gap:10px; grid-column:1/-1; }
.rule-anchor { grid-column:1/-1; }
.add-rule-button { width:100%; margin:0 0 12px; }
.care-cycle-section { display:grid; gap:11px; margin:0 0 12px; }
.care-cycle-fields { display:grid; gap:15px; padding:15px; border:1px solid rgba(212,140,255,.24); border-radius:14px; background:rgba(212,140,255,.035); }
.compact-intro { margin:2px 0 -3px; }
.boundary-options { display:grid; grid-template-columns:1.4fr 1fr; gap:9px; align-items:stretch; }
.compact-check { min-height:70px; }
.boundary-time { padding:9px 10px; border:1px solid var(--line); border-radius:13px; background:rgba(5,14,28,.38); }
.boundary-time input { min-height:38px; padding:6px 8px; }
.care-exceptions { margin:0; padding-top:2px; }
.care-exceptions .question-label { font-size:.83rem; }
.check-card { display:flex; align-items:flex-start; gap:12px; padding:14px; border:1px solid var(--line); border-radius:13px; background:rgba(5,14,28,.4); cursor:pointer; }
.check-card:has(input:checked) { border-color:rgba(121,170,255,.28); background:rgba(121,170,255,.055); }
.option-checks { display:grid; gap:9px; }
.priority-intro { margin-bottom:17px; }
.priority-intro p,.calendar-heading p { margin:3px 0 0; color:var(--muted-2); font-size:.78rem; }
.safety-details { margin-top:15px; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:rgba(4,12,24,.28); }
.safety-details summary { color:var(--muted); cursor:pointer; font-size:.78rem; font-weight:700; }
.safety-details .field-grid { margin-top:14px; }
.field-grid { display:grid; gap:12px; }.two-col { grid-template-columns:1fr 1fr; }
.field { display:grid; gap:7px; color:var(--muted); font-size:.78rem; font-weight:650; }
.form-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:25px; }
.microcopy { max-width:210px; color:var(--muted-2); font-size:.72rem; }
.primary-button,.secondary-button { min-height:45px; display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:12px; padding:10px 16px; cursor:pointer; font-weight:740; transition:transform .18s ease,filter .18s ease,border-color .18s ease; }
.primary-button { border:0; background:var(--cyan); color:#05201f; }.primary-button:hover { transform:translateY(-1px); filter:brightness(1.06); }
.secondary-button { border:1px solid var(--line); background:rgba(255,255,255,.03); color:var(--ink); }.secondary-button:hover { border-color:rgba(105,228,221,.45); }
.generate-button { min-width:210px; }.generate-button svg { width:19px; fill:currentColor; }
.status-pill { display:flex; align-items:center; gap:7px; padding:5px 10px; border:1px solid rgba(105,228,221,.22); border-radius:99px; color:var(--cyan); background:rgba(105,228,221,.07); font-size:.75rem; font-weight:700; }
.status-pill span { width:6px; height:6px; border-radius:50%; background:var(--cyan); box-shadow:0 0 10px var(--cyan); }
.status-pill.waiting { border-color:var(--line); background:rgba(255,255,255,.03); color:var(--muted); }
.status-pill.waiting span { background:var(--muted-2); box-shadow:none; }
.interview-summary { display:flex; flex-wrap:wrap; gap:7px; margin:22px 0 14px; }
.summary-chip { padding:6px 9px; border:1px solid var(--line); border-radius:99px; background:rgba(4,12,24,.32); color:var(--muted); font-size:.75rem; }
.summary-chip strong { color:var(--ink); }
.option-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 16px; }
.option-tab { min-height:43px; padding:7px 9px; border:1px solid var(--line); border-radius:11px; background:rgba(4,12,24,.32); color:var(--muted); cursor:pointer; font-size:.73rem; font-weight:720; }
.option-tab.active { border-color:rgba(121,170,255,.52); background:rgba(121,170,255,.13); color:var(--ink); }
.option-summary { min-height:132px; display:flex; align-items:center; justify-content:space-between; gap:22px; padding:21px; border:1px solid var(--line); border-radius:17px; background:linear-gradient(125deg,rgba(121,170,255,.12),rgba(105,228,221,.045)); }
.option-label { margin:0 0 4px; color:var(--amber); font-size:.68rem; font-weight:780; letter-spacing:.1em; text-transform:uppercase; }
.option-summary h3 { font-size:1.42rem; }
.option-summary p:last-child { max-width:535px; margin:6px 0 0; color:var(--muted); font-size:.85rem; }
.score-ring { width:84px; height:84px; flex:0 0 84px; display:grid; place-items:center; position:relative; }
.score-ring svg { width:84px; height:84px; position:absolute; transform:rotate(-90deg); }.score-ring circle { fill:none; stroke-width:3; }.ring-track { stroke:rgba(255,255,255,.08); }.ring-value { stroke:var(--cyan); stroke-linecap:round; stroke-dasharray:100; transition:stroke-dashoffset .4s ease; }
.score-ring strong { margin-top:-8px; font-size:1.25rem; }.score-ring small { margin-top:31px; position:absolute; color:var(--muted-2); font-size:.62rem; text-transform:uppercase; }
.result-actions { display:flex; flex-wrap:wrap; gap:9px; margin:10px 0; }
.calendar-export-panel { display:grid; grid-template-columns:minmax(160px,220px) 1fr; gap:12px 18px; align-items:end; margin:12px 0 18px; padding:14px; border:1px solid rgba(105,228,221,.22); border-radius:14px; background:rgba(105,228,221,.045); }
.calendar-export-panel > p { margin:0; color:var(--muted); font-size:.78rem; }
.calendar-export-panel .result-actions,.calendar-export-panel .calendar-file-ready { grid-column:1/-1; margin:0; }
.calendar-button svg { width:18px; fill:currentColor; }
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:10px 0 20px; }
.metric { min-height:78px; display:flex; flex-direction:column; justify-content:center; padding:11px 12px; border:1px solid var(--line); border-radius:13px; background:rgba(4,12,24,.32); }
.metric span,.metric small { color:var(--muted-2); font-size:.65rem; }.metric strong { margin:1px 0; font-size:1.1rem; }
.hours-ledger { margin:0 0 21px; padding:17px; border:1px solid var(--line); border-radius:15px; background:rgba(4,12,24,.31); }
.ledger-heading { margin-bottom:9px; }.balance-badge { padding:4px 8px; border:1px solid rgba(105,228,221,.25); border-radius:99px; background:rgba(105,228,221,.07); color:var(--cyan); font-size:.65rem; }.balance-badge.unbalanced { border-color:rgba(255,196,90,.3); background:rgba(255,196,90,.08); color:var(--amber); }
.ledger-rows { display:grid; }.ledger-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 0; border-top:1px solid rgba(168,190,222,.1); }.ledger-row span { display:grid; color:var(--ink); font-size:.74rem; }.ledger-row small { color:var(--muted-2); font-size:.61rem; }.ledger-row strong { color:var(--cyan); font-size:.8rem; text-align:right; }
.organisation-impact { margin:10px 0 0; padding:10px 11px; border-radius:9px; background:rgba(121,170,255,.07); color:var(--muted); font-size:.71rem; }.organisation-impact strong { color:var(--blue); }
.calendar-heading { margin-bottom:10px; }.icon-button { width:38px; height:38px; display:grid; place-items:center; flex:0 0 38px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.03); cursor:pointer; }.icon-button:hover { border-color:rgba(105,228,221,.45); }.icon-button svg { width:17px; fill:var(--muted); }
.calendar-scroll { max-height:600px; overflow:auto; padding:0 5px 7px 0; scrollbar-color:rgba(105,228,221,.32) transparent; }
.cycle-calendar { min-width:720px; display:grid; gap:7px; }
.week-row { display:grid; grid-template-columns:50px repeat(7,minmax(82px,1fr)); gap:5px; }.week-label { display:flex; flex-direction:column; justify-content:center; color:var(--muted-2); font-size:.58rem; text-transform:uppercase; }.week-label strong { color:var(--ink); font-size:.8rem; }
.day-cell { min-height:79px; padding:7px; border:1px solid var(--line); border-radius:9px; background:rgba(4,12,24,.37); position:relative; }.day-cell.protected { border-color:rgba(255,196,90,.25); }.day-cell.changed { box-shadow:inset 0 0 0 1px rgba(105,228,221,.32); }.day-cell > span { display:flex; justify-content:space-between; margin-bottom:5px; color:var(--muted-2); font-size:.58rem; font-weight:700; text-transform:uppercase; }.commitment-dot { color:var(--amber); }
.shift-block { padding:5px 6px; border-left:3px solid var(--cyan); border-radius:5px; background:rgba(105,228,221,.11); color:var(--ink); font-size:.63rem; line-height:1.25; }.shift-block.b { border-left-color:var(--amber); background:rgba(255,196,90,.1); }.shift-block.n { border-left-color:var(--blue); background:rgba(121,170,255,.13); }.shift-block.r { border-left-color:var(--violet); background:rgba(212,140,255,.12); }.shift-block.o { border-left-color:var(--muted-2); background:rgba(255,255,255,.035); color:var(--muted); }.shift-block b { font-size:.59rem; }.shift-block small { display:block; color:var(--muted); font-size:.57rem; }.change-note { margin-top:3px; color:var(--cyan)!important; font-size:.54rem!important; }
.pattern-warnings { display:grid; gap:7px; margin-top:12px; }.warning-item { display:flex; align-items:flex-start; gap:8px; padding:9px 11px; border-radius:9px; background:rgba(255,196,90,.07); color:#e9c989; font-size:.72rem; }.warning-item.okay { background:rgba(105,228,221,.06); color:#9fe4df; }.warning-item span { font-weight:900; }
.disclaimer { margin:14px 0 0; color:var(--muted-2); font-size:.67rem; }
.empty-result { min-height:480px; display:grid; place-content:center; justify-items:center; text-align:center; }.empty-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:rgba(255,139,131,.1); color:var(--danger); font-weight:800; }.empty-result p { max-width:420px; color:var(--muted); }
.toast { position:fixed; left:50%; bottom:24px; z-index:20; transform:translate(-50%,20px); padding:10px 15px; border:1px solid rgba(105,228,221,.32); border-radius:10px; background:#14253b; box-shadow:0 16px 40px rgba(0,0,0,.4); opacity:0; pointer-events:none; transition:.25s ease; font-size:.8rem; }.toast.show { transform:translate(-50%,0); opacity:1; }

@media (max-width:1080px) { .workspace { grid-template-columns:1fr; } }
@media (max-width:650px) {
  .app-header { height:66px; padding:0 17px; }.privacy-note { font-size:0; }.privacy-note svg { width:21px; }.app-shell { padding:16px 13px 48px; }.product-intro { padding:12px 4px 23px; }.product-intro h1 { max-width:340px; font-size:2.25rem; }.product-intro > p:last-child { font-size:.92rem; }.mode-switcher { max-width:none; }.mode-button { min-height:62px; padding:9px 10px; }.mode-button strong { font-size:.85rem; }.mode-button small { font-size:.67rem; }.quick-calendar { padding:18px 15px; border-radius:19px; }.quick-heading { display:grid; }.quick-badge { width:max-content; }.quick-grid,.quick-time-grid,.vsa-actions { grid-template-columns:1fr; }.quick-actions,.calendar-file-ready,.calendar-file-actions { flex-direction:column; align-items:stretch; }.builder-card,.results-card { padding:18px 15px; border-radius:19px; }.steps { margin:19px 0 21px; }.step-button { font-size:.7rem; }.step-button span { display:none; }.form-actions { align-items:stretch; flex-wrap:wrap; }.microcopy { order:2; max-width:none; width:100%; }.primary-button,.secondary-button { flex:1; }.metric-grid { grid-template-columns:1fr 1fr; }.option-summary { padding:16px; }.option-summary h3 { font-size:1.18rem; }.score-ring { width:68px; height:68px; flex-basis:68px; }.score-ring svg { width:68px; height:68px; }.option-tabs { gap:5px; }.option-tab { padding:5px; font-size:.7rem; }.day-choices { grid-template-columns:repeat(4,1fr); }.choice-card { padding:10px; }.choice-row.three-choices,.two-col,.rule-grid,.duty-change-fields,.boundary-options,.calendar-export-panel { grid-template-columns:1fr; }.rule-time-pair,.rule-anchor { grid-column:auto; }.result-actions { flex-direction:column; }.calendar-export-panel .result-actions,.calendar-export-panel .calendar-file-ready { grid-column:auto; }.brand small { max-width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}
@media print {
  :root { color-scheme:light; --ink:#142033; --muted:#465268; --muted-2:#606b7d; --night:#fff; --line:#ced4df; }.app-header,.product-intro,.builder-card,.option-tabs,.result-actions,.status-pill,.toast,.ambient { display:none!important; } body { background:#fff; }.app-shell { width:100%; padding:0; }.workspace { display:block; }.results-card { border:0; box-shadow:none; padding:0; }.calendar-scroll { max-height:none; overflow:visible; }.cycle-calendar { min-width:0; }.week-row { grid-template-columns:45px repeat(7,1fr); }.day-cell { min-height:70px; padding:5px; }.shift-block { color:#142033; background:#e5f7f5; }.shift-block.b { background:#fff4d9; }.shift-block.n { background:#e7eefb; }.hours-ledger { background:#fff; }
}

/* Refined product surface: clearer hierarchy, calmer contrast and easier touch targets. */
body { background:radial-gradient(circle at 88% -5%,rgba(92,155,255,.2),transparent 32rem),radial-gradient(circle at 0 35%,rgba(52,213,198,.12),transparent 28rem),#07101e; }
.app-header { position:sticky; top:0; z-index:10; background:rgba(7,16,30,.78); backdrop-filter:blur(18px); }
.brand { font-size:1.05rem; }
.product-intro { max-width:980px; padding:42px 2px 30px; }
.product-intro h1 { max-width:760px; font-size:clamp(2.25rem,4.5vw,4.4rem); line-height:1.02; }
.product-intro > p:last-child { max-width:650px; font-size:1.05rem; line-height:1.65; }
.mode-switcher { max-width:760px; gap:10px; padding:6px; border-color:rgba(168,190,222,.22); background:rgba(4,12,24,.58); box-shadow:0 12px 32px rgba(0,0,0,.16); }
.mode-button { min-height:76px; padding:13px 17px; }
.mode-button strong { font-size:1rem; }
.mode-button small { font-size:.78rem; }
.quick-calendar,.builder-card,.results-card { border-color:rgba(168,190,222,.22); box-shadow:0 20px 65px rgba(0,0,0,.27); }
.quick-calendar { padding:30px; }
.quick-heading h2 { font-size:1.8rem; letter-spacing:-.03em; }
.quick-heading p:last-child { font-size:.92rem; }
.quick-steps { display:flex; align-items:center; gap:10px; margin:-4px 0 22px; color:var(--muted-2); font-size:.72rem; font-weight:750; letter-spacing:.02em; }
.quick-steps span { display:inline-flex; align-items:center; gap:7px; }
.quick-steps b { display:grid; width:24px; height:24px; place-items:center; border:1px solid rgba(105,228,221,.35); border-radius:50%; color:var(--cyan); font-size:.7rem; }
.quick-steps i { width:30px; height:1px; background:rgba(168,190,222,.22); }
.quick-grid { gap:14px; }
.field { gap:8px; font-size:.8rem; }
input[type="number"],input[type="time"],input[type="text"],input[type="date"],select,textarea { min-height:52px; border-color:rgba(168,190,222,.22); background:rgba(3,11,23,.72); }
select, input, textarea { font-size:.92rem; }
.quick-source,.library-info { background:rgba(2,9,20,.42); }
.quick-custom,.vsa-choice,.published-preset { border-color:rgba(121,170,255,.28); background:linear-gradient(145deg,rgba(24,43,72,.7),rgba(5,14,28,.48)); }
.quick-actions { padding-top:4px; }
.primary-button,.secondary-button { min-height:50px; border-radius:13px; }
.primary-button { box-shadow:0 7px 18px rgba(32,185,176,.16); }
.steps { gap:8px; }
.step-button { min-height:48px; background:rgba(3,11,23,.48); }
.step-button.active { box-shadow:0 6px 18px rgba(105,228,221,.08); }
.question-label { font-size:1.04rem; }
.choice-card,.check-card { min-height:76px; border-color:rgba(168,190,222,.2); background:rgba(3,11,23,.42); }
.choice-card:hover,.check-card:hover { border-color:rgba(105,228,221,.34); }
.calendar-file-ready { box-shadow:0 10px 28px rgba(105,228,221,.08); }
.intro-topline { display:flex; align-items:center; justify-content:space-between; gap:16px; max-width:760px; }
.intro-topline .eyebrow { margin:0; }
.intro-mark { display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(105,228,221,.36); border-radius:13px; background:linear-gradient(145deg,rgba(105,228,221,.18),rgba(121,170,255,.16)); color:var(--cyan); font-size:.72rem; font-weight:850; letter-spacing:.08em; box-shadow:0 8px 24px rgba(0,0,0,.2); }
.intro-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr); gap:44px; align-items:center; max-width:1240px; }
.intro-copy-block { min-width:0; }
.hero-visual { position:relative; padding:20px; border:1px solid rgba(105,228,221,.3); border-radius:24px; background:linear-gradient(145deg,rgba(26,49,78,.98),rgba(11,25,45,.98)); box-shadow:0 22px 55px rgba(0,0,0,.28); overflow:hidden; }
.hero-visual::before { content:""; position:absolute; width:190px; height:190px; right:-55px; top:-70px; border-radius:50%; background:rgba(105,228,221,.12); filter:blur(4px); }
.hero-visual-head,.hero-visual-foot { position:relative; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.hero-visual-head { color:var(--muted-2); font-size:.67rem; font-weight:800; letter-spacing:.13em; }.hero-visual-head b { padding:5px 8px; border:1px solid rgba(105,228,221,.3); border-radius:999px; color:var(--cyan); font-size:.68rem; letter-spacing:0; }
.hero-calendar { position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:7px; margin:22px 0 18px; }
.hero-day { min-height:142px; display:flex; flex-direction:column; gap:7px; padding:10px 8px; border:1px solid rgba(168,190,222,.15); border-radius:13px; background:rgba(4,12,24,.42); }.hero-day.off { opacity:.72; }.hero-day small { color:var(--muted-2); font-size:.6rem; font-weight:800; letter-spacing:.08em; }.hero-day strong { color:var(--ink); font-size:.88rem; }.hero-shift { margin-top:auto; padding:7px 6px; border-radius:8px; font-size:.63rem; font-weight:700; line-height:1.2; }.hero-shift.day { background:rgba(105,228,221,.13); color:var(--cyan); }.hero-shift.late { background:rgba(255,196,90,.14); color:var(--amber); }.hero-shift.rest { background:rgba(121,170,255,.14); color:var(--blue); }
.hero-visual-foot { color:var(--muted); font-size:.68rem; }.hero-visual-foot span { display:inline-flex; align-items:center; gap:5px; }.hero-dot { width:7px; height:7px; border-radius:50%; }.hero-dot.cyan { background:var(--cyan); }.hero-dot.amber { background:var(--amber); }.hero-dot.blue { background:var(--blue); }
.benefit-row { display:flex; flex-wrap:wrap; gap:9px; margin-top:24px; }
.benefit-row span { display:inline-flex; align-items:center; gap:8px; padding:9px 12px; border:1px solid rgba(168,190,222,.18); border-radius:999px; background:rgba(3,11,23,.42); color:var(--muted); font-size:.76rem; }
.benefit-row b { color:var(--cyan); font-size:.62rem; letter-spacing:.08em; }
@media (max-width:650px) {
  .app-header { height:62px; }
  .product-intro { padding:29px 4px 24px; }
  .product-intro h1 { font-size:2.35rem; }
  .product-intro > p:last-child { font-size:.95rem; line-height:1.55; }
  .intro-topline { align-items:flex-start; }
  .header-actions { gap:8px; }.privacy-note { display:none; }.theme-toggle { min-height:34px; padding:6px 9px; }
  .intro-layout { display:block; }.hero-visual { margin-top:24px; padding:15px; }.hero-calendar { gap:4px; margin:17px 0 14px; }.hero-day { min-height:120px; padding:8px 5px; }.hero-shift { font-size:.56rem; padding:6px 4px; }
  .intro-mark { width:38px; height:38px; flex:0 0 38px; }
  .benefit-row { display:grid; grid-template-columns:1fr; gap:7px; margin-top:18px; }
  .benefit-row span { padding:8px 11px; }
  .mode-button { min-height:72px; }
  .quick-calendar { padding:21px 16px; }
  .quick-heading h2 { font-size:1.45rem; }
  .quick-steps { gap:6px; margin-bottom:18px; font-size:.65rem; }
  .quick-steps i { width:14px; }
  .quick-steps b { width:22px; height:22px; }
  input[type="number"],input[type="time"],input[type="text"],input[type="date"],select,textarea { min-height:50px; }
}
