*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{color:#1a1a1a;-webkit-tap-highlight-color:transparent;background:#f8f9fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}main{max-width:34rem;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-left)) calc(5.5rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-right));margin:0 auto}header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}h1{font-size:1.375rem}h2{text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin:1.75rem 0 .625rem;font-size:.8125rem}a{color:#0b62d0}.card{background:#fff;border-radius:14px;margin-bottom:.5rem;padding:.75rem .875rem;box-shadow:0 1px 2px #00000014}.card.closed{opacity:.6}.card.closed .reminder{text-decoration:line-through}.card-main{align-items:flex-start;gap:.75rem;display:flex}.card-body{flex:1;min-width:0}.card-body>summary{min-height:44px;color:inherit;padding:.125rem 0;list-style:none;display:block}.card-body>summary::-webkit-details-marker{display:none}.reminder{color:#1a1a1a;overflow-wrap:anywhere;font-size:1.0625rem;font-weight:600;display:block}.check{color:#0000;background:#fff;border:2px solid #c7cbd1;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;min-height:44px;padding:0;font-size:1.25rem;line-height:1;display:grid}.check:active,.closed .check{color:#fff;background:#12703a;border-color:#12703a}.meta{color:#6b7280;flex-wrap:wrap;gap:.625rem;margin-top:.125rem;font-size:.8125rem;display:flex}.meta:empty{display:none}.overdue{color:#c02626;font-weight:600}.notes{color:#4b5563;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:.25rem;font-size:.875rem;display:-webkit-box;overflow:hidden}.row{gap:.5rem;margin-top:.75rem;display:flex}.row button{flex:1}label{color:#4b5563;margin-bottom:.25rem;font-size:.8125rem;display:block}.field{margin-bottom:.75rem}input,select,textarea{min-height:44px;color:inherit;background:#fff;border:1px solid #d4d7db;border-radius:10px;width:100%;padding:.625rem .75rem;font-family:inherit;font-size:16px}textarea{resize:vertical;min-height:4.5rem}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,summary:focus-visible{outline-offset:2px;outline:2px solid #0b62d0}button{min-height:44px;color:inherit;cursor:pointer;touch-action:manipulation;background:#fff;border:1px solid #d4d7db;border-radius:10px;padding:.625rem 1rem;font-family:inherit;font-size:1rem}button:active{background:#e9ecef;transform:scale(.98)}button[disabled]{opacity:.5}button.primary{color:#fff;background:#1a1a1a;border-color:#1a1a1a;font-weight:500}button.primary:active{background:#3d3d3d}button.done{color:#fff;background:#12703a;border-color:#12703a;font-weight:500}button.done:active{background:#1a8f4c}button.danger{color:#c02626;border-color:#f0c3c3}@media (hover:hover){button:hover{background:#f1f3f5}button.primary:hover{background:#333}button.done:hover{background:#158043}}summary{cursor:pointer;color:#4b5563;touch-action:manipulation;align-items:center;min-height:44px;font-size:.9375rem;display:flex}.card>summary{color:#1a1a1a;margin:-.875rem -1rem;padding:0 1rem;font-weight:600}.error,.notice{border-radius:10px;margin-bottom:.75rem;padding:.75rem .875rem;font-size:.9375rem}.error{color:#8c1c1c;background:#fdecec;border:1px solid #f5b5b5}.notice{color:#1e5c1e;background:#eaf4ea;border:1px solid #b7ddb7}.empty{color:#6b7280;padding:1.25rem 0}.grid{grid-template-columns:1fr 8.5rem;gap:.75rem;display:grid}@media (max-width:22rem){.grid{grid-template-columns:1fr}}button.fab{right:max(1rem, env(safe-area-inset-right));bottom:calc(1rem + env(safe-area-inset-bottom));z-index:10;color:#fff;background:#1a1a1a;border:none;border-radius:26px;align-items:center;gap:.5rem;min-height:52px;padding:0 1.25rem;font-weight:500;display:flex;position:fixed;box-shadow:0 4px 14px #00000040}button.fab:hover{background:#333}button.fab:active{background:#3d3d3d;transform:scale(.96)}main:has(details[open]) .fab{display:none}.sheet{width:min(34rem,100%);max-height:85vh;padding:1.25rem max(1rem, env(safe-area-inset-right)) calc(1.25rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));color:inherit;background:#fff;border:none;border-radius:16px 16px 0 0;margin:auto auto 0;overflow-y:auto}.sheet::backdrop{background:#0006}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}button:active,.fab:active{transform:none}}
