*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--type-body-family);font-size:var(--type-body-size);font-weight:var(--type-body-weight);line-height:var(--type-body-line);letter-spacing:var(--type-body-tracking);-webkit-font-smoothing:antialiased}.app{max-width:480px;margin:0 auto;padding:var(--space-4) var(--space-2)}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.app h1{margin:0;font-family:var(--type-h1-family);font-size:var(--type-h1-size);font-weight:var(--type-h1-weight);line-height:var(--type-h1-line);letter-spacing:var(--type-h1-tracking)}.header-actions{display:flex;align-items:center;gap:var(--space-2)}.manage-tags-btn{border:var(--border-hairline) solid var(--button-secondary-border);border-radius:var(--radius-md);background:var(--button-secondary-bg);color:var(--button-secondary-text);font-family:var(--type-label-family);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);padding:var(--space-1) var(--space-3);cursor:pointer;transition:border-color var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard)}.manage-tags-btn:hover{border-color:var(--color-accent-hover);color:var(--color-accent-hover)}.tag-manager--full{border:none;box-shadow:none;background:transparent;padding:0;margin-bottom:0}.tag-manager--full .tag-manager-title{font-family:var(--type-h1-family);font-size:var(--type-h1-size);font-weight:var(--type-h1-weight);letter-spacing:var(--type-h1-tracking)}.tag-manager-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.tag-manager-title{margin:0;font-family:var(--type-h2-family);font-size:var(--type-h2-size);font-weight:var(--type-h2-weight);line-height:var(--type-h2-line);letter-spacing:var(--type-h2-tracking)}.tag-manager-list{list-style:none;margin:0 0 var(--space-3);padding:0}.tag-manager-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:var(--border-hairline) solid var(--color-border)}.tag-manager-spacer{flex:1}.tag-manager-add{display:flex;gap:var(--space-2)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:var(--border-hairline) solid var(--button-secondary-border);border-radius:var(--radius-md);background:var(--button-secondary-bg);color:var(--button-secondary-text);font-size:16px;line-height:1;cursor:pointer;transition:border-color var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard)}.theme-toggle:hover{border-color:var(--color-accent-hover);color:var(--color-accent-hover)}.theme-toggle:focus-visible{outline:none;border-color:var(--color-accent)}.add-form{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.input{flex:1;padding:var(--space-2) var(--space-3);border:var(--border-hairline) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-family:var(--type-body-family);font-size:var(--type-body-size);line-height:var(--type-body-line)}.input::placeholder{color:var(--color-text-muted)}.input:focus{outline:none;border-color:var(--color-accent)}.btn{padding:var(--space-2) var(--space-4);border:var(--border-hairline) solid transparent;border-radius:var(--radius-md);background:var(--button-primary-bg);color:var(--button-primary-text);font-family:var(--type-label-family);font-size:var(--type-label-size);font-weight:var(--type-label-weight);cursor:pointer;transition:background var(--duration-fast) var(--easing-standard)}.btn:hover:not(:disabled){background:var(--button-primary-bg-hover)}.btn:disabled{opacity:.5;cursor:default}.login-form{display:flex;flex-direction:column;gap:var(--space-2)}.login-error{margin:0;color:var(--color-danger);font-size:var(--type-label-size)}.list{list-style:none;margin:0;padding:0;border-top:var(--border-hairline) solid var(--color-border)}.item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:var(--border-hairline) solid var(--color-border)}.item input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.item-text{flex:1;color:var(--color-text-primary)}.item-text.done{color:var(--color-text-muted);text-decoration:line-through}.delete,.edit{border:none;background:none;color:var(--color-text-muted);font-size:18px;line-height:1;cursor:pointer;padding:0 var(--space-2);transition:color var(--duration-fast) var(--easing-standard)}.delete:hover{color:var(--color-danger)}.edit:hover{color:var(--color-accent)}.cancel{border:none;background:none;color:var(--color-text-muted);font-family:var(--type-label-family);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);cursor:pointer;padding:0 var(--space-2);transition:color var(--duration-fast) var(--easing-standard)}.cancel:hover{color:var(--color-text-primary)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-scrim);animation:modal-fade var(--duration-base) var(--easing-standard)}.modal{background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-overlay);width:100%;display:flex;flex-direction:column;max-height:100%;max-width:440px;border-radius:var(--radius-md);animation:modal-pop var(--duration-base) var(--easing-standard)}.modal-form{display:flex;flex-direction:column;min-height:0}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:var(--border-hairline) solid var(--color-border)}.modal-title{margin:0;font-family:var(--type-h2-family);font-size:var(--type-h2-size);font-weight:var(--type-h2-weight);line-height:var(--type-h2-line);letter-spacing:var(--type-h2-tracking)}.modal-x{border:none;background:none;color:var(--color-text-muted);font-size:22px;line-height:1;cursor:pointer;padding:0 var(--space-1);transition:color var(--duration-fast) var(--easing-standard)}.modal-x:hover{color:var(--color-text-primary)}.modal-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);overflow-y:auto}.modal-field{display:flex;flex-direction:column;gap:var(--space-1)}.modal-field--row{flex-direction:row;align-items:center;justify-content:space-between}.modal-label{font-family:var(--type-label-family);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);color:var(--color-text-muted)}.modal-textarea{min-height:calc(var(--space-6) + var(--space-5));resize:vertical;font-family:var(--type-body-family)}.modal .input{background:var(--color-bg)}.modal-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.modal-check{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;color:var(--color-text-primary)}.modal-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.modal-created{font-family:var(--type-label-family);font-size:var(--type-label-size);letter-spacing:var(--type-label-tracking);color:var(--color-text-muted)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:var(--border-hairline) solid var(--color-border)}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-pop{0%{opacity:0;transform:translateY(var(--space-3)) scale(.98)}}@media (prefers-reduced-motion: reduce){.modal-backdrop,.modal{animation:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.item-tags{display:flex;flex-wrap:wrap;gap:var(--space-1);flex-shrink:0}.tag-chip{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border:var(--border-hairline) solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);font-family:var(--type-label-family);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);line-height:var(--type-label-line)}.tag-cap-hint{margin:0;padding:var(--space-1) var(--space-2) 0;color:var(--color-text-muted);font-family:var(--type-label-family);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);line-height:var(--type-label-line)}.tag-toggle{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border:var(--border-hairline) solid var(--color-border);border-radius:var(--radius-pill);background:none;color:var(--color-text-muted);font-family:var(--type-label-family);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking);line-height:var(--type-label-line);cursor:pointer;transition:border-color var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard)}.tag-toggle:hover,.tag-toggle.on{border-color:var(--color-accent);color:var(--color-accent)}.tag-toggle:focus-visible{outline:none;border-color:var(--color-accent)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.empty{color:var(--color-text-muted);padding:var(--space-4) 0;text-align:center;font-family:var(--type-label-family);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-tracking)}
