:root{--color-primary: #268c5e;--color-primary-dark: #196b47;--color-primary-light: #34a873;--color-primary-tint: #e7f5ec;--color-accent: #ff7a59;--color-accent-dark: #e35f3d;--color-accent-tint: #ffede7;--color-bg: #fbf8f2;--color-surface: #ffffff;--color-surface-sunken: #f4efe4;--color-text: #241f18;--color-text-secondary: #5c554a;--color-text-muted: #948c7e;--color-on-primary: #ffffff;--color-border: #ece4d6;--color-border-strong: #ddd2bd;--color-danger: #d63b3b;--color-danger-dark: #a92a2a;--color-danger-tint: #fdecec;--color-warning: #b7791f;--color-warning-tint: #fdf3df;--color-info: #268c5e;--color-info-tint: #e7f5ec;--shadow-xs: 0 1px 2px rgba(90, 62, 30, .06);--shadow-sm: 0 2px 8px rgba(90, 62, 30, .08);--shadow-md: 0 8px 22px rgba(90, 62, 30, .1);--shadow-lg: 0 18px 44px rgba(90, 62, 30, .16);--shadow-focus: 0 0 0 3px rgba(38, 140, 94, .28);--shadow-focus-danger: 0 0 0 3px rgba(214, 59, 59, .25);--radius-sm: .65rem;--radius: 1.25rem;--radius-lg: 1.75rem;--radius-full: 999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 2.5rem;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Fraunces", ui-serif, Georgia, serif;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}html{overflow-x:hidden}body{margin:0;font-family:var(--font-sans);font-size:15px;line-height:1.55;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--color-primary)}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;color:var(--color-text);letter-spacing:-.01em;line-height:1.2}.blob-decoration{position:relative;isolation:isolate}.blob-decoration:before{content:"";position:absolute;top:-30%;right:-20%;width:60%;aspect-ratio:1;z-index:-1;background:radial-gradient(circle at 30% 30%,var(--color-primary-tint),transparent 70%),radial-gradient(circle at 70% 70%,var(--color-accent-tint),transparent 65%);filter:blur(2px);pointer-events:none}::selection{background:var(--color-primary-tint);color:var(--color-primary-dark)}:focus-visible{outline:none}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-content{flex:1;padding:var(--space-5) var(--space-4) calc(5.75rem + env(safe-area-inset-bottom));max-width:640px;margin:0 auto;width:100%}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:space-around;background:#ffffffdb;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.6);padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));margin:0 var(--space-3) calc(var(--space-3) + env(safe-area-inset-bottom));border-radius:var(--radius-lg)}.bottom-nav__item{position:relative;flex:1;text-align:center;padding:var(--space-2) var(--space-1);margin:0 var(--space-1);font-size:.76rem;font-weight:600;color:var(--color-text-muted);text-decoration:none;border-radius:var(--radius-sm);transition:color .18s var(--ease-out),background-color .18s var(--ease-out)}.bottom-nav__item:active{transform:scale(.95)}.bottom-nav__item--active{color:var(--color-primary-dark);background:var(--color-primary-tint)}.admin-content{padding:var(--space-6) var(--space-4) calc(5.75rem + env(safe-area-inset-bottom));max-width:1120px;margin:0 auto;width:100%;animation:fade-in .25s var(--ease-out)}.admin-back-link{display:inline-block;margin-bottom:var(--space-4);font-size:.85rem;font-weight:600;color:var(--color-text-secondary);text-decoration:none}.admin-back-link:hover{color:var(--color-text)}@media (max-width: 640px){.admin-table{display:block;overflow-x:auto}.section-header{flex-direction:column;align-items:stretch}.section-header .btn,.section-header a.btn{width:100%;text-align:center}}.section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.section-header h1,.section-header h2{margin:0}.status-tabs{display:flex;gap:var(--space-2);margin:var(--space-3) 0 var(--space-5);flex-wrap:wrap}.status-tabs__item{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-full);cursor:pointer;font-size:.85rem;font-weight:500;color:var(--color-text-secondary);transition:all .15s var(--ease-out)}.status-tabs__item:hover{border-color:var(--color-border-strong);color:var(--color-text)}.status-tabs__item--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);font-weight:600;box-shadow:var(--shadow-sm)}.seg-tabs{display:flex;gap:var(--space-1);background:var(--color-surface-sunken);border-radius:var(--radius-sm);padding:var(--space-1);margin:var(--space-4) 0}.seg-tabs__item{flex:1;text-align:center;padding:var(--space-2) var(--space-2);border:none;background:transparent;border-radius:calc(var(--radius-sm) - 4px);font-size:.85rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:background-color .15s var(--ease-out),color .15s var(--ease-out),box-shadow .15s var(--ease-out)}.seg-tabs__item--active{background:var(--color-surface);color:var(--color-primary-dark);box-shadow:var(--shadow-xs)}.admin-table{width:100%;border-collapse:separate;border-spacing:0;margin:var(--space-2) 0 var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-xs)}.admin-table th,.admin-table td{text-align:left;padding:var(--space-3) var(--space-4);vertical-align:top}.admin-table th{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-surface-sunken);border-bottom:1px solid var(--color-border)}.admin-table td{border-bottom:1px solid var(--color-border);color:var(--color-text)}.admin-table tr:last-child td{border-bottom:none}.admin-table tbody tr{transition:background-color .12s var(--ease-out)}.admin-table tbody tr:hover td{background:var(--color-surface-sunken)}.admin-table .row--inactive{opacity:.5}.admin-table__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.inline-form{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin:var(--space-3) 0}.inline-form input{flex:1 1 160px;min-width:0}.card-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4);margin:var(--space-3) 0;list-style:none;padding:0}.app-content .card-list{grid-template-columns:1fr}.admin-content .card-list{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.card{display:flex;flex-direction:column;gap:var(--space-2);text-align:left;font:inherit;width:100%;border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);text-decoration:none;color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-xs);cursor:pointer;transition:box-shadow .2s var(--ease-out),transform .2s var(--ease-out),border-color .2s var(--ease-out);animation:fade-in-up .3s var(--ease-out) backwards}.card-list .card:nth-child(2){animation-delay:.03s}.card-list .card:nth-child(3){animation-delay:.06s}.card-list .card:nth-child(4){animation-delay:.09s}.card-list .card:nth-child(n+5){animation-delay:.12s}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--color-border-strong)}.card:active{transform:translateY(0);box-shadow:var(--shadow-xs)}.card:disabled{opacity:.5;cursor:default;transform:none}.card:disabled:hover{box-shadow:var(--shadow-xs);border-color:var(--color-border)}.card--ignored{opacity:.5}.card--responded{background:var(--color-primary-tint)}.card__title{font-family:var(--font-display);font-size:1.05rem;font-weight:700;margin:0;color:var(--color-text)}.card__meta{color:var(--color-text-muted);font-size:.78rem;font-weight:600;letter-spacing:.01em;margin:0}.card__description{margin:0;color:var(--color-text-secondary);white-space:pre-wrap}.card__facts{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);margin:0;font-size:.88rem}.screen>.card__facts{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-xs)}.card__facts dt{font-weight:600;color:var(--color-text-muted)}.card__facts dd{margin:0;color:var(--color-text)}.card__actions{display:flex;gap:var(--space-2);flex-wrap:nowrap;margin-top:var(--space-1)}.card__actions .btn{flex:1 1 0;min-width:0;padding:.65rem .5rem;font-size:.85rem;white-space:normal;overflow:visible;text-overflow:clip;text-align:center;line-height:1.15}.card--good-deed{flex-direction:row;align-items:flex-start;gap:var(--space-4)}.deed-date{flex:0 0 56px;width:56px;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.deed-date__square{width:56px;height:56px;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.deed-date--empty .deed-date__square{background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:1.4rem}.deed-date__day{font-family:var(--font-display);font-size:1.3rem;font-weight:700}.deed-date__month{font-size:.7rem;text-transform:lowercase;opacity:.9}.deed-date__time{display:inline-block;width:100%;text-align:center;border-radius:var(--radius-full);padding:.15rem 0;font-size:.72rem;font-weight:700;background:var(--color-primary-tint);color:var(--color-primary-dark)}.deed-date__ics{width:56px;height:32px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-secondary);transition:border-color .15s var(--ease-out),background-color .15s var(--ease-out)}.deed-date__ics:hover{border-color:var(--color-border-strong);background:var(--color-surface-sunken)}.deed-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.deed-body__head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.deed-footer-link{display:block;text-align:center;text-decoration:none}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);margin:var(--space-3) 0;font-size:.9rem;border-left:3px solid transparent;animation:fade-in-up .2s var(--ease-out)}.banner--error{background:var(--color-danger-tint);color:var(--color-danger-dark);border-left-color:var(--color-danger)}.banner--warning{background:var(--color-warning-tint);color:var(--color-warning);border-left-color:var(--color-warning);font-weight:600}.banner--info{background:var(--color-info-tint);color:var(--color-primary-dark);border-left-color:var(--color-info)}.form-fields{display:flex;flex-direction:column;gap:var(--space-4);max-width:640px}.form-fields .field{display:flex;flex-direction:column;gap:var(--space-1)}.form-fields fieldset{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)}.form-fields legend{font-weight:600;font-size:.9rem;padding:0 var(--space-1);color:var(--color-text)}.checkbox-item{display:block;font-weight:400}.switch{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer}.switch input{position:absolute;opacity:0;width:0;height:0}.switch__track{position:relative;width:2.75rem;height:1.5rem;flex-shrink:0;border-radius:var(--radius-full);background:var(--color-border-strong);transition:background .15s ease}.switch__thumb{position:absolute;top:.15rem;left:.15rem;width:1.2rem;height:1.2rem;border-radius:50%;background:#fff;transition:transform .15s ease}.switch input:checked+.switch__track{background:var(--color-primary)}.switch input:checked+.switch__track .switch__thumb{transform:translate(1.25rem)}.switch__label{font-weight:500}.form-actions{display:flex;gap:var(--space-2);margin:var(--space-4) 0}.lifecycle-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-3) 0}.dialog{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);margin:var(--space-3) 0;max-width:640px;background:var(--color-surface);box-shadow:var(--shadow-sm);animation:pop-in .18s var(--ease-out)}.dialog textarea{width:100%;font-family:inherit}.chip-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.status-badge{display:inline-block;width:fit-content;border-radius:var(--radius-full);padding:.2rem .65rem;font-size:.75rem;font-weight:700}.status-badge--info{background:var(--color-info-tint);color:var(--color-primary-dark)}.status-badge--accent{background:var(--color-accent-tint);color:var(--color-accent-dark)}.status-badge--success{background:var(--color-primary);color:var(--color-on-primary)}.status-badge--muted{background:var(--color-surface-sunken);color:var(--color-text-muted)}.chip{background:var(--color-primary-tint);color:var(--color-primary-dark);border-radius:var(--radius-full);padding:.28rem .75rem;font-size:.78rem;font-weight:600;transition:background-color .15s var(--ease-out)}.screen{display:flex;flex-direction:column;gap:var(--space-4);animation:fade-in-up .28s var(--ease-out)}#root>.screen{padding:var(--space-6) var(--space-4);max-width:480px;margin:0 auto;min-height:100%;justify-content:center;position:relative;isolation:isolate}#root>.screen:before{content:"";position:fixed;top:-12%;right:-12%;width:min(55%,26rem);aspect-ratio:1;z-index:-1;background:radial-gradient(circle at 30% 30%,var(--color-primary-tint),transparent 70%),radial-gradient(circle at 70% 70%,var(--color-accent-tint),transparent 65%);pointer-events:none}.screen h1{font-size:1.9rem;font-weight:600;margin:0}.screen h2{font-family:var(--font-sans);font-size:1rem;font-weight:700;margin:var(--space-2) 0 0;color:var(--color-text)}.empty-state{color:var(--color-text-secondary);background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius);padding:var(--space-5) var(--space-4);text-align:center}.form{display:flex;flex-direction:column;gap:var(--space-3)}.form__label{font-weight:600;font-size:.88rem;color:var(--color-text)}:where(input[type=text],input[type=email],input[type=number],input[type=datetime-local],input[type=search],select,textarea){font-family:inherit;font-size:1rem;padding:var(--space-2) var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color .15s var(--ease-out),box-shadow .15s var(--ease-out)}:where(input[type=text],input[type=email],input[type=number],input[type=datetime-local],input[type=search],select,textarea):focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.form__input{padding:var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:1rem;font-family:inherit;width:100%;transition:border-color .15s var(--ease-out),box-shadow .15s var(--ease-out)}.form__input::placeholder{color:var(--color-text-muted)}.form__input:hover{border-color:var(--color-border-strong)}.form__input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.form__warning{background:var(--color-warning-tint);color:var(--color-warning);border-radius:var(--radius-sm);border-left:3px solid var(--color-warning);padding:var(--space-3);font-size:.9rem;margin:0}.form__error{color:var(--color-danger);font-size:.88rem;font-weight:500;margin:0}.form__success{color:var(--color-primary-dark);font-size:.88rem;font-weight:500;margin:0}.form__hint{color:var(--color-text-muted);font-size:.82rem}.btn{padding:.75rem 1.25rem;border-radius:var(--radius-sm);border:1.5px solid transparent;background:var(--color-surface);font-size:.94rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background-color .15s var(--ease-out),border-color .15s var(--ease-out),box-shadow .15s var(--ease-out),transform .1s var(--ease-out)}.btn:active:not(:disabled){transform:scale(.96);transition-timing-function:var(--ease-spring)}.btn:focus-visible{box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.5;cursor:default}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-sm)}.btn--primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark);box-shadow:var(--shadow-md)}.btn--secondary{border-color:var(--color-border);color:var(--color-text)}.btn--secondary:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-sunken)}.btn--danger{border-color:var(--color-danger);color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger-tint)}.btn--danger:focus-visible{box-shadow:var(--shadow-focus-danger)}.btn--sm{padding:.4rem .75rem;font-size:.82rem}.checkbox-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.checkbox-list__item{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);border-radius:var(--radius-sm);transition:background-color .15s var(--ease-out)}.checkbox-list__item:hover{background:var(--color-surface-sunken)}.checkbox-list__item:last-child{border-bottom:none}.confirm-dialog{border:1px solid var(--color-danger);border-radius:var(--radius);background:var(--color-danger-tint);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);color:var(--color-danger-dark);animation:pop-in .18s var(--ease-out)}.profile-hero{display:flex;align-items:center;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);box-shadow:var(--shadow-xs)}.profile-hero__avatar{flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1rem}.profile-hero__id{flex:1;min-width:0}.profile-hero__name{font-family:var(--font-display);font-weight:700;margin:0}.profile-hero__mail{margin:.15rem 0 0;color:var(--color-text-muted);font-size:.82rem}.profile-hero__edit{flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background-color .15s var(--ease-out),border-color .15s var(--ease-out)}.profile-hero__edit:hover{background:var(--color-surface-sunken);border-color:var(--color-border-strong)}.profile-group__label{margin:var(--space-4) 0 -.4rem var(--space-1);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted)}.profile-group{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-xs);overflow:hidden}.profile-field,.profile-row,.profile-toggle-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.profile-group>.profile-field:last-child,.profile-group>.profile-row:last-child,.profile-group>.profile-toggle-row:last-child,.profile-group>details.profile-accordion:last-child{border-bottom:none}.profile-field__k{color:var(--color-text-muted)}.profile-field__v{margin-left:auto;text-align:right;font-weight:500}.profile-row{width:100%;border:none;border-radius:0;background:none;font:inherit;text-align:left;color:var(--color-text);cursor:pointer;transition:background-color .15s var(--ease-out)}.profile-row:hover:not(:disabled){background:var(--color-surface-sunken)}.profile-row:disabled{opacity:.5;cursor:default}.profile-row:after{content:"›";margin-left:auto;color:var(--color-text-muted)}.profile-row--danger{color:var(--color-danger)}.profile-toggle-row{cursor:pointer}.profile-toggle-row span:first-child{flex:1}.profile-toggle-row input{position:absolute;opacity:0;width:0;height:0}.profile-accordion{border-bottom:1px solid var(--color-border)}.profile-accordion summary{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-weight:600;cursor:pointer;list-style:none}.profile-accordion summary::-webkit-details-marker{display:none}.profile-accordion summary:after{content:"⌄";margin-left:auto;color:var(--color-text-muted);transition:transform .15s var(--ease-out)}.profile-accordion[open] summary:after{transform:rotate(180deg)}.profile-accordion .card-list,.profile-accordion .empty-state{margin:0 var(--space-4) var(--space-3)}.sg-page{max-width:960px;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-7)}.sg-header p{color:var(--color-text-secondary);max-width:60ch}.sg-header code{background:var(--color-surface-sunken);padding:.1rem .4rem;border-radius:var(--radius-sm);font-size:.85em}.sg-section{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.sg-section__title{font-family:var(--font-sans);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 var(--space-4)}.sg-row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.sg-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-4)}.sg-swatch__color{height:4rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.sg-swatch__label{font-weight:600;font-size:.85rem;margin-top:var(--space-2)}.sg-swatch__var{font-size:.75rem;color:var(--color-text-muted);font-family:ui-monospace,monospace}.sg-nav-preview{max-width:420px}.sg-admin-preview{display:flex;gap:var(--space-4);background:var(--color-bg);padding:var(--space-4);border-radius:var(--radius);border:1px solid var(--color-border);overflow-x:auto;max-width:100%}.sg-admin-preview>div{min-width:360px}
