:root{--primary: #f89d9d;--secondary: #f6d8af;--gradient: linear-gradient(to right, #f89d9d, #f6d8af);--gradient-btn: linear-gradient(to right, #f89d9d, #f6c88a);--bg: #fdf8f5;--surface: #ffffff;--surface-hover: #fef5f0;--text: #4a3f3f;--text-light: #9e8e8e;--text-muted: #c0b0b0;--border: #f0e5e5;--border-focus: #f89d9d;--shadow-sm: 0 2px 8px rgba(248, 157, 157, .12);--shadow-md: 0 4px 20px rgba(248, 157, 157, .18);--shadow-lg: 0 8px 40px rgba(248, 157, 157, .22);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background-color:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100dvh;touch-action:pan-x pan-y}button{font-family:var(--font);cursor:pointer;border:none;background:none}input,select,textarea{font-family:var(--font)}.app{max-width:640px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.app-header{background:var(--gradient);padding:16px 20px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.header-content{display:flex;align-items:center;justify-content:space-between}.header-left{display:flex;flex-direction:column;gap:2px}.app-title{font-size:20px;font-weight:700;color:#fff;letter-spacing:.04em;text-shadow:0 1px 4px rgba(0,0,0,.1)}.header-date{font-size:12px;color:#fffffff2;font-weight:700}.settings-btn{width:40px;height:40px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;font-size:18px;transition:background .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.settings-btn:hover{background:#fff6}.app-main{flex:1;padding:16px 16px 100px;display:flex;flex-direction:column;gap:12px}.tab-nav{display:flex;background:var(--gradient);border-radius:var(--radius-lg);padding:5px;gap:4px}.tab-btn{flex:1;padding:9px 8px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#ffffffc7;background:transparent;transition:all .22s ease;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.tab-btn:hover{background:#ffffff38;color:#fff}.tab-btn.active{background:#fff;color:#d4707a;font-weight:700;box-shadow:0 2px 8px #0000001f}.tab-count{background:#ffffff40;border-radius:10px;padding:1px 6px;font-size:11px;font-weight:600;min-width:18px;text-align:center}.tab-btn.active .tab-count{background:#f89d9d;color:#fff}.discord-panel{background:var(--surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}.discord-body{padding:14px 16px 18px;display:flex;flex-direction:column;align-items:center;gap:12px}.discord-memo{width:100%;align-self:stretch;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text);background:var(--bg);resize:none;transition:border-color .2s;outline:none}.discord-memo:focus{border-color:var(--border-focus)}.discord-send-btn{align-self:center;padding:12px 36px;background:var(--gradient-btn);color:#fff;border-radius:var(--radius-xl);font-size:14px;font-weight:700;letter-spacing:.04em;box-shadow:0 3px 14px #f89d9d61;transition:all .2s;width:100%;max-width:260px}.discord-send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #f89d9d80}.discord-send-btn:active:not(:disabled){transform:translateY(0)}.discord-send-btn:disabled{opacity:.45;cursor:not-allowed}.discord-hint{font-size:12px;color:var(--text-muted);text-align:center;display:flex;align-items:center;gap:8px;justify-content:center}.test-send-btn{padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;border:1.5px solid var(--border);color:var(--text-light);background:var(--bg);transition:all .2s}.test-send-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.discord-result{font-size:13px;padding:8px 12px;border-radius:var(--radius-sm);text-align:center}.result-success{background:#ddf5e5;color:#2a8050}.result-error{background:#fde8e8;color:#c04848}.task-list{display:flex;flex-direction:column;gap:16px}.task-group{display:flex;flex-direction:column;gap:8px}.task-group-header{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.06em;padding:0 4px 0 10px;border-left:3px solid}.task-group-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.task-group-count{margin-left:auto;font-size:11px;font-weight:600;opacity:.6}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:10px}.empty-icon{font-size:48px;opacity:.6}.empty-text{font-size:16px;color:var(--text-light);font-weight:500}.empty-hint{font-size:13px;color:var(--text-muted)}.task-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;border:1.5px solid var(--border);transition:box-shadow .2s,transform .2s}.task-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.task-done{opacity:.65}.task-overdue{border-color:#f8c8c8}.task-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;gap:10px;-webkit-user-select:none;user-select:none}.task-card-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.category-badge{flex-shrink:0;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid;white-space:nowrap}.task-title-row{display:flex;flex-direction:column;min-width:0;gap:2px}.task-title{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-done .task-title{text-decoration:line-through;color:var(--text-muted)}.task-due{font-size:11px;color:var(--text-muted)}.due-overdue{color:#e05050;font-weight:600}.task-card-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.priority-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:12px;white-space:nowrap}.status-未着手{background:#f0ebe8;color:#8a7a7a}.status-進行中{background:linear-gradient(135deg,#fde8e8,#fef5e0);color:#c06a48}.status-完了{background:#ddf5e5;color:#2a8050}.expand-icon{font-size:10px;color:var(--text-muted)}.progress-bar-mini{height:3px;background:var(--bg);margin:0}.progress-fill-mini{height:100%;background:var(--gradient);transition:width .4s ease;border-radius:0 2px 2px 0}.task-card-body{padding:14px 16px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:14px}.task-field-row{display:flex;gap:16px}.task-field{display:flex;flex-direction:column;gap:6px;flex:1}.field-label{font-size:11px;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:6px}.progress-label-value{font-size:13px;font-weight:700;color:var(--primary);text-transform:none;letter-spacing:0}.field-select{padding:8px 10px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text);background:var(--bg);outline:none;transition:border-color .2s;cursor:pointer}.field-select:focus{border-color:var(--border-focus)}.priority-badge{align-self:flex-start;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.progress-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;background:var(--border);outline:none;cursor:pointer}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--gradient);cursor:pointer;box-shadow:0 2px 6px #f89d9d66;border:2px solid white}.progress-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary);cursor:pointer;border:2px solid white;box-shadow:0 2px 6px #f89d9d66}.progress-bar-full{height:8px;background:var(--bg);border-radius:8px;overflow:hidden;border:1px solid var(--border)}.progress-fill-full{height:100%;background:var(--gradient);border-radius:8px;transition:width .4s ease}.task-memo-text{font-size:13px;color:var(--text-light);background:var(--bg);padding:8px 10px;border-radius:var(--radius-sm);line-height:1.7}.task-actions{display:flex;gap:8px;justify-content:flex-end}.btn-edit{padding:7px 16px;border-radius:var(--radius-xl);font-size:12px;font-weight:600;background:var(--bg);color:var(--text-light);border:1.5px solid var(--border);transition:all .2s}.btn-edit:hover{background:var(--surface-hover);border-color:var(--primary);color:var(--primary)}.btn-delete{padding:7px 16px;border-radius:var(--radius-xl);font-size:12px;font-weight:600;background:var(--bg);color:var(--text-muted);border:1.5px solid var(--border);transition:all .2s}.btn-delete:hover{background:#fde8e8;border-color:#f8c8c8;color:#c04848}.fab{position:fixed;bottom:28px;right:calc(50% - 300px);width:56px;height:56px;border-radius:50%;background:var(--gradient-btn);color:#fff;font-size:28px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #f89d9d73;transition:all .25s ease;z-index:200;line-height:1}.fab:hover{transform:scale(1.1) translateY(-2px);box-shadow:0 8px 28px #f89d9d8c}.fab:active{transform:scale(.95)}@media(max-width:680px){.fab{right:20px}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a3f3f59;display:flex;align-items:flex-end;justify-content:center;z-index:300;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);width:100%;max-width:640px;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:92dvh;overflow-y:auto;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:1;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-title{font-size:17px;font-weight:700;color:var(--text)}.modal-close{width:32px;height:32px;border-radius:50%;background:var(--bg);color:var(--text-light);font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{background:#fde8e8;color:#c04848}.task-form,.settings-form{padding:20px;display:flex;flex-direction:column;gap:18px}.form-field{display:flex;flex-direction:column;gap:6px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-label{font-size:12px;font-weight:600;color:var(--text-light);letter-spacing:.04em;display:flex;align-items:center;gap:4px}.form-input,.form-select,.form-textarea{padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;color:var(--text);background:var(--bg);outline:none;transition:border-color .2s,box-shadow .2s;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #f89d9d26}.form-textarea{resize:vertical;line-height:1.6}.ai-hint{font-size:11px;color:var(--primary);font-weight:500}.ai-hint.loading{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.error-hint{font-size:12px;color:#c04848}.period-group{display:flex;gap:6px}.period-btn{flex:1;padding:10px 6px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:1.5px solid var(--border);color:var(--text-light);background:var(--bg);transition:all .2s}.period-btn.active{background:var(--gradient);border-color:transparent;color:#fff;box-shadow:0 2px 10px #f89d9d4d}.period-btn:hover:not(.active){background:var(--surface-hover);border-color:var(--primary);color:var(--primary)}.priority-group{display:flex;gap:6px}.priority-btn{flex:1;padding:9px 8px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:1.5px solid var(--border);color:var(--text-light);background:var(--bg);transition:all .2s}.priority-btn-高.active{background:#fde8e8;border-color:#e8726a;color:#e8726a}.priority-btn-中.active{background:#fef5e0;border-color:#d4956a;color:#d4956a}.priority-btn-低.active{background:#ddf5e5;border-color:#6aaa80;color:#6aaa80}.priority-btn:hover:not(.active){background:var(--surface-hover);border-color:var(--primary)}.form-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:4px;padding-bottom:8px}.btn-cancel{padding:11px 22px;border-radius:var(--radius-xl);font-size:14px;font-weight:500;color:var(--text-light);background:var(--bg);border:1.5px solid var(--border);transition:all .2s}.btn-cancel:hover{background:var(--surface-hover)}.btn-submit{padding:11px 28px;border-radius:var(--radius-xl);font-size:14px;font-weight:700;color:#fff;background:var(--gradient-btn);box-shadow:0 3px 12px #f89d9d59;transition:all .2s}.btn-submit:hover{transform:translateY(-1px);box-shadow:0 5px 18px #f89d9d73}.field-hint{font-size:12px;color:var(--text-muted)}.input-with-toggle{position:relative;display:flex;align-items:center}.input-with-toggle .form-input{padding-right:44px}.toggle-visibility{position:absolute;right:10px;font-size:16px;color:var(--text-muted);transition:color .2s}.toggle-visibility:hover{color:var(--text-light)}.carryover-modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0}.carryover-body{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.carryover-desc{font-size:13px;color:var(--text-light);text-align:center}.carryover-bulk{display:flex;align-items:center;gap:6px;background:var(--bg);padding:10px 14px;border-radius:var(--radius-md);flex-wrap:wrap}.bulk-label{font-size:12px;color:var(--text-muted);margin-right:2px}.bulk-btn{padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;background:#fff;border:1.5px solid var(--border);color:var(--text-light);transition:all .2s}.bulk-btn:hover{border-color:var(--primary);color:var(--primary);background:#fff5f5}.bulk-delete:hover{border-color:#e08080;color:#c04848;background:#fde8e8}.carryover-list{display:flex;flex-direction:column;gap:10px;max-height:50dvh;overflow-y:auto}.carryover-item{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:10px}.carryover-task-info{display:flex;flex-direction:column;gap:3px}.carryover-task-title{font-size:14px;font-weight:500;color:var(--text)}.carryover-task-meta{font-size:11px;color:var(--text-muted)}.carryover-choices{display:flex;gap:6px;flex-wrap:wrap}.choice-btn{padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;background:var(--bg);border:1.5px solid var(--border);color:var(--text-light);transition:all .2s}.choice-btn.chosen{background:var(--gradient);border-color:transparent;color:#fff}.choice-btn.chosen-delete{background:#fde8e8;border-color:#e08080;color:#c04848}.choice-btn:hover:not(.chosen){border-color:var(--primary);color:var(--primary)}.carryover-footer{display:flex;gap:10px;justify-content:flex-end;padding:14px 20px 20px;border-top:1px solid var(--border)}.settings-note{background:var(--bg);border-radius:var(--radius-sm);padding:10px 14px;border:1px solid var(--border)}.settings-note p{font-size:12px;color:var(--text-muted);line-height:1.7}.modal::-webkit-scrollbar{width:4px}.modal::-webkit-scrollbar-track{background:transparent}.modal::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
