:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:#302b48;background:#f5f1fb;font-synthesis:none;--purple:#7151b8;--line:#e4ddee;--sub:#686078;--panel:#fff}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;min-height:46px;border:1px solid var(--line);background:#fff;color:#302b48;border-radius:12px;padding:10px 14px}button:hover{filter:brightness(.97)}button:disabled{opacity:.5;cursor:default}button.primary,button[aria-pressed=true]{background:var(--purple);border-color:var(--purple);color:#fff}button.quiet{background:transparent}button.small{font-size:13px;padding:8px 10px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3170b1;outline-offset:3px}h1{font-size:27px;font-weight:600;letter-spacing:-.8px;margin:0 0 6px}h2{font-size:20px;font-weight:600;margin:0 0 17px}h3{font-size:16px;font-weight:600;margin:12px 0}p{margin:8px 0}.sub{color:var(--sub);font-size:13px}.shell{max-width:1400px;margin:auto;padding:28px}.header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.header-actions,.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar{margin:18px 0}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:18px 0}.days button{padding:10px 4px}.days small{display:block;font-size:12px;margin-top:4px}.family-grid{display:grid;grid-template-columns:.9fr 1.65fr .85fr;gap:16px;align-items:start}.panel{padding:20px;background:var(--panel);border-radius:20px;min-width:0}.calendar-panel{background:#e9f3fe}.rules-panel{background:#fff2d9}.task{border-radius:13px;background:#f5f1fb;padding:14px 12px;display:flex;align-items:center;gap:10px;margin:10px 0}.task-body{flex:1;min-width:0;overflow-wrap:anywhere}.task-body small{display:block;font-size:12px;margin-top:5px}.avatar{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;border:3px solid var(--profile-color,#7151b8);background:#fff;color:#302b48;border-radius:50%;font-weight:600}.task.pending{background:#dcf4d9;color:#234a29}.task.confirmed,.task.completed{background:#24633d;color:white}.task.overdue{background:#fde5e5;color:#892c36}.task .status{font-size:12px;max-width:115px;text-align:right}.task .note{margin-top:8px;font-size:13px}.empty{padding:16px 0;color:var(--sub);font-size:14px;line-height:1.6}.status-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--sub);margin-top:16px}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.legend-dot.open{background:#a394ba}.legend-dot.pending{background:#a8d49d}.legend-dot.confirmed{background:#24633d}.legend-dot.overdue{background:#e3949c}.carry{margin-top:20px}summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}.parent-nav{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.plan-grid{display:grid;grid-template-columns:.8fr 1.1fr 1.4fr;gap:16px;align-items:start}.catalog{display:grid;gap:8px}.catalog button{text-align:left;background:#f5f1fb;border:0}.catalog button small{display:block;font-size:12px;color:var(--sub);margin-top:5px}label{display:block;margin-bottom:14px;font-size:14px}input:not([type=checkbox]),select,textarea{display:block;width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;padding:11px;background:white;color:#302b48;font-size:16px;min-height:46px;margin-top:6px}input[type=color]{padding:5px;max-width:120px}textarea{min-height:85px;resize:vertical}.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:flex;align-items:center;gap:10px;min-height:44px}.check input{width:22px;height:22px;accent-color:var(--purple);flex-shrink:0}.notice{padding:14px;border-radius:12px;background:#fff2d9;line-height:1.5;font-size:14px}.approve-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start}.approve-label{display:flex;align-items:center;gap:10px;margin:0;flex:1;min-height:44px}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.profile-title{display:flex;gap:10px;align-items:center}.audit-entry{padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.audit-entry summary{font-weight:400;font-size:13px;color:var(--sub)}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;padding:12px;background:#f5f1fb;border-radius:10px}.overlay{position:fixed;inset:0;background:#241e3b80;display:flex;align-items:center;justify-content:center;padding:18px;z-index:100}.overlay[hidden],[hidden]{display:none!important}.modal{max-width:470px;width:100%;background:white;padding:24px;border-radius:22px;max-height:90dvh;overflow-y:auto}.modal form button.primary{width:100%;margin:12px 0}.modal .error,.error{color:#9b273b;line-height:1.5}.pin-input{letter-spacing:4px}.setup{max-width:650px;margin:40px auto;padding:24px}.setup .panel{margin-top:20px}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#302b48;color:#fff;padding:14px 20px;border-radius:12px;z-index:120;width:max-content;max-width:calc(100% - 32px);box-shadow:0 8px 25px #302b4830}.loading{padding:30px}.offline{margin:14px 0}.muted-action{margin-top:14px}.read-only{margin:20px 0}.footer{margin-top:22px;color:var(--sub);font-size:12px}.actions-stack{display:grid;gap:8px}.audit-filter{max-width:220px}
@media(max-width:1000px){.family-grid{grid-template-columns:1fr 1.5fr}.rules-panel{grid-column:1/-1}.plan-grid{grid-template-columns:1fr 1.4fr}.plan-list{grid-column:1/-1}.profile-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.shell{padding:18px 12px}.header{align-items:flex-start}h1{font-size:23px}.header-actions{width:100%}.header-actions button{flex:1}.family-grid,.plan-grid,.approve-grid,.profile-grid{grid-template-columns:1fr}.rules-panel,.plan-list{grid-column:auto}.days{gap:3px}.days button{font-size:12px}.panel{padding:16px;border-radius:16px}.task{padding:12px 9px}.task .status{max-width:95px}.setup{margin:15px auto;padding:14px}.setup-grid{grid-template-columns:1fr}.parent-nav button{flex:1}.toolbar button{flex:1}.pair{grid-template-columns:1fr 1fr}.catalog{grid-template-columns:1fr 1fr}.catalog button{font-size:13px}.modal{padding:20px}.footer{line-height:1.5}}@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s ease,filter .15s ease}}
/* Profile images and explicitly simulated calendar/rules. */
.avatar{width:48px;height:48px;overflow:hidden;border-width:3px;background:#fff}.avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.family-members{display:flex;gap:22px;flex-wrap:wrap;margin:22px 0 12px}.family-member{display:flex;align-items:center;gap:9px;font-size:14px}.family-member .avatar{width:48px;height:48px}.profile-title .avatar{width:72px;height:72px}.photo-preview{text-align:center;margin:18px auto}.photo-preview img{width:128px;height:128px;object-fit:cover;border-radius:50%;border:4px solid #e4ddee}.photo-preview .avatar{display:inline-flex;width:128px;height:128px}.photo-preview .avatar img{width:100%;height:100%;border:0}.calendar-event{border-left:3px solid #7b70b7;padding:0 0 0 12px;margin:20px 0}.calendar-event h3{margin:5px 0;font-size:16px}.event-time{font-size:13px;color:#4b4563}.source-label{display:inline-block;background:#fff;border-radius:7px;padding:5px 8px;font-size:11px;color:#54466b;overflow-wrap:anywhere}.demo-label{display:inline-block;background:#fff9e9;border-radius:6px;padding:4px 7px;color:#655126}.consequence-card{background:#fff;padding:14px;border-radius:14px;margin:13px 0;overflow-wrap:anywhere}.consequence-card .profile-title .avatar{width:42px;height:42px}.consequence-card h3{line-height:1.4}.next-phase{border-top:1px solid #e4ddee;margin-top:12px;padding-top:8px}.source-editor{padding:16px 0;border-bottom:1px solid #e4ddee;margin-bottom:18px}.agenda-day{border-bottom:1px solid #e4ddee;padding:10px 0}.rules-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;align-items:start;margin-top:18px}.rules-grid .consequence-card{background:#fff2d9}.stage-editor{background:#f5f1fb;padding:13px;border-radius:12px;margin:12px 0}.phase-grid{display:grid;grid-template-columns:1fr 95px;gap:10px}#rule-form{margin-top:18px}#rule-form>.primary{margin-top:12px}.read-only{margin-top:18px}
@media(max-width:650px){.family-members{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 10px}.family-member{flex-direction:column;gap:5px;font-size:12px}.family-member .avatar{width:52px;height:52px}.rules-grid{grid-template-columns:1fr}.avatar{width:44px;height:44px}.phase-grid{grid-template-columns:1fr 85px}.profile-title .avatar{width:64px;height:64px}}@media(max-width:370px){.phase-grid{grid-template-columns:1fr}}
