:root{--color-brand-dark: #003060;--color-brand-darker: #002858;--color-brand-blue: #1880d8;--color-brand-blue-soft: #e8f4fc;--color-brand-green: #168347;--color-background: #f8fafc;--color-surface: #ffffff;--color-text: #10243c;--color-text-muted: #526579;--color-border: #cbd7e3;--color-focus: #f2b705;--color-danger: #a32b2b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:18px;color:var(--color-text);background:var(--color-background);line-height:1.55;font-synthesis:none}*{box-sizing:border-box}html.large-text{font-size:21px}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button,input,select,textarea,.file-button{min-height:52px;border:2px solid var(--color-border);border-radius:.6rem;color:var(--color-text);background:var(--color-surface)}button,.file-button{padding:.7rem 1rem;cursor:pointer;font-weight:750}input,select,textarea{padding:.7rem .85rem}textarea{resize:vertical}button:hover,.file-button:hover{border-color:var(--color-brand-blue);background:var(--color-brand-blue-soft)}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,.file-button:focus-within{outline:4px solid var(--color-focus);outline-offset:3px}.page{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.app-header{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.app-header__inner{display:flex;align-items:center;gap:.75rem;width:min(100%,980px);margin:auto;padding:.9rem 1.25rem}.app-header__mark{display:block;flex:0 0 auto;width:48px;height:48px;object-fit:contain}.app-header__name{display:block;color:var(--color-brand-dark);font-weight:800;line-height:1.2}.app-header__byline{display:block;margin-top:.12rem;color:var(--color-text-muted);font-size:.84rem}.app{width:min(100%,900px);margin:0 auto;padding:clamp(1.4rem,4vw,2.5rem) 1.25rem 2.5rem}.app--form{width:min(100%,720px)}.intro{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.intro h1{margin:.1rem 0 .35rem;color:var(--color-brand-dark);font-size:clamp(1.8rem,5vw,2.65rem);line-height:1.12}.intro p{max-width:630px;margin:.25rem 0;color:var(--color-text-muted)}.eyebrow{margin:0;color:var(--color-brand-green)!important;font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.text-toggle{flex:0 0 auto;white-space:nowrap}.actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:1rem;margin-bottom:1rem}.actions .install{grid-column:1 / -1}.calendar-export p{margin:.45rem .2rem 0;color:var(--color-text-muted);font-size:.88rem}.big{width:100%;min-height:64px;font-size:1.02rem}.primary{border-color:var(--color-brand-dark);color:#fff;background:var(--color-brand-dark)}.primary:hover{border-color:var(--color-brand-darker);color:#fff;background:var(--color-brand-darker)}.secondary{border-color:var(--color-brand-dark);color:var(--color-brand-dark);background:var(--color-surface)}.install{border-color:var(--color-brand-blue);color:var(--color-brand-dark);background:var(--color-brand-blue-soft)}.panel{margin:1rem 0;padding:clamp(1rem,3vw,1.4rem);border:1px solid var(--color-border);border-radius:.85rem;background:var(--color-surface);box-shadow:0 8px 24px #0030600f}.panel h1,.panel h2{margin-top:0;color:var(--color-brand-dark);font-size:1.45rem}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.section-heading span{color:var(--color-text-muted)}.notice{margin:0 0 1rem;padding:.85rem 1rem;border:1px solid var(--color-brand-blue);border-left-width:5px;border-radius:.55rem;background:var(--color-brand-blue-soft);font-weight:700}.notice--error{border-color:#c75b5b;color:#781d1d;background:#fff1f1}.search{display:block;margin-bottom:1rem;font-weight:700}.search input,label input,label select,label textarea{display:block;width:100%;margin-top:.3rem}.birthday-list{margin:0;padding:0;list-style:none}.birthday-list li{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.7rem;padding:.55rem 0;border-top:1px solid var(--color-border)}.birthday-list li:first-child{border-top:0}.birthday-card{display:flex;align-items:center;gap:1rem;width:100%;min-height:78px;text-align:left}.date-badge{display:grid;place-items:center;min-width:82px;padding:.4rem;border-radius:.5rem;color:var(--color-brand-dark);background:var(--color-brand-blue-soft)}.date-badge strong{font-size:1.45rem;line-height:1}.person{display:flex;min-width:0;flex-direction:column}.person strong{overflow-wrap:anywhere;font-size:1.1rem}.person small,.muted{color:var(--color-text-muted)}.delete{min-height:52px;border-color:#d7aaaa;color:var(--color-danger);background:var(--color-surface)}.delete:hover{border-color:var(--color-danger);color:#781d1d;background:#fff1f1}.empty{padding:1.5rem .5rem;text-align:center}.empty p{margin:.35rem 0}.empty button{margin-top:1rem}.utility-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.file-button{display:flex;align-items:center;justify-content:center;text-align:center}.file-button input{position:absolute;width:1px;height:1px;min-height:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}.privacy{margin-bottom:0;padding:.8rem;border-radius:.5rem;color:var(--color-brand-dark);background:var(--color-brand-blue-soft)}.print-options{margin-top:1rem;padding:1rem;border:2px solid var(--color-border);border-radius:.65rem}.print-options h3{margin-top:0}.print-options .primary{width:100%;margin-top:.5rem}.date-grid{display:grid;grid-template-columns:1fr 2fr;gap:1rem}form>label,fieldset{display:block;margin:1rem 0;font-weight:700}fieldset{padding:.75rem 1rem;border:2px solid var(--color-border);border-radius:.65rem}legend{padding:0 .35rem;font-weight:750}.check{display:flex;align-items:center;gap:.7rem;margin:.45rem 0;font-weight:500}.check input{width:28px;min-height:28px;margin:0}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.error{padding:.8rem;border:2px solid #c75b5b;border-radius:.5rem;color:#781d1d;background:#fff1f1;font-weight:700}.app-footer{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem 1.25rem;margin-top:1rem;padding:1.5rem 1.25rem 1.75rem;border-top:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface);font-size:.89rem;text-align:center}.app-footer:before{position:absolute;top:-1px;width:72px;height:3px;border-radius:2px;background:var(--color-brand-blue);content:""}.app-footer p{margin:0}.app-footer a{color:#096ab8;font-weight:700;text-decoration-thickness:.08em;text-underline-offset:.2em}.app-footer a:hover{color:var(--color-brand-darker)}.print-report{display:none}@media(max-width:640px){.app-header__inner{padding-block:.8rem}.app-header__mark{width:44px;height:44px}.intro{display:block}.text-toggle{margin-top:1rem}.actions,.utility-grid,.button-row,.birthday-list li{grid-template-columns:1fr}.delete{width:100%}}@media(max-width:420px){.app,.app-header__inner{padding-right:.9rem;padding-left:.9rem}.date-grid{grid-template-columns:1fr;gap:0}.app-footer{flex-direction:column}}@media(prefers-reduced-motion:no-preference){button,a,.file-button{transition:color .15s ease,background-color .15s ease,border-color .15s ease}}@page{size:A4 portrait;margin:16mm 14mm 17mm}@media print{html{color-scheme:light;font-size:12pt}body{color:#111;background:#fff}.screen-only{display:none!important}.print-report{display:block}.print-header{margin-bottom:7mm;padding-bottom:5mm;border-bottom:2px solid #003060}.print-brand{margin:0;color:#003060;font-weight:800;letter-spacing:.12em}.print-header h1{margin:1mm 0;font-size:25pt}.print-header p{margin:0}.print-month{margin:0 0 7mm;break-inside:avoid}.print-month h2{margin:0 0 2mm;padding-bottom:1mm;border-bottom:1px solid #444;font-size:17pt}table{width:100%;border-collapse:collapse;font-size:12.5pt}thead{display:table-header-group}th,td{padding:2.5mm 2mm;border-bottom:1px solid #bbb;text-align:left;vertical-align:top}th:first-child,td:first-child{width:31mm}th:nth-child(3),td:nth-child(3){width:24mm}tr{break-inside:avoid}.print-footer{margin-top:8mm;padding-top:3mm;border-top:1px solid #777;color:#333;font-size:10pt;text-align:left}}
