.app-shell{display:flex;flex-direction:column;height:100%}.app-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.tab-bar{position:fixed;inset-inline:0;bottom:0;display:flex;justify-content:space-around;align-items:stretch;background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);backdrop-filter:blur(20px);border-top:.5px solid var(--separator);padding-bottom:env(safe-area-inset-bottom);z-index:50}@media(prefers-reduced-transparency:reduce){.tab-bar{background:var(--bg-elevated);backdrop-filter:none}}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;color:var(--fg-secondary);font-size:var(--text-xs);user-select:none;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.tab-item:not(.active):active{color:var(--fg)}.tab-item.active{color:var(--accent)}.tab-item svg{width:24px;height:24px}@media(min-width:900px){.app-shell{flex-direction:row}.tab-bar{position:static;flex-direction:column;justify-content:flex-start;gap:var(--space-1);width:216px;flex-shrink:0;border-top:none;border-inline-end:.5px solid var(--separator);padding:var(--space-4) var(--space-3)}.tab-item{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:var(--space-3);padding:10px 14px;border-radius:var(--radius-md);font-size:var(--text-base)}.tab-item.active{background:var(--fill)}@media(hover:hover){.tab-item:hover{background:var(--fill);color:var(--fg)}.tab-item.active:hover{color:var(--accent)}}.app-content{padding-bottom:0}}.nav-brand{display:none;align-items:center;gap:var(--space-2);padding:4px 14px var(--space-4);font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em;user-select:none}.nav-brand img{width:28px;height:28px;border-radius:7px}@media(min-width:900px){.nav-brand{display:flex}}.screen{width:100%;max-width:1080px;margin-inline:auto;padding:clamp(16px,2vw,28px) clamp(16px,3vw,44px);animation:screen-in var(--dur-med) var(--ease-out)}@keyframes screen-in{0%{opacity:0}}.screen-wide{max-width:1440px}.widget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:var(--space-4);align-items:start}@media(min-width:900px)and (max-width:1000px){.screen-wide .widget-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.screen-title{font-size:var(--text-3xl);font-weight:700;line-height:1.15;letter-spacing:-.01em;margin:var(--space-1) 0 var(--space-4)}.card{background:var(--bg-elevated);border-radius:var(--radius-lg);border:.5px solid var(--card-border);box-shadow:var(--shadow-card);overflow:hidden}.list-row{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:start;padding:var(--space-3) var(--space-4);min-height:44px;border-bottom:.5px solid var(--separator);transition:background-color var(--dur-fast) var(--ease-out)}@media(hover:hover){button.list-row:not(:disabled):hover,a.list-row:hover{background:var(--fill)}}button.list-row:not(:disabled):active,a.list-row:active{background:var(--fill-strong)}.list-row:last-child{border-bottom:none}.list-row .row-label{flex:1}.list-row .row-detail{color:var(--fg-secondary);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.section-header{font-size:var(--text-sm);font-weight:inherit;color:var(--fg-secondary);text-transform:uppercase;letter-spacing:.04em;margin:var(--space-5) var(--space-2) var(--space-2)}.btn-primary{display:block;width:100%;background:var(--accent);color:var(--on-accent);font-weight:600;border-radius:var(--radius-md);padding:14px;text-align:center;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}@media(hover:hover){.btn-primary:not(:disabled):hover{box-shadow:0 3px 14px color-mix(in srgb,var(--accent) 40%,transparent)}}.btn-primary:not(:disabled):active{transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-plain{color:var(--accent);font-weight:500;padding:var(--space-2);white-space:nowrap;border-radius:var(--radius-sm);transition:background-color var(--dur-fast) var(--ease-out)}@media(hover:hover){.btn-plain:not(:disabled):hover{background:var(--fill)}}.btn-plain:not(:disabled):active{background:var(--fill-strong)}.btn-danger{color:var(--danger)}.text-field{width:100%;background:var(--bg-inset);border:none;border-radius:var(--radius-sm);padding:12px 14px;outline-color:var(--accent);transition:background-color var(--dur-fast) var(--ease-out)}.text-field:focus{background:color-mix(in srgb,var(--bg-inset) 55%,var(--bg-elevated))}.field-stack{display:flex;flex-direction:column;gap:var(--space-3)}.error-text{color:var(--danger);font-size:var(--text-sm)}.hint-text{color:var(--fg-secondary);font-size:var(--text-sm)}.empty-state{text-align:center;color:var(--fg-secondary);padding:var(--space-8) var(--space-4);max-width:420px;margin-inline:auto;line-height:1.5}.toggle{appearance:none;width:51px;height:31px;border-radius:var(--radius-full);background:var(--fill-strong);position:relative;transition:background .2s;cursor:pointer;flex-shrink:0}.toggle:checked{background:var(--accent)}.toggle:after{content:"";position:absolute;top:2px;inset-inline-start:2px;width:27px;height:27px;border-radius:50%;background:#fff;border:.5px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000004d;transition:transform .2s,width .15s}.toggle:checked:after{transform:translate(20px)}[dir=rtl] .toggle:checked:after{transform:translate(-20px)}.toggle:active:after{width:31px}.toggle:checked:active:after{transform:translate(16px)}[dir=rtl] .toggle:checked:active:after{transform:translate(-16px)}@media(forced-colors:active){.toggle{forced-color-adjust:none;background:ButtonFace;border:1px solid ButtonText}.toggle:checked{background:Highlight;border-color:Highlight}.toggle:after{background:ButtonText;border-color:ButtonText}.toggle:checked:after{background:HighlightText;border-color:HighlightText}}.segmented{position:relative;display:flex;gap:2px;background:var(--bg-inset);border-radius:var(--radius-sm);padding:2px;margin-bottom:var(--space-4)}.segmented[data-seg-slide]:before{content:"";position:absolute;inset-block:2px;--seg-w: calc((100% - 4px - (var(--seg-count) - 1) * 2px) / var(--seg-count));inline-size:var(--seg-w);inset-inline-start:calc(2px + var(--seg-index) * (var(--seg-w) + 2px));border-radius:calc(var(--radius-sm) - 2px);background:var(--bg-elevated);box-shadow:var(--shadow-card);transition:inset-inline-start var(--dur-med) var(--ease-out)}.segmented button{position:relative}.segmented[data-seg-slide] button.active{background:none;box-shadow:none}@media(forced-colors:active){.segmented[data-seg-slide]:before{display:none}.segmented[data-seg-slide] button.active{forced-color-adjust:none;background:Highlight;color:HighlightText}}.segmented button{flex:1;padding:8px 12px;border-radius:calc(var(--radius-sm) - 2px);font-weight:600;font-size:var(--text-sm);color:var(--fg-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}@media(hover:hover){.segmented button:not(.active):hover{color:var(--fg)}}.segmented button.active{background:var(--bg-elevated);color:var(--fg);box-shadow:var(--shadow-card)}.chip-row{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-2);margin-bottom:var(--space-2)}.chip{flex:0 0 auto;padding:6px 14px;border-radius:var(--radius-full);background:var(--fill);color:var(--fg);font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}@media(hover:hover){button.chip:not(.active):not(:disabled):hover{background:var(--fill-strong)}}button.chip:not(:disabled):active{transform:scale(.96)}.chip.active{background:var(--accent);color:var(--on-accent)}.note-editor-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.select-plain{background:var(--bg-inset);border:none;border-radius:var(--radius-sm);padding:8px 10px;color:var(--fg)}.checklist-text{flex:1;min-width:80px;background:none;border:none;color:var(--fg);padding:4px 0}.note-textarea{width:100%;min-height:320px;border:none;resize:vertical;background-color:var(--bg-elevated);border-radius:var(--radius-md);padding:var(--space-4);line-height:28px;outline-color:var(--accent)}.note-format-bar{position:sticky;bottom:0;z-index:5;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);margin-block:var(--space-2) var(--space-3);background:var(--bg-elevated);border:1px solid var(--card-border);border-radius:var(--radius-md)}.note-format-row{display:flex;gap:var(--space-1)}.note-fmt-btn{flex:1;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--radius-sm);color:var(--accent);font-size:var(--text-base);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.note-fmt-btn:hover{background:var(--fill)}.note-fmt-btn.active{background:var(--accent);color:var(--on-accent)}.note-md{overflow-wrap:anywhere}.note-md a:hover{text-decoration:underline}.note-md-line{white-space:pre-wrap}.note-md-quote{color:var(--fg-secondary)}.note-md-divider{color:var(--fg-secondary);opacity:.6}.note-md-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-attachments{margin-block-start:var(--space-3)}.note-attachment-icon{font-size:20px;flex-shrink:0}.note-attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-lined{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,var(--separator) 27px,var(--separator) 28px);background-attachment:local}.page-grid{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,var(--separator) 27px,var(--separator) 28px),repeating-linear-gradient(to right,transparent 0,transparent 27px,var(--separator) 27px,var(--separator) 28px);background-attachment:local}.ink-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.ink-tool{padding:6px 10px;border-radius:var(--radius-sm);background:var(--fill);font-size:var(--text-sm);transition:background-color var(--dur-fast) var(--ease-out)}@media(hover:hover){.ink-tool:not(.active):hover{background:var(--fill-strong)}}.ink-tool.active{background:var(--accent);color:var(--on-accent)}.ink-swatch-row{display:inline-flex;gap:6px;align-items:center}.ink-swatch{width:24px;height:24px;border-radius:50%;border:2px solid var(--separator);flex-shrink:0}.accent-swatch{width:28px;height:28px;border-radius:50%;flex-shrink:0;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}@media(hover:hover){.accent-swatch:hover{transform:scale(1.12)}}.accent-swatch:active{transform:scale(.95)}.accent-swatch.selected{box-shadow:0 0 0 2px var(--bg-grouped),0 0 0 4px var(--fg)}@media(forced-colors:active){.accent-swatch{forced-color-adjust:none}.accent-swatch.selected{box-shadow:0 0 0 2px Canvas,0 0 0 4px Highlight}}.ink-swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.ink-canvas{display:block;width:100%;height:480px;border-radius:var(--radius-md);touch-action:none;cursor:crosshair}@media print{.tab-bar,.planner-fab,.nav-brand{display:none!important}.app-shell{display:block;height:auto}.app-content{overflow:visible;padding-bottom:0!important}.screen{max-width:none;animation:none}body{background:#fff}.card{box-shadow:none}}@media(forced-colors:active){.chip.active,.ink-tool.active,.segmented button.active,.tab-item.active{forced-color-adjust:none;background:Highlight;color:HighlightText}.ink-swatch{forced-color-adjust:none}.ink-swatch.active{border-color:Highlight}}:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SF Mono", Menlo, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.125rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 999px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .08), 0 2px 8px rgba(0, 0, 0, .06);--shadow-card-hover: 0 2px 4px rgba(0, 0, 0, .08), 0 8px 24px rgba(0, 0, 0, .1);--shadow-sheet: 0 -8px 40px rgba(0, 0, 0, .25);--dur-fast: .12s;--dur-med: .22s;--ease-out: cubic-bezier(.2, 0, 0, 1);--tier-plus-from: #0a84ff;--tier-plus-to: #32ade6;--tier-pro-from: #ff9f0a;--tier-pro-to: #ffd60a;--accent-blue: #0a84ff;--accent-purple: #bf5af2;--accent-pink: #ff6bb3;--accent-red: #ff453a;--accent-orange: #ff9f0a;--accent-yellow: #ffd60a;--accent-green: #30d158;--accent-mint: #3deb9e;--accent-teal: #40c8e0;--accent-indigo: #5e5ce6;--accent: var(--accent-blue);--on-accent: #ffffff}:root,[data-theme=light]{color-scheme:light;--bg: #f2f2f7;--bg-elevated: #ffffff;--bg-grouped: #ffffff;--bg-inset: #e5e5ea;--fg: #000000;--fg-secondary: #6e6e73;--fg-tertiary: #85858a;--separator: rgba(60, 60, 67, .18);--card-border: rgba(60, 60, 67, .22);--fill: rgba(120, 120, 128, .12);--fill-strong: rgba(120, 120, 128, .2);--danger: #ff3b30;--success: #34c759;--warning: #ff9500}[data-theme=dark]{color-scheme:dark;--bg: #0b0b0f;--bg-elevated: #1c1c1e;--bg-grouped: #1c1c1e;--bg-inset: #2c2c2e;--fg: #ffffff;--fg-secondary: #98989f;--fg-tertiary: #78787f;--separator: rgba(84, 84, 88, .6);--card-border: transparent;--fill: rgba(120, 120, 128, .24);--fill-strong: rgba(120, 120, 128, .36);--danger: #ff453a;--success: #30d158;--warning: #ff9f0a}:root{--on-success: #1c1c1e;--on-warning: #1c1c1e;--on-danger: #ffffff}@media(prefers-contrast:more){:root,[data-theme=light]{--separator: rgba(60, 60, 67, .5);--card-border: rgba(60, 60, 67, .55);--fg-secondary: #4a4a4f;--fg-tertiary: #5c5c61}[data-theme=dark]{--separator: rgba(160, 160, 168, .6);--card-border: rgba(160, 160, 168, .4);--fg-secondary: #c7c7cf;--fg-tertiary: #b0b0b8}}[data-accent=purple]{--accent: var(--accent-purple)}[data-accent=pink]{--accent: var(--accent-pink);--on-accent: #1c1c1e}[data-accent=red]{--accent: var(--accent-red)}[data-accent=orange]{--accent: var(--accent-orange);--on-accent: #1c1c1e}[data-accent=yellow]{--accent: var(--accent-yellow);--on-accent: #1c1c1e}[data-accent=green]{--accent: var(--accent-green);--on-accent: #1c1c1e}[data-accent=mint]{--accent: var(--accent-mint);--on-accent: #1c1c1e}[data-accent=teal]{--accent: var(--accent-teal);--on-accent: #1c1c1e}[data-accent=indigo]{--accent: var(--accent-indigo)}:root:not([data-theme=dark]){--accent-yellow: #a67c00;--accent-mint: #0e9a60;--accent-pink: #e24f9e;--accent-teal: #128da4;--accent-green: #1e9e44;--accent-orange: #c76a00}:root:not([data-theme=dark])[data-accent=yellow]{--on-accent: #ffffff}:root:not([data-theme=dark])[data-accent=mint]{--on-accent: #ffffff}:root:not([data-theme=dark])[data-accent=pink]{--on-accent: #ffffff}:root:not([data-theme=dark])[data-accent=orange]{--on-accent: #ffffff}:root:not([data-theme=dark])[data-accent=green]{--on-accent: #ffffff}:root:not([data-theme=dark])[data-accent=teal]{--on-accent: #ffffff}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--text-base);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}[data-theme=light] body{background:linear-gradient(180deg,#ffffff 0%,var(--bg) 60%);background-attachment:fixed}button{font:inherit;border:none;background:none;color:inherit;cursor:pointer;padding:0}input,textarea,select{font:inherit;color:var(--fg)}a{color:var(--accent);text-decoration:none}::placeholder{color:var(--fg-secondary);opacity:1}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent)}:root{scrollbar-color:color-mix(in srgb,var(--fg) 28%,transparent) transparent;scrollbar-width:thin}[dir=rtl] .flip-rtl{transform:scaleX(-1)}:root{--focus-ring: var(--accent)}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
