:root{--bg: #f2f1ec;--surface: #ffffff;--ink: #2d2a26;--muted: #8a857d;--border: #e2ded6;--accent: #4a7c59;--accent-ink: #ffffff;--danger: #c05b5b;--sun: #c05b5b;--sat: #2e6da4}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Hiragino Sans,Noto Sans JP,sans-serif;font-size:14px}button{font:inherit;color:inherit}input,select{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:inherit}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.app{display:flex;flex-direction:column;height:100%}.app-header{display:flex;align-items:center;gap:16px;padding:10px 18px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:17px}.tabs{display:flex;gap:4px}.tab{border:none;background:transparent;padding:7px 14px;border-radius:8px;cursor:pointer;color:var(--muted)}.tab.active{background:var(--accent);color:var(--accent-ink)}.header-note{margin-left:auto;color:var(--muted);font-size:12px}.app-main{flex:1;overflow:auto;padding:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}.btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:5px 11px;cursor:pointer}.btn:hover{background:#f6f4ef}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:#3e6a4c}.btn.ghost{border-color:transparent;color:var(--muted)}.btn.small{padding:3px 9px;font-size:12px}.empty{color:var(--muted)}.hint{color:var(--muted);font-size:12px;margin:10px 0 0}.dot{width:10px;height:10px;border-radius:50%;flex:none}.dot.big{width:14px;height:14px}.icon-btn{border:none;background:transparent;cursor:pointer;border-radius:6px;padding:2px 5px;font-size:13px}.icon-btn:hover{background:#eee9e0}.inline-editor{display:flex;gap:6px;padding:6px 4px;align-items:center}.inline-editor input{flex:1;min-width:0}.calendar-view{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;max-width:1200px;margin:0 auto;align-items:start}.cal-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}.cal-title{margin:0 4px;font-size:17px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-head{border-bottom:1px solid var(--border)}.cal-wday{text-align:center;padding:4px 0;font-size:12px;color:var(--muted)}.wd-0{color:var(--sun)}.wd-6{color:var(--sat)}.cal-body{border-left:1px solid var(--border)}.cal-cell{min-height:92px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:4px;cursor:pointer;overflow:hidden}.cal-cell:hover{background:#faf9f5}.cal-cell.dim{background:#f7f6f1;color:var(--muted)}.cal-cell.selected{outline:2px solid var(--accent);outline-offset:-2px;border-radius:4px}.cal-day{font-size:12px;padding:1px 5px;display:inline-block;border-radius:999px}.cal-cell.today .cal-day{background:var(--accent);color:var(--accent-ink);font-weight:700}.chips{display:flex;flex-direction:column;gap:2px;margin-top:2px}.chip{font-size:11px;line-height:1.35;padding:1px 4px 1px 6px;border-left:3px solid transparent;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.chip-task{border:1px solid var(--border);border-left-width:3px;background:var(--surface)}.chip.more{color:var(--muted)}.chip-time{font-weight:600;margin-right:3px}.day-detail{position:sticky;top:0}.detail-title{margin:0 0 10px;font-size:15px}.detail-row{display:flex;align-items:center;gap:8px;padding:6px 2px;border-bottom:1px dashed var(--border)}.detail-row.done{color:var(--muted);text-decoration:line-through}.detail-time{color:var(--muted);font-size:12px;min-width:84px}.quick-add{display:flex;gap:6px;margin-top:12px}.quick-add select{max-width:110px}.quick-add input{flex:1;min-width:0}.task-view{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;max-width:1100px;margin:0 auto;align-items:start}.side-title{margin:0 0 8px;font-size:13px;color:var(--muted)}.project-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;cursor:pointer}.project-row:hover{background:#f6f4ef}.project-row.active{background:#ecf2ed}.project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count{color:var(--muted);font-size:12px}.icon-btn.subtle{opacity:0}.project-row:hover .icon-btn.subtle{opacity:1}.add-project{width:100%;text-align:left;margin-top:6px}.task-header{display:flex;align-items:center;gap:10px}.task-header h2{margin:0;font-size:18px;flex:1}.palette{display:flex;gap:4px}.swatch{width:16px;height:16px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.swatch.current{border-color:var(--ink)}.filter-row{display:flex;gap:0;margin:12px 0}.seg{border:1px solid var(--border);background:var(--surface);padding:4px 12px;cursor:pointer;margin-left:-1px}.seg:first-child{border-radius:8px 0 0 8px;margin-left:0}.seg:last-child{border-radius:0 8px 8px 0}.seg.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.add-row{display:flex;gap:6px;margin-bottom:12px}.add-row input:first-child{flex:1;min-width:0}.task-row{display:flex;align-items:center;gap:8px;padding:7px 4px;border-bottom:1px solid #f0ede6}.task-row.done .task-title{color:var(--muted);text-decoration:line-through}.task-title{cursor:text}.edit-input{flex:1}.due-badge{font-size:11px;color:var(--accent);border:1px solid currentColor;border-radius:999px;padding:0 7px;flex:none}.due-badge.overdue{color:var(--danger)}.tag-chip{font-size:11px;background:#efece5;border-radius:999px;padding:1px 4px 1px 8px;display:inline-flex;align-items:center;gap:2px}.tag-x{border:none;background:none;cursor:pointer;color:var(--muted);padding:0 3px}.row-actions{margin-left:auto;display:flex;gap:2px;opacity:0}.task-row:hover .row-actions{opacity:1}@media(max-width:800px){.app-main{padding:10px}.calendar-view,.task-view{grid-template-columns:1fr}.cal-cell{min-height:64px}.chip{font-size:10px}.day-detail{position:static}.header-note{display:none}.row-actions,.icon-btn.subtle{opacity:1}}.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:10px}.login-title{margin:0 0 4px;font-size:20px}.login-lead{margin:0 0 6px;color:var(--muted);font-size:13px}.login-error{margin:0;color:var(--danger);font-size:13px}.btn:disabled{opacity:.5;cursor:default}.banner{padding:8px 18px;font-size:13px;cursor:pointer}.banner.error{background:#fbe9e9;color:#8a2f2f;border-bottom:1px solid #f0c9c9}.banner-x{float:right;color:inherit;opacity:.6}.empty.center{text-align:center;margin-top:40px}.task-view.readonly .row-actions,.task-view.readonly .add-row,.task-view.readonly .add-project,.task-view.readonly .palette,.task-view.readonly .icon-btn.subtle{display:none}.task-view.readonly input[type=checkbox]{pointer-events:none}.app-header .btn.small{margin-left:8px}
