*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;background:#0c0c18;color:#e0e0e0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow:hidden}#app{display:flex;flex-direction:column;height:100vh;height:100dvh}.header{padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));text-align:center;flex-shrink:0}.header h1{font-size:17px;font-weight:700;color:#fff;letter-spacing:1.5px}.status{font-size:12px;color:#888;margin-top:2px;min-height:16px}.view{display:none;flex:1;overflow-y:auto;padding:4px 12px 12px}.view.active{display:flex;flex-direction:column}.section-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:#ffffff4d;padding:12px 4px 6px}.section-header:first-child{padding-top:4px}.count{color:#ffffff26;font-weight:400}.todo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:4px 0}.tile{position:relative;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 8px 12px;min-height:90px;cursor:pointer;transition:transform .15s,opacity .3s;border:1.5px solid var(--glow, #555);background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--glow, #555) 35%,transparent) 0%,transparent 70%),linear-gradient(160deg,color-mix(in srgb,var(--glow, #555) 22%,#0c0c18),#0c0c18);box-shadow:0 0 20px color-mix(in srgb,var(--glow, #555) 15%,transparent),inset 0 1px #ffffff0f}.tile:active{transform:scale(.94)}.tile .emoji{font-size:24px;margin-bottom:4px}.tile .label{font-size:10px;font-weight:600;text-align:center;line-height:1.2;color:#fffc;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tile.completing{transform:scale(0)!important;opacity:0!important;transition:transform .3s ease-in,opacity .3s ease-in!important}.tile.expanded{grid-column:1 / -1;min-height:auto;padding:16px;align-items:flex-start;border-width:2px;background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--glow, #555) 50%,transparent) 0%,transparent 70%),linear-gradient(160deg,color-mix(in srgb,var(--glow, #555) 35%,#0c0c18),#0c0c18);box-shadow:0 0 25px color-mix(in srgb,var(--glow, #555) 40%,transparent),0 0 60px color-mix(in srgb,var(--glow, #555) 15%,transparent),inset 0 1px #ffffff1a}.tile.expanded>.emoji{display:none}.tile.expanded>.label{display:none}.expanded-header{display:none;flex-direction:row;align-items:center;gap:8px;width:100%;margin-bottom:8px}.tile.expanded .expanded-header{display:flex}.expanded-header .label{font-size:14px;font-weight:700;color:#fff;flex:1;-webkit-line-clamp:unset;overflow:visible;text-align:left;display:block}.expanded-details{display:none;font-size:13px;line-height:1.5;color:#ffffffb3;width:100%;margin-bottom:12px;white-space:pre-wrap}.tile.expanded .expanded-details{display:block}.expanded-actions{display:none;flex-direction:row;gap:8px;width:100%}.tile.expanded .expanded-actions{display:flex}.action-btn{flex:1;padding:10px 12px;border:1.5px solid rgba(255,255,255,.15);border-radius:12px;background:#ffffff0d;color:#fff;font-size:13px;font-weight:600;cursor:pointer;text-align:center;transition:background .15s}.action-btn:active{background:#ffffff26}.action-btn.done{border-color:#4ade80;color:#4ade80}.empty-state{text-align:center;color:#555;padding:60px 0}.empty-icon{font-size:40px;margin-bottom:12px}.empty-hint{font-size:12px;margin-top:4px;color:#444}.modal-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:100;align-items:flex-end;justify-content:center}.modal-backdrop.show{display:flex}.modal{background:#1a1a2e;border-radius:20px 20px 0 0;padding:20px 16px;padding-bottom:max(20px,env(safe-area-inset-bottom));width:100%;max-width:500px;max-height:85vh;overflow-y:auto}.modal-inner h2{font-size:16px;font-weight:700;color:#fff;margin-bottom:16px}.modal-inner label{font-size:12px;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:1px;display:block;margin-bottom:6px;margin-top:14px}.modal-inner label:first-of-type{margin-top:0}.modal-inner input[type=text]{width:100%;padding:10px 12px;border:1.5px solid rgba(255,255,255,.15);border-radius:12px;background:#ffffff0d;color:#fff;font-size:15px;font-family:inherit;outline:none;-webkit-user-select:text;user-select:text}.modal-inner input[type=text]:focus{border-color:#ffffff59}.modal-inner textarea.modal-textarea{width:100%;padding:10px 12px;border:1.5px solid rgba(255,255,255,.15);border-radius:12px;background:#ffffff0d;color:#fff;font-size:15px;font-family:inherit;outline:none;resize:vertical;min-height:80px;-webkit-user-select:text;user-select:text}.modal-inner textarea.modal-textarea:focus{border-color:#ffffff59}.priority-picker{display:flex;gap:8px}.priority-option{flex:1;padding:10px 8px;border:1.5px solid rgba(255,255,255,.15);border-radius:12px;background:#ffffff08;color:#fff9;font-size:12px;font-weight:600;text-align:center;cursor:pointer;transition:all .15s}.priority-option.selected{border-color:var(--sel-color, #4ade80);color:var(--sel-color, #4ade80);background:color-mix(in srgb,var(--sel-color, #4ade80) 10%,transparent)}.emoji-picker{display:flex;gap:6px;flex-wrap:wrap}.emoji-pick{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;border:1.5px solid rgba(255,255,255,.1);border-radius:10px;cursor:pointer;background:transparent;transition:all .15s}.emoji-pick.selected{border-color:#fff6;background:#ffffff1a}.modal-buttons{display:flex;gap:10px;margin-top:20px}.modal-btn{flex:1;padding:12px;border-radius:14px;border:none;font-size:15px;font-weight:700;cursor:pointer}.modal-btn.cancel{background:#ffffff14;color:#fff9}.modal-btn.save{background:#4ade80;color:#0c0c18}.toast{position:fixed;top:max(60px,env(safe-area-inset-top,20px));left:50%;transform:translate(-50%) translateY(-100px);background:#4ade80;color:#0c0c18;padding:10px 20px;border-radius:14px;font-size:14px;font-weight:700;z-index:200;transition:transform .3s ease;pointer-events:none}.toast.show{transform:translate(-50%) translateY(0)}.nav{display:flex;border-top:1px solid rgba(255,255,255,.08);padding-bottom:max(4px,env(safe-area-inset-bottom));flex-shrink:0;background:#0c0c18}.nav-btn{flex:1;padding:10px 0 6px;background:none;border:none;color:#555;font-size:10px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}.nav-icon{font-size:20px}.nav-btn.active{color:#fff}.context-menu{display:none;position:fixed;background:#1a1a2e;border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:6px;z-index:150;min-width:160px;box-shadow:0 8px 32px #00000080}.context-menu.show{display:block}.context-menu-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;font-size:14px;color:#fffc;cursor:pointer}.context-menu-item:active{background:#ffffff14}.context-menu-item.danger{color:#ef4444}.setup-form{max-width:400px;margin:40px auto;padding:24px;display:flex;flex-direction:column;gap:12px;background:#1a1a2e;border-radius:20px}.setup-form h1{font-size:20px;color:#fff;margin-bottom:8px}.setup-form label{font-size:12px;color:#ffffff80;text-transform:uppercase;letter-spacing:1px}.setup-input{padding:10px 12px;border:1.5px solid rgba(255,255,255,.15);border-radius:12px;background:#ffffff0d;color:#fff;font-size:15px;font-family:inherit;outline:none}
