:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #334155;--surface-3: #475569;--text: #e2e8f0;--muted: #94a3b8;--border: #334155;--border-strong: #475569;--accent: #0ea5e9;--accent-hover: #38bdf8;--accent-contrast: #001018;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--danger-contrast: #ffffff;--fs-xs: .72rem;--fs-sm: .82rem;--fs-md: .95rem;--fs-lg: 1.05rem;--fs-xl: 1.3rem;--fs-2xl: 1.55rem;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--radius: 12px;--radius-sm: 8px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 20px rgba(0, 0, 0, .35);--shadow-modal: 0 -8px 30px rgba(0, 0, 0, .5);--ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--z-nav: 40;--z-modal: 50;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer;border:none;border-radius:var(--radius-sm);padding:.6rem .9rem;background:var(--surface-2);color:var(--text);min-height:44px}button:hover{filter:brightness(1.15)}input,select,textarea{font:inherit;padding:.6rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);min-height:44px}:focus-visible{outline:none;box-shadow:var(--ring)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);min-height:44px;padding:.55rem .85rem;font-weight:var(--fw-medium);white-space:nowrap}.btn--primary{background:var(--accent);color:var(--accent-contrast);font-weight:var(--fw-semibold)}.btn--primary:hover{background:var(--accent-hover)}.btn--ghost{background:transparent;border:1px solid var(--border);color:var(--muted)}.btn--danger{background:var(--danger);color:var(--danger-contrast);font-weight:var(--fw-semibold)}.btn--icon{width:44px;min-width:44px;padding:0}.btn--sm{min-height:36px;padding:.35rem .6rem;font-size:var(--fs-sm)}.btn--block{width:100%}.chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--bg);border-radius:var(--radius-pill);padding:.15rem .55rem;font-size:var(--fs-sm)}.chip--removable{padding-right:.2rem}.chip__remove{background:transparent;border:none;color:var(--danger);padding:0 .25rem;min-height:auto;display:inline-flex;align-items:center}.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--fs-xs);padding:.1rem .5rem;border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);white-space:nowrap}.card{background:var(--surface-2);border-radius:var(--radius-sm);padding:var(--sp-3)}.section-header{display:flex;align-items:center;gap:.45rem;margin:0 0 var(--sp-3);font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.section-header .count{color:var(--muted);font-weight:var(--fw-medium);font-size:var(--fs-sm);margin-left:auto}.segmented{display:inline-flex;flex-wrap:wrap;gap:.3rem;background:var(--bg);border-radius:var(--radius-sm);padding:.2rem}.segmented button{background:transparent;border:none;min-height:38px;padding:.35rem .7rem;border-radius:6px;color:var(--muted);font-size:var(--fs-sm)}.segmented button.active{background:var(--accent);color:var(--accent-contrast);font-weight:var(--fw-semibold)}.app-loading{display:grid;place-items:center;height:100vh;color:var(--muted)}.auth-page{display:grid;place-items:center;min-height:100vh;padding:1rem}.auth-card{width:min(420px,100%);background:var(--surface);border-radius:var(--radius);padding:1.5rem}.auth-card h1{text-align:center;margin-top:0}.auth-brand{display:flex;align-items:center;justify-content:center;gap:.5rem}.auth-tabs{display:flex;gap:.4rem;margin-bottom:1rem}.auth-tabs button{flex:1;background:transparent;border:1px solid var(--surface-2)}.auth-tabs button.active{background:var(--accent);color:#001018}.auth-form{display:flex;flex-direction:column;gap:.7rem}.auth-submit{background:var(--accent);color:#001018;font-weight:600}.auth-error{color:var(--danger);margin:0;font-size:.9rem}.auth-hint{color:var(--muted);font-size:.85rem;text-align:center;margin:.8rem 0 0}.foyer-card{width:min(460px,100%)}.foyer-list,.foyer-action{margin-bottom:1.1rem}.foyer-list h2,.foyer-action h2{font-size:.95rem;margin:0 0 .5rem}.foyer-action{display:flex;flex-direction:column;gap:.5rem}.foyer-item{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:.4rem;background:var(--surface-2)}.foyer-item__role{font-size:.75rem;color:var(--muted)}.foyer-logout{width:100%;background:transparent;border:1px solid var(--surface-2);color:var(--muted)}.app-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;padding:.75rem 1rem;background:var(--surface);position:sticky;top:0;z-index:10}.app-header__brand{display:flex;flex-direction:column}.app-header__code{font-size:.75rem;color:var(--muted);letter-spacing:.1em}.app-nav{display:flex;gap:.5rem;flex:1}.app-nav a{color:var(--muted);text-decoration:none;padding:.5rem .8rem;border-radius:8px;display:flex;align-items:center;gap:.35rem}.app-nav a.active{background:var(--surface-2);color:var(--text)}.nav-icon{display:inline-flex;line-height:1}.app-header__brand strong{display:inline-flex;align-items:center;gap:.35rem}.app-header__user{display:flex;align-items:center;gap:.6rem}.alert-banner__text{display:inline-flex;align-items:center;gap:.4rem}.app-header__name{color:var(--muted);font-size:.9rem}.ghost-button{background:transparent;border:1px solid var(--surface-2);color:var(--muted)}.app-main{padding:1rem}.new-task{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.new-task__title{flex:1 1 200px}.new-task__minutes{width:90px}.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;align-items:start}.board-column{background:var(--surface);border-radius:var(--radius);padding:.75rem;min-height:120px;transition:outline .15s}.board-column.is-over{outline:2px dashed var(--accent)}.board-column__title{font-size:.95rem;margin:0 0 .6rem;display:flex;justify-content:space-between}.board-column__count{color:var(--muted)}.board-column__cards{display:flex;flex-direction:column;gap:.6rem}.task-card{background:var(--surface-2);border-left:4px solid var(--accent);border-radius:10px;padding:.55rem .65rem;display:flex;flex-direction:column;gap:.35rem}.task-card__title{font-weight:var(--fw-semibold)}.task-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:var(--fs-xs);color:var(--muted)}.task-card__min{display:inline-flex;align-items:center;gap:.2rem}.task-card__chips{display:flex;flex-wrap:wrap;gap:.3rem}.task-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.task-card__move{min-height:36px;font-size:var(--fs-sm);flex:1 1 auto;min-width:110px}.task-card__delete{margin-left:auto}.calendar-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.7rem}.calendar-add-btn{margin-left:auto}.calendar-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.8rem}.calendar-mode{display:flex;gap:.3rem}.calendar-mode button.active{background:var(--accent);color:#001018}.calendar-hint{color:var(--muted);font-size:.85rem}.calendar-page{background:var(--surface);border-radius:var(--radius);padding:1rem}.calendar-form{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.calendar-fields,.calendar-times{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end}.calendar-fields input,.calendar-fields select{flex:1 1 160px}.calendar-times label{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem;color:var(--muted);flex:1 1 160px}.calendar-add{background:var(--accent);color:#001018;font-weight:600;flex:1 1 120px}.calendar-weekdays{display:flex;flex-wrap:wrap;gap:.3rem}.weekday{background:var(--surface-2);opacity:.5;padding:.4rem .6rem;min-height:40px}.weekday.on{opacity:1;background:var(--accent);color:#001018}.emoji-input{width:64px;text-align:center;flex:0 0 auto}.color-input{width:48px;padding:.2rem;flex:0 0 auto}.color-picker{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.color-swatches{display:flex;flex-wrap:wrap;gap:.35rem}.swatch{width:30px;height:30px;min-height:30px;border-radius:50%;padding:0;border:2px solid transparent}.swatch.on{border-color:var(--text);transform:scale(1.12)}.color-custom{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--muted)}.color-custom input[type=color]{width:36px;height:32px;padding:.15rem}.calendar-filter{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.calendar-filter button.active{background:var(--accent);color:#001018}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;padding:1rem;z-index:var(--z-modal)}.modal{width:min(440px,100%);background:var(--surface);border-radius:var(--radius);padding:1.1rem;display:flex;flex-direction:column;gap:.7rem;box-shadow:var(--shadow-md);max-height:88vh;overflow:auto}.modal h3,.modal-head h3{margin:0;display:flex;align-items:center;gap:.4rem;font-size:var(--fs-lg)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.modal-close{background:transparent;color:var(--muted);width:38px;min-width:38px;min-height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center}.modal-body{display:flex;flex-direction:column;gap:.7rem}@media(max-width:720px){.modal-backdrop{place-items:end center;padding:0}.modal{width:100%;max-width:100%;max-height:90vh;border-radius:var(--radius) var(--radius) 0 0;box-shadow:var(--shadow-modal);padding-bottom:calc(1.1rem + env(safe-area-inset-bottom,0px));animation:sheet-up .22s ease-out}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted);flex:1}.modal-row{display:flex;gap:.6rem}.modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.3rem}.modal-delete{background:var(--danger);color:#fff;margin-left:auto}.hide-mobile{display:inline}@media(max-width:720px){.app-header{gap:.4rem .6rem;padding:.55rem .7rem}.app-header__brand{flex:1;min-width:0}.app-header__brand strong{font-size:.95rem}.app-nav{position:fixed;left:0;right:0;bottom:0;flex:none;gap:0;background:var(--surface);border-top:1px solid var(--surface-2);padding:.2rem .2rem calc(.2rem + env(safe-area-inset-bottom,0px));z-index:40}.app-nav a{flex:1;flex-direction:column;gap:1px;padding:.3rem .15rem;border-radius:10px;min-width:0}.app-nav a.active{background:transparent;color:var(--accent)}.nav-icon{font-size:1.3rem}.nav-label{font-size:.6rem}.app-header__user{margin-left:auto;gap:.35rem}.app-header__name,.hide-mobile{display:none}.app-header__user button,.alert-button{padding:.4rem .5rem;min-height:38px;font-size:.82rem}.app-main{padding:.6rem .6rem 4.5rem}}.mood-suggestion{background:#134e4a;border:1px solid #2dd4bf;border-radius:var(--radius);padding:.9rem 1.1rem;margin-bottom:1rem;line-height:1.5;display:flex;align-items:flex-start;gap:.5rem}.mood-none{color:var(--muted)}.mood-self,.mood-household{background:var(--surface);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.mood-self h2,.mood-household h2{margin-top:0;font-size:1.05rem}.mood-dimension{display:flex;align-items:center;gap:1rem;margin-bottom:.6rem;flex-wrap:wrap}.mood-dimension__label{min-width:110px}.mood-options{display:flex;gap:.5rem}.mood-option{font-size:1.6rem;width:56px;height:56px;background:var(--surface-2);opacity:.55}.mood-option.selected{opacity:1;outline:2px solid var(--accent)}.mood-table{width:100%;border-collapse:collapse}.mood-table th,.mood-table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--surface-2)}.mood-cell{font-size:1.4rem}.alert-button{background:var(--danger);color:#fff;font-weight:600}.alert-banner{display:flex;flex-direction:column;gap:.4rem;padding:.6rem 1rem}.alert-banner__item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;background:#7f1d1d;border:1px solid var(--danger);border-radius:10px;padding:.7rem .9rem}.appreciations-form,.appreciations-feed{background:var(--surface);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.appreciations-form h2,.appreciations-feed h2{margin-top:0;font-size:1.05rem}.appreciations-form form{display:flex;flex-wrap:wrap;gap:.5rem}.appreciations-form input{flex:1 1 220px}.appreciations-feed ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.appreciation-item{background:var(--surface-2);border-radius:10px;padding:.6rem .8rem;display:flex;flex-direction:column;gap:.2rem}.appreciation-item__who{font-size:.78rem;color:var(--muted)}.appreciations-empty{color:var(--muted)}.retro-form,.retro-feed,.topics-form,.topics-list{background:var(--surface);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.retro-form h2,.topics-form h2{margin-top:0}.retro-hint{color:var(--muted);font-size:.9rem}.retro-form form,.topics-form form{display:flex;flex-direction:column;gap:.6rem}.retro-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted)}.retro-sentiment{display:flex;gap:.5rem}.retro-sentiment button.active{background:var(--accent);color:#001018}.retro-pattern{font-style:italic;color:var(--muted);background:var(--bg);padding:.6rem .8rem;border-radius:8px;margin:0}.retro-feed ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.retro-item{background:var(--surface-2);border-radius:10px;padding:.7rem .85rem;display:flex;flex-direction:column;gap:.25rem}.retro-item__who{font-size:.78rem;color:var(--muted)}textarea{font:inherit;padding:.6rem .7rem;border-radius:8px;border:1px solid var(--surface-2);background:var(--surface);color:var(--text);resize:vertical}.topic-card{background:var(--surface-2);border-radius:10px;padding:.8rem;margin-bottom:.7rem}.topic-card header{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.4rem}.topic-card__author{font-size:.78rem;color:var(--muted)}.foyer-row{display:flex;gap:.4rem;margin-bottom:.4rem}.foyer-row .foyer-item{flex:1;margin-bottom:0}.foyer-vision{background:var(--accent);color:#001018;font-weight:600;white-space:nowrap}.vision{min-height:100vh;padding:1rem}.vision-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--surface);border-radius:var(--radius);padding:.8rem 1.1rem;margin-bottom:.8rem}.vision-header{padding:.55rem .9rem}.vision-header strong{font-size:1.15rem}.vision-clock{font-size:1.55rem;font-weight:700;display:flex;flex-direction:column;align-items:center;line-height:1}.vision-date{font-size:.85rem;font-weight:400;color:var(--muted);text-transform:capitalize}.vision-actions{display:flex;gap:.5rem}.vision-filter{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.6rem}.vision-filter button{padding:.3rem .7rem;min-height:34px;font-size:.82rem;background:var(--surface)}.vision-filter button.active{background:var(--accent);color:#001018;font-weight:600}.vision-grid{display:grid;grid-template-columns:2fr 1fr;gap:.8rem;align-items:start}@media(max-width:820px){.vision-grid{grid-template-columns:1fr}}.vision-tasks,.vision-day{background:var(--surface);border-radius:var(--radius);padding:.7rem}.vision-tasks h2,.vision-day h2{margin:0 0 .5rem;font-size:1rem}.vision-quick{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.6rem}.vision-quick input{flex:1 1 150px;min-height:36px}.vision-quick select,.vision-quick button{min-height:36px}.vision-columns{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.4rem}.vision-col{flex:0 0 200px;min-width:200px}@media(max-width:560px){.vision-col{flex-basis:80vw;min-width:80vw}}.vision-col h3{font-size:.9rem;margin:0 0 .4rem;display:flex;justify-content:space-between;color:var(--muted)}.vision-card{background:var(--surface-2);border-radius:9px;padding:.4rem .55rem;margin-bottom:.4rem}.vision-card__title{font-weight:600;font-size:.9rem}.vision-card__meta{font-size:.72rem;color:var(--muted);display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:.4rem;margin:.15rem 0 .35rem}.vision-cat{display:inline-flex;align-items:center;gap:.3rem}.vision-card__who{color:var(--accent)}.vision-card__chips{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.35rem}.vision-chip{display:inline-flex;align-items:center;gap:.2rem;background:var(--bg);border-radius:999px;padding:.1rem .15rem .1rem .5rem;font-size:.74rem}.vision-chip button{background:transparent;border:none;color:var(--danger);padding:0 .25rem;min-height:auto;font-size:.78rem;line-height:1}.vision-card__actions{display:flex;flex-wrap:wrap;gap:.3rem}.vision-card__actions select,.vision-card__actions button{flex:1 1 auto;min-height:30px;padding:.2rem .4rem;font-size:.76rem}.vision-empty{color:var(--muted);font-size:.85rem}.vision-day__head{display:flex;align-items:center;justify-content:space-between}.vision-timeline{list-style:none;padding:0;margin:0}.vision-timeline li{display:flex;align-items:center;gap:.55rem;padding:.5rem 0;border-bottom:1px solid var(--surface-2)}.vision-time{font-variant-numeric:tabular-nums;font-weight:600;width:44px}.vision-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto}.vision-label{flex:1}.vision-who{font-size:.78rem;color:var(--muted)}.vision-tasks h2.mt{margin-top:.75rem}.vision-count{color:var(--muted);font-size:.9rem}.vision-list{display:flex;flex-direction:column;gap:.35rem}.vision-card__top{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.vision-badge{font-size:.68rem;padding:.1rem .45rem;border-radius:999px;background:var(--surface);color:var(--muted);white-space:nowrap}.vision-badge.today{background:var(--accent);color:#001018;font-weight:700}.vision-badge.st-claimed{background:#1d4ed8;color:#fff}.vision-badge.st-planned{background:#7c3aed;color:#fff}.vision-badge.st-in_progress{background:#f59e0b;color:#001018}.vision-card__actions .advance{background:var(--accent);color:#001018;font-weight:600}.vision-done{display:flex;flex-direction:column;gap:.25rem}.vision-done__item{color:#22c55e;font-size:.85rem;opacity:.85}.modal-wide{width:min(960px,100%)}.modal-wide .modal-head{position:sticky;top:0;background:var(--surface);padding-bottom:.4rem}@media(max-width:720px){.modal-wide{width:100%}}.muted-hint{color:var(--muted);font-size:var(--fs-sm);margin:.3rem 0;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.ext-cal-list{list-style:none;margin:.6rem 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.ext-cal-item{display:flex;align-items:center;gap:.6rem;background:var(--surface);border-radius:var(--radius-sm);padding:.6rem .7rem}.ext-cal-item__main{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.ext-cal-item__url{font-size:var(--fs-xs);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ext-cal-item__sync{font-size:var(--fs-xs);color:var(--muted)}.ext-cal-item__err{font-size:var(--fs-xs);color:var(--danger, #ef4444)}.ext-cal-item__actions{display:flex;gap:.3rem;flex-shrink:0}.ext-cal-add{display:flex;flex-direction:column;gap:.4rem;margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--border)}.fc-external{border-style:dashed!important;opacity:.92}
