:root{color:#28312e;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--background:#f5f7f6;--surface:#fff;--input:#fafcfb;--heading:#17201d;--muted:#66716d;--border:#dce3e0;--accent:#25735a;--accent-soft:#e3f2ec;--focus:#25735a47;--danger:#b13b3b;--danger-soft:#fbeaea;--shadow:0 12px 30px #1931290f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#edf1ef;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic UI,sans-serif}@media (prefers-color-scheme:dark){:root{color:#d9e2df;--background:#111714;--surface:#19211e;--input:#202a26;--heading:#f0f5f3;--muted:#a3b0ab;--border:#34403b;--accent:#74c5a8;--accent-soft:#233d34;--focus:#74c5a84d;--danger:#f28b8b;--danger-soft:#3c2424;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#111714}}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}#root{background:var(--background);width:min(100%,480px);min-height:100svh;margin:0 auto}h1{color:var(--heading);letter-spacing:-.03em;font-size:1.75rem;line-height:1.15}p{line-height:1.55}.app-shell{background:var(--background);min-height:100svh}main{width:100%}.screen{padding:24px 18px calc(112px + env(safe-area-inset-bottom))}.page-header{margin:10px 2px 28px}.page-header h1{margin:4px 0 0}.compact-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.count-badge{color:var(--muted);font-size:.88rem}.metric-card,.settings-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:22px;padding:24px}.metric-card{grid-template-columns:1fr auto auto;align-items:end;gap:6px;display:grid}.dashboard-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dashboard-grid .primary-metric{grid-column:1/-1}.compact-metric{grid-template-columns:1fr auto auto;padding:18px}.compact-metric strong{font-size:2.25rem}.start-button{width:100%;margin-top:18px}.metric-card span{color:var(--muted);align-self:start}.metric-card strong{color:var(--accent);font-size:3.8rem;line-height:1}.metric-card small{color:var(--muted);padding-bottom:5px}.search-box{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:center;gap:10px;padding:0 14px;display:flex}.search-box input{background:0 0;border:0;padding-inline:0}.filter-row{justify-content:space-between;align-items:end;gap:12px;margin:14px 0;display:flex}.filter-row label:first-child{max-width:150px}.checkbox-label{align-items:center;flex-direction:row!important;gap:8px!important;font-weight:500!important;display:flex!important}.checkbox-label input{width:20px;height:20px}.chip-list{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;padding:7px 11px}.chip.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.home-group-filter{margin:18px 0}.home-group-filter .field-note{margin:4px 0 10px}.people-list{border-top:1px solid var(--border);margin-top:18px}.person-row{text-align:left;width:100%;color:inherit;border:0;border-bottom:1px solid var(--border);background:0 0;align-items:center;gap:13px;padding:14px 2px;display:flex}.person-summary{flex-direction:column;flex:1;min-width:0;display:flex}.person-summary strong{color:var(--heading);font-size:1rem}.person-summary small,.mini-groups{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.8rem;overflow:hidden}.avatar{object-fit:cover;border-radius:50%;flex:0 0 52px;width:52px;height:52px}.avatar-placeholder{background:var(--accent-soft);color:var(--accent);place-items:center;font-size:1.25rem;font-weight:700;display:grid}.avatar-large{flex-basis:108px;width:108px;height:108px;font-size:2.5rem}.empty-state{color:var(--muted);text-align:center;padding:48px 12px}.back-button,.text-button{color:var(--accent);background:0 0;border:0;padding:5px 0}.detail-hero{text-align:center;flex-direction:column;align-items:center;margin:20px 0 28px;display:flex}.detail-hero h1{margin:14px 0 2px}.detail-hero p{color:var(--muted)}.detail-list{background:var(--surface);border:1px solid var(--border);border-radius:18px;margin:0;padding:0 16px}.detail-list div{border-bottom:1px solid var(--border);grid-template-columns:105px 1fr;gap:10px;padding:13px 0;display:grid}.detail-list div:last-child{border-bottom:0}.detail-list dt{color:var(--muted);font-size:.82rem}.detail-list dd{color:var(--heading);margin:0}.detail-list .multiline{white-space:pre-wrap}.person-cards{margin-top:28px}.person-cards h2{font-size:1.15rem}.managed-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-direction:column;gap:12px;margin-bottom:10px;padding:15px;display:flex}.managed-card>div:first-child{flex-direction:column;gap:4px;display:flex}.managed-card small{color:var(--muted)}.suspended-badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-self:flex-start;padding:3px 8px;font-size:.75rem}.card-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.action-row{gap:10px;margin-top:22px;display:flex}.action-row>*{flex:1}.primary-button,.secondary-button,.danger-button,.file-button,.input-with-button button{border-radius:12px;min-height:44px;padding:10px 14px;font-weight:700}.primary-button{color:#fff;border:1px solid var(--accent);background:var(--accent)}.secondary-button,.file-button{color:var(--accent);border:1px solid var(--accent);background:var(--surface)}.danger-button{color:var(--danger);border:1px solid var(--danger);background:0 0}.danger-text{color:var(--danger)!important}.person-form{flex-direction:column;gap:18px;display:flex}fieldset{background:var(--surface);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:13px;margin:0;padding:17px;display:flex}legend{color:var(--heading);padding:0 7px;font-weight:700}label{color:var(--muted);flex-direction:column;gap:5px;font-size:.83rem;font-weight:600;display:flex}input,textarea,select{box-sizing:border-box;border:1px solid var(--border);width:100%;min-height:44px;color:var(--heading);background:var(--input);font:inherit;border-radius:10px;padding:9px 11px;font-size:1rem}textarea{resize:vertical}button{cursor:pointer;font:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.two-columns{grid-template-columns:1fr 1fr;gap:11px;display:grid}.handle-row{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 34px 34px 34px;gap:5px;display:grid}.icon-button{border:1px solid var(--border);background:var(--input);min-height:42px;color:var(--heading);border-radius:9px}.file-button{align-self:flex-start;align-items:center;display:inline-flex}.file-button input{display:none}.file-name,.field-note{color:var(--muted);font-size:.82rem}.birthday-row{grid-template-columns:1.4fr 1fr 1fr;gap:9px;display:grid}.input-with-button{gap:7px;display:flex}.input-with-button button{border:1px solid var(--accent);background:var(--accent);color:#fff}.error-message{color:var(--danger);background:var(--danger-soft);border-radius:12px;margin:0;padding:12px}.card-editor>.field-note{margin:0}.card-draft{border:1px solid var(--border);background:var(--input);border-radius:14px;flex-direction:column;gap:13px;padding:14px;display:flex}.card-draft header{justify-content:space-between;align-items:center;gap:10px;display:flex}.hint-options,.card-add-options{flex-direction:column;gap:9px;display:flex}.hint-options>span,.card-add-options>span{color:var(--muted);font-size:.82rem;font-weight:700}.study-screen{min-height:100svh;padding-bottom:32px}.study-header{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.study-card,.answer-layout{flex-direction:column;gap:20px;display:flex}.study-prompt{color:var(--heading);margin:0;font-size:1.45rem;font-weight:700}.hint-list{border:1px solid var(--border);background:var(--surface);border-radius:18px;margin:0;padding:0 16px}.hint-list>div{border-bottom:1px solid var(--border);padding:14px 0}.hint-list>div:last-child{border-bottom:0}.hint-list dt{color:var(--muted);font-size:.8rem}.hint-list dd{color:var(--heading);white-space:pre-wrap;margin:5px 0 0}.study-photo{object-fit:cover;border-radius:14px;width:100%;max-height:320px;display:block}.reveal-button{width:100%;margin-top:24px}.answer-section,.person-reveal{border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:20px}.answer-section{flex-direction:column;gap:8px;display:flex}.answer-section span{color:var(--muted);font-size:.82rem}.answer-section strong{color:var(--heading);font-size:1.55rem}.person-reveal{text-align:center;flex-direction:column;align-items:center;display:flex}.person-reveal h2{margin:12px 0 0}.person-reveal p{color:var(--muted);margin:6px 0 0}.person-reveal .multiline{text-align:left;white-space:pre-wrap;width:100%}.rating-section{grid-template-columns:repeat(2,1fr);gap:9px;display:grid}.rating-section button{background:var(--surface);border-radius:12px;min-height:48px;font-weight:700}.rating-again{border:1px solid var(--danger);color:var(--danger)}.rating-hard{color:#9a6515;border:1px solid #b47b20}.rating-good,.rating-easy{border:1px solid var(--accent);color:var(--accent)}.sticky-actions{bottom:calc(79px + env(safe-area-inset-bottom));z-index:2;border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;padding:10px;position:sticky}.settings-card{flex-direction:column;gap:18px;margin-bottom:16px;display:flex}.settings-card p{color:var(--muted);margin:5px 0 0;font-size:.88rem}.home-data-card{margin-top:18px}.backup-warning{background:var(--danger-soft);border-radius:12px;padding:12px;color:var(--danger)!important;margin:0!important}.success-message{color:var(--accent);background:var(--accent-soft);border-radius:12px;margin:0 0 16px;padding:12px}.settings-list,.backup-preview{flex-direction:column;gap:10px;display:flex}.settings-list-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-top:10px;display:flex}.settings-list-row>span{flex-direction:column;gap:3px;min-width:0;display:flex}.settings-list-row small,.backup-preview span{color:var(--muted);font-size:.8rem}.settings-list-row button{flex:none}.backup-preview{border:1px solid var(--border);background:var(--input);border-radius:14px;padding:14px}.integrity-results{margin:0}.integrity-results div{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.integrity-results div:last-child{border-bottom:0}.integrity-results dt{color:var(--muted)}.integrity-results dd{color:var(--heading);margin:0;font-weight:700}.bottom-nav{z-index:5;box-sizing:border-box;width:min(100%,480px);padding:8px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:var(--muted);background:0 0;border:0;flex-direction:column;align-items:center;gap:1px;font-size:.72rem;display:flex}.bottom-nav button span{align-items:center;height:1.75rem;display:flex}.bottom-nav button.active{color:var(--accent);font-weight:700}@media (width<=390px){.screen{padding-inline:14px}.handle-row{grid-template-columns:1fr 1fr 30px 30px 30px}.icon-button{padding:0}}.update-notice{z-index:20;right:max(1rem, env(safe-area-inset-right));bottom:calc(5rem + env(safe-area-inset-bottom));left:max(1rem, env(safe-area-inset-left));border:1px solid var(--border);background:var(--surface);max-width:448px;box-shadow:var(--shadow);border-radius:.9rem;justify-content:space-between;align-items:center;gap:.75rem;margin:0 auto;padding:.85rem 1rem;display:flex;position:fixed}.update-notice-actions{flex-shrink:0;gap:.45rem;display:flex}.update-notice button{min-height:2.5rem;padding:.45rem .75rem}@media (width<=390px){.update-notice{flex-direction:column;align-items:stretch}}.dialog-backdrop{z-index:20;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#11171473;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog{border:1px solid var(--border);background:var(--surface);border-radius:18px;flex-direction:column;gap:16px;width:min(100%,340px);padding:22px;display:flex;box-shadow:0 18px 48px #11171447}.dialog-message{color:var(--heading);margin:0;line-height:1.6}.photo-preview{flex-direction:column;align-items:flex-start;gap:6px;margin:10px 0 0;display:flex}.photo-preview img{object-fit:cover;border:1px solid var(--border);background:var(--input);border-radius:14px;width:132px;height:132px}.photo-preview figcaption{color:var(--muted);overflow-wrap:anywhere;font-size:.8rem}.section-highlight{outline:2px solid var(--accent);outline-offset:3px;transition:outline-color .3s}.home-data-card .secondary-button{align-self:flex-start}.empty-state{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:26px 12px;display:flex}.empty-state p{margin:0}.empty-state .secondary-button{align-self:center}.security-screen{min-height:100svh;padding:max(24px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));background:var(--background);justify-content:center;align-items:center;display:flex}.security-panel{border:1px solid var(--border);background:var(--surface);width:min(100%,380px);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:12px;padding:24px;display:flex}.security-panel h1,.security-panel p{margin:0}.security-panel form{flex-direction:column;gap:14px;margin-top:8px;display:flex}.security-explanation{color:var(--muted)}.lock-wait{color:var(--danger);background:var(--danger-soft);border-radius:12px;padding:10px 12px}.security-delete{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:22px;padding-top:18px;display:flex}.security-delete p{color:var(--muted)}.privacy-cover{z-index:100;color:var(--heading);background:var(--background);justify-content:center;align-items:center;display:none;position:fixed;inset:0}html[data-covered] .privacy-cover{display:flex}.privacy-cover span{letter-spacing:.08em;font-size:1.35rem;font-weight:700}
