:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f6fa;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:#f4f6fa;min-width:320px}body{background:#f4f6fa;min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}#root{background:#f4f6fa;min-height:100dvh}@media (display-mode:standalone){html,body,#root{background:#f4f6fa}}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.record-page{gap:14px;display:grid}.record-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:16px;box-shadow:0 4px 16px #1b274a0d}.record-card h2{margin:0 0 14px;font-size:1.15rem}.record-selection-grid{gap:12px;display:grid}.record-selection-grid label,.record-form>label,.date-shortcuts label,.duration-shortcuts label{gap:6px;font-weight:750;display:grid}.record-selection-grid select,.record-item-add-form input,.record-form select,.record-form input,.record-form textarea{width:100%;min-height:48px;color:var(--ink);background:#fff;border:1px solid #b8c1d1;border-radius:10px;padding:10px 12px}.record-item-add{border-top:1px solid var(--line);gap:12px;min-width:0;margin-top:14px;padding-top:14px;display:grid}.record-item-add-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.record-item-add-heading>div{min-width:0}.record-item-add-heading h3,.record-item-add-heading p,.record-item-dialog-heading h3,.record-item-dialog-heading p,.record-item-add-destination{margin:0}.record-item-add-heading h3,.record-item-dialog-heading h3{font-size:1rem}.record-item-add-heading p,.record-item-dialog-heading>p{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;line-height:1.5}.record-item-add-heading button{min-height:44px}.record-item-dialog{box-sizing:border-box;width:100%;min-width:0;max-width:none;height:100dvh;max-height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));color:var(--ink);background:var(--surface);border:0;margin:0;overflow:visible}.record-item-dialog::backdrop{background:#0f172a8f}.record-item-add-form{box-sizing:border-box;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;max-height:100%;display:grid}.record-item-dialog-heading{min-width:0}.record-item-dialog-heading h3{font-size:1.15rem}.record-item-add-destination{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.record-item-add-destination div{background:var(--soft-brand);border-radius:8px;min-width:0;padding:8px}.record-item-add-destination dt{color:var(--muted);font-size:.85rem;font-weight:700}.record-item-add-destination dd{overflow-wrap:anywhere;min-width:0;margin:3px 0 0;font-weight:750}.record-item-dialog-content{overscroll-behavior:contain;align-content:start;gap:12px;min-width:0;max-width:100%;min-height:0;display:grid;overflow-y:auto}.record-item-add-form label{gap:6px;min-width:0;font-weight:750;display:grid}.record-item-add-form input{box-sizing:border-box;min-width:0;max-width:100%}.record-item-add-form .form-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:2px;display:grid}.record-item-add-form .form-actions button{min-width:0;min-height:44px}@media (width>=620px) and (height>=540px){.record-item-dialog{width:min(540px,100% - 32px);max-width:540px;height:auto;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:16px;margin:auto;padding:20px;box-shadow:0 18px 48px #0f172a3d}.record-item-add-form{height:auto;max-height:calc(100dvh - 72px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}@media (width<=420px),(height<=539px){.record-item-add-destination{grid-template-columns:1fr}}.record-form{gap:15px;display:grid}.record-form textarea{resize:vertical;min-height:88px}.record-form select:disabled,.record-selection-grid select:disabled{color:#596579;background:#eef1f6}.selected-path,.fixed-mode{color:var(--muted);overflow-wrap:anywhere;margin:12px 0 0;line-height:1.55}.record-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.record-section-heading h2{margin:0}.record-section-heading>span{color:var(--muted);font-weight:700}.derived-grid,.record-history dl{gap:10px;margin:14px 0 0;display:grid}.derived-grid div,.record-history dl div{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:10px;display:grid}.derived-grid dt,.record-history dt{color:var(--muted)}.derived-grid dd,.record-history dd{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0;margin:0}.record-empty{color:var(--muted);text-align:center;border:1px dashed #c4ccda;border-radius:12px;margin:14px 0 0;padding:20px 14px}.date-shortcuts{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;margin:0;padding:0;display:grid}.date-shortcuts legend{grid-column:1/-1;margin-bottom:6px;font-weight:750}.date-shortcuts button{padding:8px 12px}.date-shortcuts label{grid-column:1/-1;min-width:0}.record-date-field{min-width:0}.record-form .record-date-input{width:100%;min-width:0;max-width:100%;padding-inline:0}.duration-shortcuts{border:0;min-width:0;margin:0;padding:0}.duration-shortcuts legend{margin-bottom:10px;font-weight:750}.duration-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.duration-options button{min-width:0;padding:8px 5px}.date-shortcuts button[aria-pressed=true],.duration-options button[aria-pressed=true]{border-color:var(--brand);color:var(--brand-dark);background:var(--soft-brand);box-shadow:inset 0 0 0 1px var(--brand)}@media (width<=350px){.duration-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.record-history{gap:12px;margin:14px 0 0;padding:0;list-style:none;display:grid}.record-history>li{border:1px solid var(--line);background:#fbfcff;border-radius:13px;padding:14px}.history-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.history-heading span{color:var(--muted)}.delete-confirm{background:#fff1f2;border-radius:10px;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;padding:12px;display:grid}.delete-confirm p{color:var(--danger);grid-column:1/-1;margin:0;font-weight:750}.danger-button{border-color:var(--danger);color:#fff;background:var(--danger)}@media (width>=620px){.record-selection-grid{grid-template-columns:1fr 1fr}}.today-page{gap:14px;display:grid}.today-header{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.today-header button{flex:none;padding:8px 12px}.today-sections{gap:0;display:grid}.today-section{border-top:1px solid var(--line);padding:20px 0}.today-section:first-child{border-top:0;padding-top:0}.today-section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.today-section-heading h2,.today-section-heading span{margin:0}.today-section-heading h2{font-size:1.25rem}.today-section-heading span{color:var(--muted);font-weight:750}.today-section.is-future{color:#344055;background:#f7f8fb;border-radius:16px;padding:18px 12px}.today-empty{color:var(--muted);text-align:center;border:1px dashed #c4ccda;border-radius:12px;margin:0;padding:20px 14px}.review-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.review-card{border:1px solid var(--line);background:var(--surface);border-bottom-width:4px;border-right-width:4px;border-radius:16px;gap:10px;min-width:0;padding:15px;display:grid;box-shadow:0 4px 16px #1b274a0d}.review-card.is-future{box-shadow:none;background:#fbfcfe}.review-hierarchy,.review-item-name,.review-card h3{overflow-wrap:anywhere;margin:0}.review-hierarchy{color:var(--muted);font-size:.82rem;font-weight:700}.review-card h3{font-size:1.1rem}.review-item-name{font-size:1rem;font-weight:750}.review-status-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;display:flex}.review-status-row strong{color:var(--warning)}.review-status-row span{color:var(--muted);font-size:.86rem}.review-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.review-details div{background:#f3f5f9;border-radius:9px;min-width:0;padding:8px}.review-details dt{color:var(--muted);font-size:.75rem}.review-details dd{overflow-wrap:anywhere;margin:3px 0 0;font-weight:750}.review-reasons{flex-wrap:wrap;gap:6px;display:flex}.review-reasons span{color:#334155;background:#e8edf5;border-radius:999px;padding:4px 8px;font-size:.78rem;font-weight:700}.review-card>button{justify-self:stretch}@media (width<=360px){.today-header{flex-direction:column;align-items:stretch}.review-details{grid-template-columns:1fr}}.data-management{z-index:40;width:min(100%,760px);padding:max(18px, env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom));background:#f6f8fc;margin:0 auto;position:fixed;inset:0;overflow-y:auto}.data-management__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.data-management__header h1,.data-management__header p{margin:0}.data-management__header button{flex:none;padding:8px 12px}.data-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;margin-bottom:16px;padding:18px;box-shadow:0 4px 18px #1720330f}.data-card--danger{border-color:#e9b9bd}.data-card h2{margin:0 0 8px;font-size:1.2rem}.data-card p{overflow-wrap:anywhere;color:var(--muted);line-height:1.55}.data-card label{margin:18px 0 7px;font-weight:750;display:block}.data-card input[type=file]{background:#fff;border:1px solid #b8c1d1;border-radius:10px;width:100%;min-height:48px;padding:9px;overflow:hidden}.selected-file{overflow-wrap:anywhere}.restore-preview{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.restore-preview h3{margin:0 0 10px}.restore-preview dl{gap:6px;display:grid}.restore-preview dl div{justify-content:space-between;gap:12px;display:flex}.restore-preview dt,.restore-preview dd{margin:0}.restore-preview dd{font-weight:800}.restore-warning{background:#fee2e2;border-radius:10px;padding:11px;font-weight:700;color:var(--danger)!important}.data-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.danger-button{border-color:var(--danger);color:#fff;background:var(--danger);padding:9px 12px}@media (prefers-reduced-motion:reduce){.data-management *{scroll-behavior:auto}}.analysis-page,.analysis-page *{min-width:0}.analysis-header{padding-right:74px}.analysis-period-picker{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;max-width:100%;margin:0 0 16px;padding:0;display:grid}.analysis-period-picker legend{color:var(--muted);grid-column:1/-1;margin-bottom:2px;font-size:.85rem;font-weight:750}.analysis-period-picker button{width:100%;min-height:46px;padding:8px 6px}.analysis-period-picker button[aria-pressed=true]{border-color:var(--brand);color:var(--brand-dark);background:var(--soft-brand);box-shadow:inset 0 0 0 1px var(--brand)}.analysis-content{gap:14px;display:grid}.analysis-section,.analysis-error{border:1px solid var(--line);background:var(--surface);border-radius:16px;width:100%;max-width:100%;padding:16px;box-shadow:0 4px 16px #1b274a0d}.analysis-error h2,.analysis-empty h2{margin:0 0 8px;font-size:1.1rem}.analysis-error .error-message{margin:0 0 12px}.analysis-error button,.analysis-show-all{width:100%;padding:8px 12px}.analysis-section-heading{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.analysis-section-heading h2,.analysis-section-heading span{margin:0}.analysis-section-heading h2{font-size:1.15rem}.analysis-section-heading span{color:var(--muted);text-align:right;font-size:.78rem}.analysis-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.analysis-summary-grid div{background:#f8f9fc;border:1px solid #e4e8f0;border-radius:12px;padding:11px}.analysis-summary-grid dt{color:var(--muted);font-size:.78rem;font-weight:700}.analysis-summary-grid dd{overflow-wrap:anywhere;margin:5px 0 0;font-size:1.08rem;font-weight:800}.analysis-bars,.analysis-subject-list{gap:11px;margin:0;padding:0;list-style:none;display:grid}.analysis-daily-list li{grid-template-columns:minmax(76px,auto) minmax(0,1fr);align-items:center;gap:10px;display:grid}.analysis-daily-list time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}.analysis-bar-details{gap:4px;display:grid}.analysis-bar-details>span,.analysis-subject-values,.analysis-range-note{color:var(--muted);font-size:.78rem}.analysis-bar-track{background:#e7ebf3;border-radius:999px;width:100%;max-width:100%;min-height:10px}.analysis-bar-fill{background:var(--brand);border-radius:999px;width:0;max-width:100%;min-height:10px;display:block}.analysis-range-note{margin:0 0 12px;line-height:1.5}.analysis-show-all{margin-top:14px}.analysis-subject-list li{border-bottom:1px solid #edf0f5;gap:7px;padding-bottom:11px;display:grid}.analysis-subject-list li:last-child{border-bottom:0;padding-bottom:0}.analysis-subject-heading{grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.analysis-subject-heading strong{overflow-wrap:anywhere}.analysis-subject-heading>span:last-child{color:var(--muted);font-size:.82rem;font-weight:750}.analysis-subject-color{border-radius:50%;width:12px;height:12px}.analysis-subject-values{flex-wrap:wrap;gap:6px 12px;padding-left:20px;display:flex}@media (width>=620px){.analysis-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}:root{--ink:#172033;--muted:#647089;--line:#dce2ec;--surface:#fff;--brand:#3157d5;--brand-dark:#2343ad;--soft-brand:#e9edff;--danger:#a12b35;--warning:#8a5400}.app-shell{min-height:100vh}.app-main{width:min(100%,760px);min-height:100vh;padding:20px 16px calc(104px + env(safe-area-inset-bottom));margin:0 auto}.app-tools{z-index:25;top:max(10px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));position:fixed}.app-tools button{background:#fffffff0;border-color:#b8c1d1;min-width:74px;padding:7px 11px;box-shadow:0 3px 12px #1720331a}.page-header,.placeholder{padding:12px 2px 20px}.page-header h1,.placeholder h1{letter-spacing:-.04em;margin:2px 0 8px;font-size:clamp(1.75rem,8vw,2.35rem)}.page-header p,.placeholder p{color:var(--muted);margin:0;line-height:1.6}.eyebrow{letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:800;color:var(--brand)!important}.placeholder{text-align:center;margin-top:18vh}.bottom-nav{z-index:20;padding:8px max(10px, env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-right));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;grid-template-columns:repeat(4,1fr);gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 26px #1e2a4b14}.bottom-nav button{min-height:52px;color:var(--muted);background:0 0;border:0;border-radius:12px;padding:6px;font-size:.78rem;font-weight:700}.bottom-nav button.is-active{color:var(--brand-dark);background:var(--soft-brand)}.nav-mark{opacity:.35;background:currentColor;border-radius:999px;width:22px;height:4px;margin:0 auto 6px;display:block}.is-active .nav-mark{opacity:1}.breadcrumbs{min-height:44px;color:var(--muted);white-space:nowrap;align-items:center;gap:6px;margin-bottom:14px;font-size:.88rem;display:flex;overflow-x:auto}.breadcrumbs button{min-height:40px;color:var(--brand-dark);background:0 0;border:0;padding:4px 8px;font-weight:700}.list-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.list-toolbar h2,.list-toolbar p{margin:0}.list-toolbar h2{font-size:1.2rem}.list-toolbar p{color:var(--muted);margin-top:3px;font-size:.85rem}button{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--surface);border-radius:10px;font-weight:700}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #3157d547}.primary-button{border-color:var(--brand);color:#fff;background:var(--brand);padding:9px 14px}.primary-button:hover:not(:disabled){background:var(--brand-dark)}.primary-button:disabled{background:#aab3c5;border-color:#aab3c5}.archive-toggle{min-height:44px;color:var(--muted);align-items:center;gap:9px;margin-bottom:10px;font-size:.9rem;font-weight:650;display:inline-flex}.archive-toggle input{width:20px;height:20px}.entity-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.entity-list li{border:1px solid var(--line);background:var(--surface);border-radius:16px;gap:13px;padding:15px;display:grid;box-shadow:0 4px 16px #1b274a0d}.entity-list li.is-archived{opacity:.78;background:#f1f3f7;border-style:dashed}.entity-summary{align-items:flex-start;gap:11px;min-width:0;display:flex}.entity-summary>div{min-width:0}.entity-summary strong{overflow-wrap:anywhere}.entity-summary small{color:var(--muted);margin-top:5px;line-height:1.5;display:block}.subject-color{border-radius:999px;flex:none;width:14px;height:36px}.archive-badge{color:#4c566a;background:#dce1e9;border-radius:999px;margin-left:8px;padding:2px 7px;font-size:.72rem;font-weight:800;display:inline-block}.entity-actions{flex-wrap:wrap;gap:8px;display:flex}.entity-actions button{flex:84px;padding:7px 10px}.empty-state,.loading{color:var(--muted);text-align:center;background:#ffffff8c;border:1px dashed #c4ccda;border-radius:16px;padding:30px 18px}.empty-state p{margin-bottom:0}.notice,.error-message,.inline-warning{border-radius:10px;padding:11px 13px;line-height:1.5}.notice{color:#14532d;background:#dcfce7}.error-message{color:var(--danger);background:#fee2e2}.inline-warning{color:var(--warning);background:#fef3c7}.entity-form{z-index:30;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));width:min(100% - 24px,520px);max-height:calc(100vh - 110px - env(safe-area-inset-bottom));border:1px solid var(--line);background:var(--surface);border-radius:18px;margin:auto;padding:18px;position:fixed;left:12px;overflow-y:auto;box-shadow:0 18px 60px #1720333d}.entity-form h2{margin:0 0 16px;font-size:1.25rem}.entity-form>label,.color-picker legend{margin-bottom:7px;font-weight:750;display:block}.entity-form input[type=text],.entity-form>input,.entity-form select{width:100%;min-height:48px;color:var(--ink);background:#fff;border:1px solid #b8c1d1;border-radius:10px;margin:0 0 16px;padding:10px 12px}.color-picker{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 0 16px;padding:0;display:grid}.color-picker legend{grid-column:1/-1}.color-picker label{border:1px solid var(--line);border-radius:10px;align-items:center;gap:7px;min-height:44px;padding:7px;font-size:.84rem;display:flex}.color-picker label.is-selected{border-color:var(--brand);background:var(--soft-brand)}.color-picker label span{border-radius:50%;width:16px;height:16px}.form-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width>=620px){.app-main{padding-top:32px}.entity-list li{grid-template-columns:minmax(0,1fr) auto;align-items:center}.entity-actions button{flex:none}.color-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}
