:root{--bg: #f4f6f8;--card: #ffffff;--border: #e2e8f0;--text: #1f2933;--muted: #64748b;--primary: #2563eb;--primary-dark: #1d4ed8;--danger: #dc2626;--high: #dc2626;--medium: #d97706;--low: #16a34a;--status-todo: #64748b;--status-in_progress: #2563eb;--status-done: #16a34a;--due: #dc2626;--shadow: 0 1px 3px rgba(0, 0, 0, .08)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:var(--card);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.site-header .brand{font-weight:700;font-size:1.2rem;text-decoration:none;color:var(--text)}.site-header nav{display:flex;align-items:center;gap:16px}.site-header nav a{text-decoration:none;color:var(--primary)}.site-header nav .user{color:var(--muted);font-size:.9rem}.site-header nav .workspace{color:var(--text);font-size:.9rem;font-weight:600}.container{max-width:900px;margin:0 auto;padding:24px 16px 64px}h1{font-size:1.5rem}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}.form label{display:flex;flex-direction:column;font-size:.85rem;color:var(--muted);gap:4px}.form input,.form select,.form textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text)}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--primary);outline-offset:0}button{cursor:pointer}.btn-primary{background:var(--primary);color:#fff;border:none;border-radius:6px;padding:9px 18px;font:inherit;font-weight:600}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-small{display:inline-block;background:#f1f5f9;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 12px;font-size:.85rem;text-decoration:none}.btn-small.danger{color:var(--danger);border-color:#fecaca;background:#fef2f2}.btn-danger{display:inline-block;background:var(--danger);color:#fff;border:1px solid var(--danger);border-radius:6px;padding:8px 16px;font:inherit;font-weight:600;cursor:pointer}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{opacity:.55;cursor:default}.danger-zone{border:1px solid #fecaca;margin-top:24px}.danger-title{margin:0 0 8px;color:var(--danger);font-size:1rem}.link-btn{background:none;border:none;color:var(--primary);font:inherit;padding:0}.inline{display:inline;margin:0}.muted{color:var(--muted);font-size:.9rem}.error{background:#fef2f2;border:1px solid #fecaca;color:var(--danger);padding:8px 12px;border-radius:6px}.empty{color:var(--muted);text-align:center;padding:32px}.auth-card{max-width:380px;margin:48px auto}.auth-card .form{display:flex;flex-direction:column;gap:12px}.consent-account{display:flex;align-items:center;gap:12px;padding:12px;margin:12px 0;border:1px solid var(--border);border-radius:8px;background:var(--surface, #f8fafc)}.consent-name{font-weight:600}.consent-actions{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:8px}.consent-actions .btn-primary{width:100%}.task-form,.category-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.task-form .grow,.category-form .grow{flex:1 1 160px}details.card summary{cursor:pointer;font-weight:600;margin-bottom:12px}.search-bar{display:flex;align-items:center;gap:8px}.search-bar .search-icon{color:var(--muted)}.search-bar .search-input{flex:1;font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text)}.search-bar .search-input:focus{outline:2px solid var(--primary);outline-offset:0}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px}.pagination .btn-small:disabled{opacity:.5;cursor:default}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.filter-bar .clear-link{align-self:center;text-decoration:none}.task-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.task-item{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}.task-item.priority-high{border-left-color:var(--high)}.task-item.priority-medium{border-left-color:var(--medium)}.task-item.priority-low{border-left-color:var(--low)}.task-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;cursor:pointer}.task-row:hover{background:#f8fafc}.task-item .check{background:none;border:none;font-size:1.4rem;line-height:1;padding:0;color:var(--primary);cursor:pointer}.task-open-hint{align-self:center;color:var(--muted);font-size:1.3rem;line-height:1}.drag-handle{align-self:center;color:var(--muted);cursor:grab;font-size:1rem;line-height:1;-webkit-user-select:none;user-select:none}.task-item[draggable=true] .task-row{cursor:grab}.task-item.drag-over{outline:2px dashed var(--primary);outline-offset:-2px}.subtask-tree{list-style:none;margin:0;padding:0 0 6px 22px;display:flex;flex-direction:column;gap:0}.subtask-tree .task-item{border:none;border-radius:0;box-shadow:none;background:transparent;border-left:3px solid var(--border);margin-left:4px}.subtask-tree .task-row{padding:8px 12px}.subtask-tree .task-title{font-weight:500;font-size:.95rem}.task-main{flex:1;min-width:0}.task-title{font-weight:600}.task-item.done .task-title{text-decoration:line-through;color:var(--muted)}.task-desc{color:var(--muted);font-size:.9rem}.task-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.badge{display:inline-block;font-size:.75rem;padding:2px 8px;border-radius:999px;background:#f1f5f9;color:var(--text)}.badge.cat{color:#fff}.badge.status-todo{background:color-mix(in srgb,var(--status-todo) 16%,#fff);color:var(--status-todo)}.badge.status-in_progress{background:color-mix(in srgb,var(--status-in_progress) 16%,#fff);color:var(--status-in_progress)}.badge.status-done{background:color-mix(in srgb,var(--status-done) 16%,#fff);color:var(--status-done)}.badge.prio-high{background:color-mix(in srgb,var(--high) 16%,#fff);color:var(--high)}.badge.prio-medium{background:color-mix(in srgb,var(--medium) 18%,#fff);color:var(--medium)}.badge.prio-low{background:color-mix(in srgb,var(--low) 16%,#fff);color:var(--low)}.badge.due.overdue{background:color-mix(in srgb,var(--due) 16%,#fff);color:var(--due);font-weight:600}.task-actions{display:flex;align-items:center;gap:6px}.edit-form{display:flex;flex-direction:column;gap:12px}.edit-form .row{display:flex;flex-wrap:wrap;gap:12px}.edit-form .row label{flex:1 1 140px}.edit-form .actions{display:flex;gap:8px;align-items:center}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.stack-form{display:flex;flex-direction:column;gap:14px}.stack-form .section-title,.stack-form .avatar-edit{margin-bottom:0}.category-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.category-item{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:0}.category-item .swatch{width:18px;height:18px;border-radius:50%;border:1px solid var(--border)}.category-item .category-name{font-weight:600;flex:1}.ws-switcher{font:inherit;font-size:.9rem;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;max-width:220px}.badge.assignee{display:inline-flex;align-items:center;gap:4px;background:#e0e7ff;color:#3730a3}.badge.role{background:#e2e8f0;color:var(--text)}.badge.tag{color:#fff}.badge.subtasks{background:#ede9fe;color:#6d28d9}.badge.comments{background:#f1f5f9;color:var(--muted)}.badge.recurrence{background:#e0f2fe;color:#0369a1}.recurrence-field{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.recurrence-interval .interval-inline{display:flex;align-items:center;gap:6px}.recurrence-interval input[type=number]{width:64px}.recurrence-weekdays{display:flex;flex-direction:column;gap:4px}.weekday-toggles{display:flex;gap:4px}.weekday-toggle{width:32px;height:32px;border:1px solid var(--border, #cbd5e1);border-radius:6px;background:var(--card, #fff);color:var(--text, inherit);cursor:pointer;font-size:.9rem}.weekday-toggle.on{background:#0369a1;border-color:#0369a1;color:#fff}.recurrence-hint{flex:1 1 100%;margin:0;font-size:.85rem}.tags-field{flex:1 1 100%;display:flex;flex-direction:column;gap:4px}.field-label{font-size:.85rem;color:var(--muted)}.tag-selector{display:flex;flex-wrap:wrap;gap:6px}.tag-chip{font:inherit;font-size:.8rem;padding:3px 10px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text)}.tag-chip.on{font-weight:600}.tag-edit-name{flex:1}.section-title{font-size:1.05rem;margin:0 0 12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:28px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;box-shadow:var(--shadow);text-align:center}.stat-card .stat-value{font-size:1.9rem;font-weight:700;line-height:1.1}.stat-card .stat-label{font-size:.85rem;color:var(--muted);margin-top:4px}.stat-card.danger .stat-value{color:var(--danger)}.stat-card.warn .stat-value{color:var(--medium)}.stat-card.ok .stat-value{color:var(--low)}.dash-section{margin-bottom:28px}.progress{height:8px;background:var(--border);border-radius:999px;overflow:hidden}.progress .progress-fill{display:block;height:100%;background:var(--low);border-radius:999px;transition:width .2s ease}.dash-progress{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;box-shadow:var(--shadow);margin-bottom:20px}.dash-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.dash-progress-title{font-size:1.05rem;font-weight:600}.dash-progress-pct{font-size:1.4rem;font-weight:700;color:var(--low)}.dash-progress-caption{font-size:.8rem;margin-top:6px}.subtask-progress{display:flex;align-items:center;gap:10px;margin:-4px 0 14px}.subtask-progress .progress{flex:1}.subtask-progress-pct{font-size:.85rem;font-weight:600;color:var(--muted);min-width:3ch;text-align:right}.badge.subtasks.progress-badge{display:inline-flex;align-items:center;gap:6px}.mini-progress{display:inline-block;width:42px;height:6px;background:#6d28d938;border-radius:999px;overflow:hidden}.mini-progress-fill{display:block;height:100%;background:#6d28d9;border-radius:999px}.cal-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px}.cal-toolbar .cal-title{margin-left:8px;font-size:1.1rem;font-weight:700}.calendar{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);background:#f8fafc;border-bottom:1px solid var(--border)}.cal-weekday{padding:8px 4px;text-align:center;font-size:.8rem;font-weight:600;color:var(--muted)}.cal-weekday.sun{color:var(--danger)}.cal-weekday.sat{color:var(--primary)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-cell{min-height:96px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:4px;display:flex;flex-direction:column;gap:3px;overflow:hidden}.cal-cell:nth-child(7n){border-right:none}.cal-cell.out{background:#fafbfc}.cal-cell.out .cal-daynum{color:var(--border)}.cal-cell.today{background:#eff6ff}.cal-daynum{font-size:.8rem;font-weight:600;text-align:right;color:var(--text)}.cal-daynum.sun{color:var(--danger)}.cal-daynum.sat,.cal-cell.today .cal-daynum{color:var(--primary)}.cal-tasks{display:flex;flex-direction:column;gap:2px}.cal-chip{display:block;width:100%;text-align:left;font:inherit;font-size:.72rem;line-height:1.4;padding:1px 6px;border-radius:4px;background:#f1f5f9;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;border-left:3px solid var(--border);cursor:pointer}.cal-chip:hover{filter:brightness(.96)}.cal-chip.prio-high{border-left-color:var(--high)}.cal-chip.prio-medium{border-left-color:var(--medium)}.cal-chip.prio-low{border-left-color:var(--low)}.cal-chip.overdue{background:color-mix(in srgb,var(--due) 20%,#fff);color:var(--due)}.cal-chip.done{color:var(--muted);text-decoration:line-through}.cal-more{font-size:.7rem;color:var(--muted);padding-left:6px}@media(max-width:640px){.cal-cell{min-height:72px}.cal-chip{font-size:.65rem;padding:1px 4px}}.subtask-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:6px}.subtask-item{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--card)}.subtask-item.drag-over{outline:2px dashed var(--primary);outline-offset:-2px}.subtask-item .check{background:none;border:none;font-size:1.2rem;line-height:1;padding:0;color:var(--primary);cursor:pointer;margin-top:2px}.subtask-item .subtask-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit}.subtask-item .subtask-main:hover .subtask-title{color:var(--primary)}.subtask-item .subtask-title{font-weight:500}.subtask-meta{display:flex;flex-wrap:wrap;gap:6px}.subtask-item.done .subtask-title{text-decoration:line-through;color:var(--muted)}.breadcrumb{margin:0 0 8px;font-size:.85rem}.delete-task{margin-left:auto}.subtask-add-title{font-size:.95rem;margin:20px 0 12px}.comment-list{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:12px}.comment-item{border-bottom:1px solid var(--border);padding-bottom:10px}.comment-head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.comment-author{font-weight:600;font-size:.9rem}.comment-time{font-size:.75rem}.comment-body{white-space:pre-wrap}.comment-edit textarea,.comment-form textarea{width:100%}.comment-actions{display:flex;gap:6px;margin-top:6px}.comment-form{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.members-list{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-direction:column;gap:8px}.member-item{display:flex;align-items:center;gap:12px;margin-bottom:0}.member-item .member-name{font-weight:600}.member-item .member-email{flex:1}.member-item .role-select{font:inherit;padding:4px 8px;border:1px solid var(--border);border-radius:6px}.member-form,.ws-create-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.member-form h2,.ws-create-form h2{flex:1 1 100%;margin:0}.member-form .grow,.ws-create-form .grow{flex:1 1 200px}.member-form .muted{flex:1 1 100%;margin:0}.account{position:relative}.account-btn{display:flex;align-items:center;gap:8px;background:none;border:1px solid transparent;border-radius:999px;padding:4px 8px 4px 4px;font:inherit;color:var(--text)}.account-btn:hover{background:#f1f5f9;border-color:var(--border)}.account-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:.85rem;font-weight:700}.account-name{font-size:.9rem;font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-caret{color:var(--muted);font-size:.7rem}.account-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000001f;padding:6px;z-index:50}.account-menu-head{padding:8px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}.account-menu-name{font-weight:600}.account-menu-email{font-size:.8rem}.account-menu-item{display:block;width:100%;text-align:left;background:none;border:none;border-radius:6px;padding:9px 10px;font:inherit;color:var(--text);text-decoration:none}.account-menu-item:hover:not(:disabled){background:#f1f5f9}.account-menu-item:disabled{color:var(--muted);cursor:default}.account-menu-item.danger{color:var(--danger)}.home{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:28px;align-items:start}.home-active-ws{margin-top:-8px}.home-ws h1{margin-top:0}@media(max-width:760px){.home{grid-template-columns:1fr;gap:8px}}.home-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.seg{display:inline-flex;gap:2px;padding:3px;background:#eef2f7;border-radius:10px}.seg-btn{border:none;background:none;font:inherit;font-size:.9rem;color:var(--muted);padding:6px 14px;border-radius:8px;cursor:pointer}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--card);color:var(--primary);font-weight:600;box-shadow:var(--shadow)}.settings-layout{display:grid;grid-template-columns:176px 1fr;gap:28px;align-items:start}.settings-nav{position:sticky;top:16px;display:flex;flex-direction:column;gap:2px}.settings-nav-item{text-align:left;border:none;background:none;font:inherit;font-size:.9rem;color:var(--muted);padding:8px 12px;border-radius:8px;cursor:pointer}.settings-nav-item:hover{background:var(--card);color:var(--text)}.settings-nav-item.active{background:var(--card);color:var(--primary);font-weight:600;box-shadow:var(--shadow)}.settings-content{min-width:0}.settings-section{scroll-margin-top:16px}.settings-section+.settings-section{margin-top:8px}.settings-flash{margin-top:0}@media(max-width:760px){.settings-layout{grid-template-columns:1fr;gap:12px}.settings-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:6px}}.badge.ws-tag{background:#ede9fe;color:#6d28d9;display:inline-flex;align-items:center;gap:4px}.task-open{flex:1;min-width:0;display:block;text-align:left;background:none;border:none;padding:12px 16px;margin:0;font:inherit;color:inherit;cursor:pointer}.task-open:hover .task-title{color:var(--primary)}.ws-list{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:8px}.ws-card{display:flex;align-items:stretch;gap:6px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}.ws-card.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.ws-card[draggable=true]{cursor:grab}.ws-card.drag-over{outline:2px dashed var(--primary);outline-offset:-2px}.ws-drag{display:flex;align-items:center;justify-content:center;padding:0 8px;background:#f8fafc;border-right:1px solid var(--border);color:var(--muted);cursor:grab;-webkit-user-select:none;user-select:none}.ws-open{flex:1;display:flex;flex-direction:column;gap:6px;background:none;border:none;text-align:left;padding:12px 14px;font:inherit;color:var(--text)}.ws-open:hover{background:#f8fafc}.ws-name{font-weight:600;display:inline-flex;align-items:center;gap:8px}.ws-meta{display:flex;align-items:center;gap:8px}.badge.ws-active-badge{background:#dbeafe;color:var(--primary-dark)}.ws-nav{margin-bottom:20px;border-bottom:1px solid var(--border)}.ws-nav-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-bottom:10px}.ws-nav-home{text-decoration:none;color:var(--primary);font-size:.9rem}.ws-nav-title{font-weight:700;display:inline-flex;align-items:center;gap:6px}.ws-nav-crumb{display:inline-flex;align-items:center;gap:6px;min-width:0}.ws-nav-sep{color:var(--muted)}.ws-nav-crumb-link{text-decoration:none;color:var(--primary);font-size:.9rem;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-nav-crumb-current{font-size:.9rem;font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-nav-tabs{display:flex;flex-wrap:wrap;gap:4px}.ws-tab{text-decoration:none;color:var(--muted);padding:8px 14px;border-radius:8px 8px 0 0;font-size:.92rem;border-bottom:2px solid transparent}.ws-tab:hover{color:var(--text);background:#f1f5f9}.ws-tab.active{color:var(--primary);font-weight:600;border-bottom-color:var(--primary)}.badge.assignee.agent{background:#ede9fe;color:#6d28d9}.category-item .swatch{display:inline-flex;align-items:center;justify-content:center;font-size:.7rem}.avatar,.ws-icon,.agent-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff;font-weight:700;line-height:1;background-size:cover;background-position:center;background-repeat:no-repeat;vertical-align:middle;overflow:hidden}.avatar,.agent-icon{border-radius:50%}.ws-icon{border-radius:6px}.avatar-edit{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.avatar-controls{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.avatar-hint{margin:0}.avatar-buttons{display:flex;flex-wrap:wrap;gap:8px}.inline-color{flex-direction:row!important;align-items:center;gap:8px!important}.inline-color input[type=color]{width:44px;height:32px;padding:2px;border:1px solid var(--border);border-radius:6px;background:#fff}.color-pref-list{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:8px}.color-pref-item{display:flex;align-items:center;gap:12px}.color-pref-item input[type=color]{width:40px;height:28px;padding:2px;border:1px solid var(--border);border-radius:6px;background:#fff;flex:0 0 auto}.color-pref-label{flex:1}
