:root{--paper:#ebe5d8;--paper-raised:#f5f0e6;--ink:#292820;--muted:#6d675a;--line:#aaa08e;--forest:#2f493a;--forest-soft:#dbe2d8;--rust:#a2472f;--danger:#862f28;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:Noto Serif SC,Songti SC,Georgia,serif}*{box-sizing:border-box}html{background:linear-gradient(#4942320b 1px, transparent 1px), var(--paper);background-size:100% 28px;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0;min-height:44px}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #a2472f59}button:disabled{cursor:wait;opacity:.65}h1,h2,p{margin-top:0}h1{letter-spacing:-.055em;margin-bottom:0;font-size:clamp(2.35rem,13vw,4.75rem);font-weight:500;line-height:.95}h2{font-size:1.15rem;line-height:1.35}.app-shell{width:min(100%,46rem);min-height:100vh;margin:0 auto;padding:1.5rem 1rem 6.75rem}.app-header,.page-header{border-bottom:1px solid var(--line);margin-bottom:1.25rem;padding-bottom:1.25rem}.app-header{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.app-header h1{font-size:clamp(2.8rem,15vw,5rem)}.page-header h1{max-width:12ch}.eyebrow{color:var(--muted);letter-spacing:.16em;margin-bottom:.45rem;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.72rem;font-weight:700}.primary-action,.secondary-action,.danger-action,.back-action{border-radius:2px;padding:.65rem .95rem;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.9rem;font-weight:700}.primary-action{color:#fffaf0;background:var(--forest)}.secondary-action,.back-action{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);background:0 0}.danger-action{color:#fff;background:var(--danger)}.back-action{margin-bottom:1.5rem}.quadrant-grid{gap:.8rem;display:grid}.quadrant-card{border:1px solid var(--line);background:#f5f0e6b8;min-width:0;padding:1rem;box-shadow:3px 3px #5048371a}.quadrant-card>header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.quadrant-card>header span{color:var(--rust);letter-spacing:.12em;font-size:.75rem;font-weight:700}.quadrant-card>header p{color:var(--muted);margin-bottom:0;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.75rem}.quadrant-card h2{margin-bottom:.85rem;font-weight:650}.task-preview-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.task-preview-list>li{border-top:1px solid #6d675a59;gap:.7rem;min-width:0;padding:.85rem 0;display:grid}.task-copy{min-width:0}.task-copy strong{overflow-wrap:anywhere;font-size:1rem;font-weight:600;line-height:1.5;display:block}.task-copy p,.task-copy time{color:var(--muted);overflow-wrap:anywhere;margin:.3rem 0 0;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.78rem;line-height:1.55;display:block}.task-actions{grid-template-columns:repeat(auto-fit,minmax(4.25rem,1fr));gap:.4rem;display:grid}.task-actions button,.text-action{color:var(--forest);background:var(--forest-soft);font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.78rem;font-weight:700}.task-actions button:last-child{color:var(--danger);background:#eadbd5}.text-action{background:0 0;width:100%;margin-top:.8rem;padding:.65rem;box-shadow:inset 0 0 0 1px #2f493a73}.empty-note,.state-message{color:var(--muted);margin-bottom:0;line-height:1.65}.reminder-boundary{max-width:28rem;color:var(--muted);margin:.8rem 0 0;font-size:.9rem;line-height:1.65}.today-grid,.settings-grid{gap:1rem;display:grid}.settings-card{border:1px solid var(--line);background:#f5f0e6b8;min-width:0;padding:1rem}.settings-card-danger{border-top:4px solid var(--danger)}.settings-card h2{margin-bottom:.5rem}.settings-card>p:not(.eyebrow),.storage-boundary{color:var(--muted);font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.85rem;line-height:1.65}.backup-reminder{border-left:3px solid var(--rust);background:#efe2d8;margin:0;padding:.85rem;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.85rem;line-height:1.6}.file-action{min-height:44px;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;background:0 0;padding:.65rem .95rem;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.9rem;font-weight:700;display:block}.file-action input{width:100%;color:var(--muted);margin-top:.55rem;font-size:.75rem;font-weight:400;display:block}.storage-boundary{margin:0;padding:0 .2rem}.update-prompt{right:1rem;bottom:calc(4.6rem + env(safe-area-inset-bottom));z-index:15;border-top:4px solid var(--rust);background:var(--paper-raised);gap:.85rem;width:min(100% - 2rem,32rem);margin:0 auto;padding:1rem;display:grid;position:fixed;left:1rem;box-shadow:0 12px 36px #1d1c173d}.update-prompt strong{margin-bottom:.25rem;display:block}.update-prompt p{color:var(--muted);margin:0;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.8rem;line-height:1.55}.update-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.today-section{border:1px solid var(--line);background:#f5f0e6b8;padding:1rem}.today-section-overdue{border-top:4px solid var(--rust)}.today-section>header{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.today-section>header h2{margin-bottom:0}.today-section>header span{color:#fffaf0;background:var(--forest);border-radius:50%;place-items:center;min-width:1.8rem;min-height:1.8rem;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.75rem;font-weight:700;display:grid}.state-message{border-left:3px solid var(--rust);background:#f5f0e6bf;margin:1rem 0;padding:.85rem}.task-form{gap:1.15rem;display:grid}.task-form>label{color:var(--muted);gap:.45rem;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.8rem;font-weight:700;display:grid}.task-form input,.task-form textarea{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);background:var(--paper-raised);border-radius:0;padding:.75rem;font-family:Noto Serif SC,Songti SC,Georgia,serif;font-size:1rem}.task-form textarea{resize:vertical;min-height:7rem}.attribute-fields{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;min-width:0;margin:0;padding:0;display:grid}.attribute-fields legend{color:var(--muted);margin-bottom:.45rem;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.8rem;font-weight:700}.attribute-fields label{background:var(--paper-raised);min-height:48px;box-shadow:inset 0 0 0 1px var(--line);align-items:center;gap:.65rem;padding:.65rem;display:flex}.attribute-fields input{width:1.15rem;height:1.15rem;min-height:auto;accent-color:var(--forest);margin:0}.form-error{color:var(--danger);margin-bottom:0;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.85rem;font-weight:700}.form-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.bottom-nav{z-index:10;width:min(100%,46rem);padding:.45rem max(.45rem, env(safe-area-inset-left)) calc(.45rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#f5f0e6f7;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #2f2a2014}.bottom-nav button{min-width:0;color:var(--muted);background:0 0;padding:.45rem .2rem;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:.75rem;font-weight:700}.bottom-nav button>span{vertical-align:middle}.attention-badge{color:#fff;background:var(--rust);border-radius:999px;place-items:center;min-width:1.15rem;min-height:1.15rem;margin-left:.2rem;font-size:.65rem;line-height:1;display:inline-grid}.bottom-nav button[aria-current=page]{color:#fffaf0;background:var(--forest)}.dialog-backdrop{z-index:20;background:#1d1c1794;align-items:end;padding:1rem;display:grid;position:fixed;inset:0}.confirm-dialog{border-top:4px solid var(--rust);background:var(--paper-raised);width:min(100%,32rem);margin:0 auto;padding:1.25rem;box-shadow:0 16px 50px #00000047}.confirm-dialog h2{overflow-wrap:anywhere;font-size:1.35rem}.confirm-dialog>p:not(.eyebrow){color:var(--muted);line-height:1.65}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=42rem){.app-shell{padding:2.5rem 1.5rem 7rem}.quadrant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-backdrop{place-items:center}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}
