:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f8f9fb;--border:#e5e8ee;--border-strong:#d3d8e2;--text:#171c26;--text-2:#4b5565;--text-3:#8a94a6;--primary:#4f46e5;--primary-hover:#4338ca;--primary-soft:#eef0fe;--danger:#dc2626;--danger-soft:#fef2f2;--success:#059669;--success-soft:#ecfdf5;--warn:#b45309;--warn-soft:#fffbeb;--ai:#7c3aed;--ai-soft:#f5f0ff;--radius:12px;--radius-sm:8px;--shadow-card:0 1px 2px #1018280a, 0 1px 3px #1018280f;--shadow-pop:0 12px 32px #10182829;--font:"Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Segoe UI", sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:8px 12px;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #4f46e524}textarea{resize:vertical;min-height:88px;line-height:1.7}input::placeholder,textarea::placeholder{color:var(--text-3)}button{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:600;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--primary);color:#fff}button.primary:hover:not(:disabled){background:var(--primary-hover)}button.ghost{background:var(--surface);border-color:var(--border);color:var(--text-2)}button.ghost:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}button.small{padding:5px 10px;font-size:13px}.linkButton{color:var(--primary);background:0 0;border:none;padding:6px 8px;font-weight:600}.linkButton:hover{text-decoration:underline}.iconBtn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-2);padding:0;font-size:15px;line-height:1}.iconBtn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.iconBtn.danger{color:var(--text-3);background:0 0;border-color:#0000}.iconBtn.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger);border-color:#0000}.loading{min-height:100vh;color:var(--text-2);place-items:center;font-weight:600;display:grid}.appShell{min-height:100vh}.topbar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#ffffffdb;align-items:center;gap:24px;height:58px;padding:0 28px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;display:flex}.brandMark{background:linear-gradient(135deg, var(--primary) 0%, var(--ai) 100%);color:#fff;letter-spacing:.02em;border-radius:9px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:800;display:grid}.brandName{letter-spacing:-.01em;font-size:15px;font-weight:700}.dateNav{align-items:center;gap:8px;margin:0 auto;display:flex}.dateNav input[type=date]{padding:5px 10px;font-weight:600}.topbarRight{align-items:center;gap:12px;display:flex}.userEmail{color:var(--text-3);font-size:13px}.page{gap:20px;max-width:1440px;margin:0 auto;padding:28px 28px 64px;display:grid}.pageHead{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;display:flex}.pageHead h1{letter-spacing:-.02em;margin:0;font-size:26px;font-weight:800}.stats{gap:12px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:108px;box-shadow:var(--shadow-card);gap:2px;padding:10px 16px;display:grid}.statValue{letter-spacing:-.01em;font-size:17px;font-weight:800}.statLabel{color:var(--text-3);font-size:12px}.dashboard{grid-template-columns:minmax(320px,3fr) minmax(360px,4fr) minmax(320px,3fr);align-items:start;gap:20px;display:grid}.col{gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:20px}.cardHead{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.cardHead h2{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:700}.cardHint{color:var(--text-3);font-size:12px}.muted{color:var(--text-2);margin:0 0 12px;font-size:13px}.empty{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-3);text-align:center;margin:6px 0;padding:10px 12px;font-size:13px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rowActions{flex-shrink:0;align-items:center;gap:6px;display:flex}.inlineForm{align-items:center;gap:8px;margin-bottom:14px;display:flex}.inlineForm input:not([type=time]),.inlineForm .grow{flex:1;min-width:0}.scheduleForm{flex-wrap:wrap}.timeSep{color:var(--text-3)}.inlineWarning{border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn);margin:0 0 12px;padding:8px 12px;font-size:13px;font-weight:600}.formError{color:var(--danger);margin:12px 0 0;font-size:13px;font-weight:600}.prioritySection{border-top:1px solid var(--border);padding:10px 0 4px}.prioritySection:first-of-type{border-top:none}.priorityHead{align-items:center;gap:8px;margin-bottom:8px;display:flex}.priorityBadge{color:#fff;border-radius:7px;place-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:grid}.priorityBadge.pS{background:#e11d48}.priorityBadge.pA{background:#d97706}.priorityBadge.pB{background:#64748b}.priorityCount{color:var(--text-3);font-size:12px}.taskRow{align-items:center;gap:8px;padding:4px 0;display:flex}.taskRow .taskTitle{background:0 0;border-color:#0000;flex:1;min-width:0;padding:6px 8px}.taskRow .taskTitle:hover{border-color:var(--border);background:var(--surface)}.taskRow .taskTitle:focus{background:var(--surface)}.taskRow.done .taskTitle{color:var(--text-3);text-decoration:line-through}.statusChips{flex-shrink:0;gap:4px;display:flex}.statusChip{border:1px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--text-3);border-radius:999px;padding:0;font-size:12px;font-weight:700}.statusChip:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.statusChip.done.active{background:var(--success-soft);border-color:var(--success);color:var(--success)}.statusChip.partial.active{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.statusChip.missed.active{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.timeline{gap:8px;display:grid}.timelineRow{gap:12px;display:flex}.timelineTime{width:44px;color:var(--text-2);font-variant-numeric:tabular-nums;text-align:right;flex-direction:column;flex-shrink:0;justify-content:space-between;padding:4px 0;font-size:12px;font-weight:600;display:flex}.timelineTimeEnd{color:var(--text-3);font-weight:500}.timelineBody{border-radius:var(--radius-sm);border:1px solid var(--border);border-left:3px solid var(--primary);background:var(--surface-2);flex:1;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 14px;display:flex}.timelineRow.google .timelineBody{border-left-color:var(--success)}.timelineText{gap:2px;min-width:0;display:grid}.timelineText strong{overflow-wrap:anywhere;font-size:14px}.sourceTag{color:var(--text-3);font-size:11px;font-weight:600}.timelineRow.google .sourceTag{color:var(--success)}.runningPill{background:var(--success-soft);color:var(--success);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.runningPill:before{content:"";background:var(--success);border-radius:999px;width:7px;height:7px;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.logs{gap:8px;margin-bottom:14px;display:grid}.logRow{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.logRow.running{border-color:var(--success);background:var(--success-soft)}.logText{gap:2px;min-width:0;display:grid}.logText strong{overflow-wrap:anywhere;font-size:14px}.logText span{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:12px}.logEdit{gap:8px;width:100%;display:grid}.logEditTimes{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.logEditTimes .rowActions{margin-left:auto}.manualLogBox{border-top:1px solid var(--border);padding-top:12px}.manualLogBox summary{cursor:pointer;color:var(--text-2);font-size:13px;font-weight:600}.manualLogBox summary:hover{color:var(--text)}.manualLogBox p{margin-top:10px}.manualLogBox form{margin:10px 0 0}.syncDot{color:var(--text-3);align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.syncDot:before{content:"";background:var(--text-3);border-radius:999px;width:8px;height:8px}.syncDot.on{color:var(--success)}.syncDot.on:before{background:var(--success)}.oauthHint{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.oauthHint summary{cursor:pointer;color:var(--text-2);font-size:13px;font-weight:600}.oauthHint p{color:var(--text-2);margin:10px 0;font-size:13px}.oauthHint code{overflow-wrap:anywhere;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);margin-bottom:10px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;display:block}.aiButton{background:var(--ai-soft);color:var(--ai);border-color:#0000}.aiButton:hover:not(:disabled){background:#ece2ff}.aiComment{border-radius:var(--radius-sm);background:var(--ai-soft);border:1px solid #e4d7ff;margin-bottom:14px;padding:12px 14px}.aiCommentLabel{color:var(--ai);letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.aiComment p{color:var(--text-2);margin:0;font-size:13px}.reflection{gap:14px;display:grid}.rateLabel{color:var(--text-2);gap:6px;font-size:13px;font-weight:600;display:grid}.rateLabel strong{color:var(--text);font-size:15px}.rateLabel input[type=range]{box-shadow:none;accent-color:var(--primary);border:none;padding:0}.reflectionGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.reflectionGrid label{color:var(--text-2);align-content:start;gap:6px;font-size:13px;font-weight:600;display:grid}.exportSplit{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.exportPane{align-content:start;gap:10px;display:grid}.exportPane h3{color:var(--text-2);margin:0;font-size:13px;font-weight:700}.exportPane textarea{background:var(--surface-2);width:100%;min-height:280px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.8}.toast{z-index:50;border-radius:var(--radius);color:#f4f6fb;max-width:420px;box-shadow:var(--shadow-pop);background:#1c2333;padding:12px 18px;font-size:13px;font-weight:600;animation:.22s ease-out toastIn;position:fixed;bottom:24px;right:24px}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.authShell{background:radial-gradient(720px 360px at 12% -8%, #4f46e51a, transparent 70%), radial-gradient(640px 320px at 92% 6%, #7c3aed14, transparent 70%), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.authCard{background:var(--surface);border:1px solid var(--border);border-radius:18px;width:min(440px,100%);padding:36px;box-shadow:0 24px 64px #1018281a}.authBrand{align-items:center;gap:10px;margin-bottom:22px;display:flex}.authBrand .brandName{font-size:16px}.authCard h1{letter-spacing:-.02em;margin:0 0 8px;font-size:21px;font-weight:800;line-height:1.4}.authLead{color:var(--text-2);margin:0 0 22px;font-size:13px}.authTabs{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);grid-template-columns:1fr 1fr;gap:4px;margin-bottom:18px;padding:4px;display:grid}.authTabs button{color:var(--text-3);border-radius:6px;padding:7px}.authTabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-card)}.stack{gap:10px;display:grid}.stack input{padding:10px 12px}.stack button.primary{margin-top:4px;padding:10px}@media (width<=1200px){.dashboard{grid-template-columns:1fr 1fr}.colRight{grid-column:span 2}.reflectionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=800px){.topbar{flex-wrap:wrap;gap:10px;height:auto;padding:10px 16px}.dateNav{margin:0}.page{padding:16px 16px 48px}.dashboard{grid-template-columns:1fr}.colRight{grid-column:auto}.exportSplit,.reflectionGrid{grid-template-columns:1fr}.stats{flex-wrap:wrap}}
