:root{--color-primary:#339af0;--color-primary-hover:#228be6;--color-primary-active:#1c7ed6;--color-bg-page:#f8f9fa;--color-bg-card:#fff;--color-bg-subtle:#f1f3f5;--color-bg-hover:#e9ecef;--color-border:#dee2e6;--color-border-ui:#e9ecef;--color-text-primary:#212529;--color-text-secondary:#495057;--color-text-muted:#adb5bd;--color-text-label:#868e96;--color-success-bg:#d3f9d8;--color-success:#2b8a3e;--color-success-hover-bg:#b2f2bb;--color-warning-bg:#fff3bf;--color-warning:#e67700;--color-warning-hover-bg:#ffe066;--color-danger:#c92a2a;--color-danger-bg:#ffe3e3;--color-danger-hover-bg:#ffc9c9;--color-info-bg:#e7f5ff;--color-info:#1971c2;--color-info-hover-bg:#d0ebff;--color-disabled:#adb5bd;--shadow-card:0 1px 3px #0000000f;--shadow-modal:0 8px 32px #00000026;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:15px;--font-size-btn:14px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:20px;--font-weight-normal:400;--font-weight-semibold:600;--font-weight-bold:700;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-2xl:24px;--transition-fast:.15s}*{box-sizing:border-box}html,body{width:100%;overflow-x:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg-page);color:var(--color-text-primary);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans,Noto Sans JP,sans-serif}#root{max-width:480px;min-height:100dvh;margin:0 auto}a{color:var(--color-primary);text-decoration:none}button{font-family:inherit}.back-btn{cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);color:var(--color-text-primary);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.back-btn:hover{background:var(--color-bg-subtle)}.modal-overlay{z-index:100;box-sizing:border-box;opacity:1;background:#0006;justify-content:center;padding:20px;transition:opacity .2s ease-out;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-overlay.fade-out{opacity:0}.modal-content{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-2xl);width:100%;max-width:420px;box-shadow:var(--shadow-modal);flex-shrink:0;margin:auto 0}.modal-content h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 16px}.modal-content textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-size:var(--font-size-base);resize:vertical;transition:border-color var(--transition-fast);box-sizing:border-box;outline:none;padding:12px;font-family:inherit}.modal-content textarea:focus{border-color:var(--color-primary)}.modal-sub-row{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.modal-char-count{font-size:var(--font-size-xs);color:var(--color-text-muted);flex-shrink:0}.modal-due-date{align-items:center;gap:6px;display:flex;position:relative}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.btn-primary{background:var(--color-primary);color:var(--color-bg-card);border-radius:var(--radius-sm);font-size:var(--font-size-btn);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast);border:none;padding:10px 20px}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary:disabled{background:var(--color-disabled);cursor:not-allowed}.btn-secondary{background:var(--color-bg-subtle);color:var(--color-text-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-btn);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast);border:none;padding:10px 20px}.btn-secondary:hover{background:var(--color-bg-hover)}.url-chip{background:var(--color-info-bg);max-width:260px;color:var(--color-info);border:1px solid color-mix(in srgb, var(--color-info) 25%, transparent);font-size:var(--font-size-sm);vertical-align:middle;cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;margin:2px 3px;padding:3px 10px 3px 7px;font-weight:500;line-height:1.4;text-decoration:none;transition:background .15s,box-shadow .15s;display:inline-flex}.url-chip:hover{background:var(--color-info-hover-bg);box-shadow:var(--shadow-card)}.url-chip-icon{opacity:.75;flex-shrink:0}.url-chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.task-list-screen{background:var(--color-bg-page);flex-direction:column;min-height:100dvh;display:flex}.app-header{background:var(--color-bg-card);border-bottom:1px solid var(--color-border-ui);z-index:10;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.app-header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);flex-shrink:0;margin:0}.search-bar{background:var(--color-bg-subtle);border-radius:20px;flex:1;align-items:center;height:36px;margin:0 12px;display:flex;overflow:hidden}.search-icon{color:var(--color-text-muted);flex-shrink:0;justify-content:center;align-items:center;padding:0 4px 0 12px;display:flex}.search-input{font-size:var(--font-size-base);color:var(--color-text-primary);background:0 0;border:none;outline:none;width:100%;padding:6px 0}.search-input::placeholder{color:var(--color-text-muted)}.search-clear{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;flex-shrink:0;align-items:center;height:36px;padding:0 10px;font-size:14px;display:flex}.search-clear:hover{color:var(--color-text-primary)}.icon-btn{cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);background:0 0;border:none;padding:4px;font-size:22px}.icon-btn:hover{background:var(--color-bg-subtle)}.hamburger-icon{flex-direction:column;justify-content:center;gap:5px;width:22px;height:22px;display:flex}.hamburger-icon span{background:var(--color-text-primary);border-radius:2px;width:100%;height:2px;display:block}.task-list{background:var(--color-bg-card);flex:1;padding:0 0 100px}.task-row{border-bottom:1px solid var(--color-border-ui);box-sizing:border-box;align-items:center;gap:12px;min-height:56px;padding:14px 20px;display:flex}.task-row.task-row-today-last{border-bottom:3px solid var(--color-border-ui)}.task-row.empty{min-height:56px}.task-check{cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:flex}.task-check img{display:block}.task-body{cursor:pointer;flex:1;min-width:0}.task-title-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.task-row-single .task-title-row{align-items:center}.task-title{font-size:var(--font-size-base);color:var(--color-text-primary);word-break:break-word;font-weight:500;line-height:1.5}.task-title.completed{color:var(--color-text-muted);text-decoration:line-through}.task-desc{font-size:var(--font-size-sm);color:var(--color-text-label);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;line-height:1.4;overflow:hidden}.task-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;min-width:56px;display:flex}.task-time{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}.task-due-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-bg-subtle);white-space:nowrap;box-sizing:border-box;border-radius:10px;justify-content:center;align-items:center;gap:3px;padding:2px 10px;display:inline-flex}.task-due-badge.overdue{color:var(--color-text-secondary)}.task-due-badge img{display:block}.fab-area{z-index:20;align-items:center;gap:28px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.fab{color:#fff;cursor:pointer;z-index:20;background:0 0;border:none;justify-content:center;align-items:center;width:48px;height:48px;padding:0;transition:transform .15s;display:flex}.fab img{filter:drop-shadow(0 2px 6px #0000004d);display:block}.fab:hover{transform:scale(1.08)}.fab:active{transform:scale(.95)}.fab-side{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;padding:0;transition:transform .15s;display:flex}.fab-side img{filter:drop-shadow(0 2px 6px #0000004d);display:block}.fab-side:hover{transform:scale(1.12)}.fab-side:active{transform:scale(.92)}.fab-side-enter{animation:.3s ease-out fabSlideUp}.fab-side-exit{pointer-events:none;animation:.3s ease-in forwards fabSlideDown}.fab-side-action{pointer-events:none;animation:.35s ease-out forwards fabExpandFade}@keyframes fabSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fabSlideDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}@keyframes fabExpandFade{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.trash-confirm-overlay{z-index:100;background:#00000073;justify-content:center;align-items:flex-end;padding-bottom:40px;display:flex;position:fixed;inset:0}.trash-confirm-dialog{background:var(--color-bg-card);border-radius:var(--radius-lg);width:min(340px,90vw);padding:24px 24px 20px;box-shadow:0 8px 32px #0003}.trash-confirm-dialog p{font-size:var(--font-size-md);color:var(--color-text-primary);text-align:center;margin:0 0 16px;line-height:1.5}.trash-confirm-skip{font-size:var(--font-size-sm);color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;gap:8px;margin-bottom:16px;display:flex}.trash-confirm-skip input[type=checkbox]{cursor:pointer;width:16px;height:16px}.trash-confirm-actions{gap:12px;display:flex}.trash-confirm-cancel,.trash-confirm-ok{border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast);border:none;flex:1;padding:12px}.trash-confirm-cancel{background:var(--color-bg-subtle);color:var(--color-text-primary)}.trash-confirm-cancel:hover{background:var(--color-border-ui)}.trash-confirm-ok{color:#fff;background:#e53e3e}.trash-confirm-ok:hover{background:#c53030}.task-anim-fade-down{pointer-events:none;will-change:transform, opacity;animation:.35s cubic-bezier(.4,0,1,1) forwards fadeDown}.task-anim-slide-right{pointer-events:none;will-change:transform, opacity;animation:.35s cubic-bezier(.4,0,1,1) forwards slideRightFade}@keyframes fadeDown{0%{opacity:1;transform-origin:top;transform:translateY(0)scaleY(1)}to{opacity:0;transform-origin:top;transform:translateY(12px)scaleY(.8)}}@keyframes slideRightFade{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(80px)}}.detail-screen{background:var(--color-bg-page);min-height:100dvh}.detail-loading{justify-content:center;align-items:center;padding-top:120px;display:flex}.spinner{border:3px solid var(--color-border-ui);border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.detail-header{background:var(--color-bg-card);border-bottom:1px solid var(--color-border-ui);align-items:center;padding:16px 20px;display:flex}.back-btn{font-size:var(--font-size-base);color:var(--color-primary);cursor:pointer;font-weight:var(--font-weight-semibold);background:0 0;border:none;padding:4px 8px}.detail-body{padding:20px}.task-display{background:var(--color-bg-card);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-card);padding:20px}.detail-text{font-size:var(--font-size-md);color:var(--color-text-primary);word-break:break-word;white-space:pre-wrap;margin:0;line-height:1.7}.detail-text.completed{color:var(--color-text-muted);text-decoration:line-through}.detail-time{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:12px;display:block}.edit-area{background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px}.edit-area textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-size:var(--font-size-base);resize:vertical;box-sizing:border-box;outline:none;padding:12px;font-family:inherit}.edit-area textarea:focus{border-color:var(--color-primary)}.edit-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.detail-fab-area{z-index:20;align-items:center;gap:28px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.detail-fab{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;padding:0;transition:transform .15s;display:flex}.detail-fab img{filter:drop-shadow(0 2px 6px #0000004d);display:block}.detail-fab:hover{transform:scale(1.12)}.detail-fab:active{transform:scale(.92)}.detail-due-date-section{background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);margin-top:16px;padding:12px 20px}.detail-due-date-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex;position:relative}.quick-date-btn{border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);border-radius:20px;padding:5px 12px}.quick-date-btn:hover{background:var(--color-bg-subtle)}.quick-date-btn.selected{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.quick-date-btn.selected:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.calendar-btn{border:1px solid var(--color-border);background:var(--color-bg-card);cursor:pointer;width:32px;height:32px;color:var(--color-text-muted);transition:all var(--transition-fast);border-radius:8px;justify-content:center;align-items:center;padding:0;display:flex}.calendar-btn:hover{background:var(--color-bg-subtle)}.calendar-btn.selected{border-color:var(--color-primary);background:#339af01a}.calendar-btn img{display:block}.detail-custom-date-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary)}.due-date-hidden-input{opacity:0;clip:rect(0, 0, 0, 0);clip-path:inset(50%);pointer-events:none;width:1px;height:1px;position:absolute;bottom:0;left:0;overflow:hidden}.archive-screen{background:var(--color-bg-page);flex-direction:column;min-height:100dvh;display:flex}.archive-task-list{padding-bottom:24px!important}.empty-message{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);padding:48px 20px}.unarchive-btn{background:var(--color-info-bg);color:var(--color-info);border-radius:var(--radius-sm);padding:var(--space-sm) 14px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast);border:none;flex-shrink:0}.unarchive-btn:hover{background:var(--color-info-hover-bg)}.trash-screen{background:var(--color-bg-page);flex-direction:column;min-height:100dvh;display:flex}.trash-task-list{padding-bottom:24px!important}.trash-notice{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;border-bottom:1px solid var(--color-border-ui);margin:0;padding:12px 20px}.task-title-muted,.trash-days{color:var(--color-text-muted)}.trash-days-urgent{color:#e53e3e;font-weight:var(--font-weight-semibold)}.login-prompt p{font-size:var(--font-size-btn);color:var(--color-text-secondary);margin:0 0 8px;line-height:1.6}.login-benefits{font-size:var(--font-size-sm)!important;color:var(--color-text-label)!important}.google-btn{background:#4285f4}.google-btn:hover{background:#3367d6}.settings-screen{background:var(--color-bg-page);min-height:100dvh}.settings-body{padding:20px}.settings-section{margin-bottom:24px}.settings-section h2{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-label);text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px 4px}.settings-item{background:var(--color-bg-card);border-radius:var(--radius-md);width:100%;font-size:var(--font-size-base);color:var(--color-text-primary);cursor:pointer;box-shadow:var(--shadow-card);transition:background var(--transition-fast);text-align:left;border:none;justify-content:space-between;align-items:center;margin-bottom:4px;padding:16px;display:flex}.settings-item:hover{background:var(--color-bg-subtle)}.settings-item.danger{color:var(--color-danger)}.settings-item .arrow{color:var(--color-text-muted);font-size:16px}.terms-screen{background:var(--color-bg-page);flex-direction:column;min-height:100dvh;display:flex}.terms-body{box-sizing:border-box;flex:1;width:100%;max-width:680px;margin:0 auto;padding:20px}.terms-intro{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0 0 20px;line-height:1.6}.terms-section{background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);margin-bottom:16px;padding:20px}.terms-section h2{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 10px}.terms-section p,.terms-section li{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 8px;line-height:1.7}.terms-section ul{margin:0;padding-left:20px}.terms-section li{margin-bottom:4px}.terms-section p:last-child{margin-bottom:0}.terms-privacy-link{background:var(--color-info-bg);border-radius:var(--radius-md);color:var(--color-info);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-card);transition:background var(--transition-fast);align-items:center;gap:8px;margin-bottom:24px;padding:14px 16px;text-decoration:none;display:flex}.terms-privacy-link:hover{background:var(--color-info-hover-bg)}.terms-privacy-link svg{flex-shrink:0}.terms-privacy-link .link-arrow{margin-left:auto;font-size:16px}.terms-agreement{background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-card);margin-bottom:16px;padding:20px}.terms-checkbox-label{cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-primary);align-items:flex-start;gap:12px;line-height:1.5;display:flex}.terms-checkbox-label input[type=checkbox]{cursor:pointer;width:20px;height:20px;accent-color:var(--color-primary);flex-shrink:0;margin:2px 0 0}.terms-footer{box-sizing:border-box;width:100%;max-width:680px;margin:0 auto;padding:16px 20px 32px}.terms-agree-btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);width:100%;font-size:var(--font-size-btn);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast);border:none;padding:16px;display:block}.terms-agree-btn:hover:not(:disabled){background:var(--color-primary-hover)}.terms-agree-btn:active:not(:disabled){background:var(--color-primary-active)}.terms-agree-btn:disabled{background:var(--color-disabled);cursor:not-allowed}.terms-already-agreed{text-align:center;font-size:var(--font-size-sm);color:var(--color-success);background:var(--color-success-bg);border-radius:var(--radius-sm);margin-top:8px;padding:12px 16px}
