:root{--color-accent: #ff6b57;--color-accent-soft: #fff0ea;--color-accent-line: #ffcabe;--color-bg: #faf8f4;--color-bg-subtle: #fdfaf5;--color-surface: #ffffff;--color-surface-tint: #fdfbf7;--color-text: #1a1a1a;--color-text-body: #3d3826;--color-text-muted: #9a927e;--color-text-heading: #14141a;--color-line: #e3dccd;--color-line-strong: #d8cfba;--color-danger: #c2410c;--color-danger-bg: #fdf1ea;--color-danger-line: #f3c9b3;--color-warning: #b45309;--color-warning-bg: #fdf6e8;--color-warning-line: #f0dcb8;--color-success: #6fae7a;--color-neutral-chip-bg: #f5f1e8;--color-neutral-chip-text: #6b6455;--color-avatar-1: #6366f1;--color-avatar-2: #ec4899;--color-avatar-3: #10b981;--color-avatar-4: #f59e0b;--color-avatar-5: #06b6d4;--color-avatar-6: #ef4444;--font-family-base: "Trebuchet MS", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-h1: 24px;--font-size-h2: 20px;--font-size-h3: 17px;--font-size-body: 13px;--font-size-body-lg: 13.5px;--font-size-caption: 11.5px;--font-size-micro: 10px;--font-weight-bold: 800;--font-weight-semibold: 700;--font-weight-regular: 400;--line-height-body: 1.6;--line-height-loose: 1.8;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 16px;--radius-pill: 999px;--border-width: 1px;--border-default: var(--border-width) solid var(--color-line);--border-hover: var(--border-width) solid var(--color-accent);--shadow-sm: 0 2px 8px rgba(120, 100, 60, .1);--shadow-md: 0 6px 16px rgba(120, 100, 60, .16);--shadow-frame: 0 6px 22px rgba(120, 100, 60, .1);--motion-fast: .15s ease;--motion-hover: .2s ease;--motion-lift: translateY(-1px);--motion-lift-lg: translateY(-3px)}[data-theme=dark]{--color-accent: #ff8a75;--color-accent-soft: #3a2620;--color-accent-line: #6b4136;--color-bg: #1c1b19;--color-bg-subtle: #24221f;--color-surface: #2a2825;--color-surface-tint: #26241f;--color-text: #f2efe9;--color-text-body: #e5ded1;--color-text-muted: #b3a893;--color-text-heading: #ffffff;--color-line: #3c372e;--color-line-strong: #4a4436;--color-danger: #ff8a65;--color-danger-bg: #3a2620;--color-danger-line: #6b4136;--color-warning: #f0b74e;--color-warning-bg: #362c1a;--color-warning-line: #5c4a26;--color-success: #7fc48a;--color-neutral-chip-bg: #33302a;--color-neutral-chip-text: #c9c0ab;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 6px 16px rgba(0, 0, 0, .4);--shadow-frame: 0 6px 22px rgba(0, 0, 0, .35)}:root{--size-cal-cell-min-height: 88px;--size-gantt-row-height: 24px;--size-gantt-sub-row-height: 20px;--size-gantt-label-width: 150px}:root,[data-theme=dark]{--focus-ring: 0 0 0 3px color-mix(in srgb, var(--color-accent) 40%, transparent);--focus-ring-width: 2px}.focus-visible-ring:focus-visible{outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:2px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-family-base);font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;color:var(--color-text-heading)}button{font-family:inherit;cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:2px}.app-shell{display:flex;height:100vh;overflow:hidden;background:var(--color-bg)}.sidebar{width:240px;flex-shrink:0;background:var(--color-bg-subtle);border-right:var(--border-default);padding:var(--space-5) var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);overflow-y:auto}.sidebar-workspace{padding:var(--space-1) var(--space-2) var(--space-4);font-weight:var(--font-weight-bold);font-size:var(--font-size-body-lg);display:flex;align-items:center;gap:var(--space-2)}.sidebar-section-title{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);letter-spacing:.05em;color:var(--color-text-muted);padding:var(--space-2) var(--space-2) var(--space-1)}.sidebar-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin:2px var(--space-1);font-size:var(--font-size-body);color:var(--color-text-body);border:var(--border-width) solid transparent;border-radius:var(--radius-sm);transition:border-color var(--motion-fast),background var(--motion-fast)}.sidebar-item:hover{border-color:var(--color-line);background:var(--color-surface-tint)}.sidebar-item.active{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-accent);font-weight:var(--font-weight-semibold)}.sidebar-item .badge-count{margin-left:auto;font-size:var(--font-size-micro);font-weight:var(--font-weight-bold);background:var(--color-danger);color:var(--color-surface);padding:1px 7px;border-radius:var(--radius-pill)}.sidebar-item .badge-count.neutral{background:var(--color-text-muted)}.sidebar-divider{border:none;border-top:var(--border-width) solid var(--color-line);margin:var(--space-2) var(--space-1)}.content{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--color-surface)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);flex-shrink:0;border-bottom:var(--border-default);background:var(--color-surface)}.topbar h1{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold)}.topbar-actions{display:flex;align-items:center;gap:var(--space-2)}.topbar-actions .subseg-tabs{margin-bottom:0}.role-indicator{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-neutral-chip-text);background:var(--color-neutral-chip-bg);border:var(--border-default);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill)}.main{flex:1;overflow:auto;padding:var(--space-5)}.segment-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.segment-tab{background:var(--color-surface);border:var(--border-default);color:var(--color-neutral-chip-text);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:12.5px;font-weight:var(--font-weight-semibold);transition:border-color var(--motion-fast)}.segment-tab:hover{border-color:var(--color-accent)}.segment-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface)}.subseg-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.subseg-tab{background:transparent;border:var(--border-width) solid var(--color-line);color:var(--color-text-muted);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold)}.subseg-tab.active{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-accent)}.view-placeholder{background:var(--color-surface-tint);border:var(--border-default);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-sm)}.view-placeholder h2{font-size:var(--font-size-h2);margin-bottom:var(--space-2)}.view-placeholder .muted{color:var(--color-text-muted);font-size:var(--font-size-body)}.wip-tag{display:inline-block;margin-top:var(--space-4);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-neutral-chip-text);background:var(--color-neutral-chip-bg);border:var(--border-default);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill)}.boot-loading{display:flex;align-items:center;justify-content:center;height:100vh;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-body);background:var(--color-bg)}.boot-spinner{width:var(--space-6);height:var(--space-6);border:3px solid var(--color-line);border-top-color:var(--color-accent);border-radius:var(--radius-pill);animation:boot-spin .7s linear infinite}@keyframes boot-spin{to{transform:rotate(360deg)}}.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-5);background:var(--color-bg)}.auth-card{width:360px;max-width:100%;display:flex;flex-direction:column;gap:var(--space-3);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-frame);padding:var(--space-7)}.auth-brand{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-bold);font-size:var(--font-size-body-lg);color:var(--color-text-heading)}.auth-title{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);margin-top:var(--space-2)}.auth-hint{margin:0;font-size:var(--font-size-caption);color:var(--color-text-muted)}.auth-field{display:flex;flex-direction:column;gap:var(--space-1)}.auth-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-body)}.auth-optional{font-weight:var(--font-weight-regular);color:var(--color-text-muted)}.auth-required{font-weight:var(--font-weight-semibold);color:var(--color-accent)}.auth-notice{margin:0;font-size:var(--font-size-caption);color:var(--color-text-body);background:var(--color-accent-soft);border:var(--border-width) solid var(--color-accent-line);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.auth-input{font-family:inherit;font-size:var(--font-size-body);color:var(--color-text);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.auth-input:focus-visible{border-color:var(--color-accent);outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:2px}.auth-error{margin:0;font-size:var(--font-size-caption);color:var(--color-danger);background:var(--color-danger-bg);border:var(--border-width) solid var(--color-danger-line);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.auth-submit{margin-top:var(--space-2);font-family:inherit;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-surface);background:var(--color-accent);border:var(--border-width) solid var(--color-accent);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-4)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.topbar-user{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-body)}.topbar-user .role-label{color:var(--color-text-muted);font-weight:var(--font-weight-regular)}.btn-logout{font-family:inherit;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-body);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3)}.btn-logout:hover{border-color:var(--color-accent)}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5)}.page-title{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold)}.muted{color:var(--color-text-muted);font-size:var(--font-size-body)}.tag{display:inline-block;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-neutral-chip-text);background:var(--color-neutral-chip-bg);border:var(--border-default);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill)}.btn-primary{font-family:inherit;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-surface);background:var(--color-accent);border:var(--border-width) solid var(--color-accent);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{font-family:inherit;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-body);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5)}.btn-secondary:hover{border-color:var(--color-accent)}.sidebar-item.is-muted{color:var(--color-text-muted);cursor:default}.sidebar-item-add{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--space-4)}.project-card{display:flex;flex-direction:column;gap:var(--space-2);text-align:left;background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4);transition:border-color var(--motion-hover),box-shadow var(--motion-hover),transform var(--motion-hover)}.project-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:var(--motion-lift)}.project-card-head{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-bold);font-size:var(--font-size-body-lg);color:var(--color-text-heading)}.project-card-desc{margin:0;color:var(--color-text-body);font-size:var(--font-size-body)}.project-card-meta{display:flex;align-items:center;gap:var(--space-2);margin-top:auto;color:var(--color-text-muted);font-size:var(--font-size-caption)}.board-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.board-meta{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--font-size-caption)}.board-desc{margin:0 0 var(--space-4);color:var(--color-text-body);font-size:var(--font-size-body)}.create-form{display:flex;flex-direction:column;gap:var(--space-4);max-width:640px}.create-row{display:flex;gap:var(--space-4)}.create-row .auth-field{flex:1}.create-textarea{resize:vertical;min-height:var(--space-8);line-height:var(--line-height-body)}.create-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.tmpl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.tmpl-card{display:flex;flex-direction:column;gap:var(--space-2);text-align:left;background:var(--color-surface-tint);border:var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4);transition:border-color var(--motion-hover),box-shadow var(--motion-hover),transform var(--motion-hover)}.tmpl-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:var(--motion-lift-lg)}.tmpl-card.selected{background:var(--color-accent-soft);border-color:var(--color-accent-line)}.tmpl-card-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-body-lg);color:var(--color-text-heading)}.tmpl-card-desc{color:var(--color-text-body);font-size:var(--font-size-caption)}.tmpl-stages{display:flex;flex-wrap:wrap;gap:var(--space-1)}.tmpl-card-meta{color:var(--color-text-muted);font-size:var(--font-size-caption)}.kanban{display:flex;gap:var(--space-5);align-items:flex-start;overflow-x:auto;padding-bottom:var(--space-3)}.kanban-col{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-3);background:var(--color-bg-subtle);border:var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3);transition:border-color var(--motion-hover),background var(--motion-hover)}.kanban-col.is-drop-over{border-color:var(--color-accent);background:var(--color-accent-soft)}.kanban-col-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2)}.kanban-col-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-body-lg);color:var(--color-text-heading)}.kanban-col-count{font-size:var(--font-size-caption);color:var(--color-text-muted)}.kanban-add-btn{margin-left:auto;min-width:26px;height:26px;font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--color-accent);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-pill)}.kanban-add-btn:hover{border-color:var(--color-accent)}.kanban-col-body{display:flex;flex-direction:column;gap:var(--space-2);min-height:var(--space-8)}.kanban-col-empty{margin:0;padding:var(--space-3);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-caption)}.task-card{display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-3);transition:border-color var(--motion-hover),box-shadow var(--motion-hover),transform var(--motion-hover)}.task-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:var(--motion-lift)}.task-card.is-draggable{cursor:grab}.task-card.is-draggable:active{cursor:grabbing}.task-card-tags{display:flex;align-items:center;gap:var(--space-2)}.task-card-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);line-height:var(--line-height-body)}.task-card-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.priority-slot{display:inline-block;width:54px;text-align:center;flex-shrink:0;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);border-radius:var(--radius-pill);border:var(--border-width) solid transparent;padding:1px 0}.priority-urgent{color:var(--color-danger);background:var(--color-danger-bg);border-color:var(--color-danger-line)}.priority-high{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning-line)}.priority-normal{color:var(--color-neutral-chip-text);background:var(--color-neutral-chip-bg);border-color:var(--color-line)}.priority-low{color:var(--color-text-muted);background:var(--color-surface-tint);border-color:var(--color-line)}.due-badge{font-size:var(--font-size-caption);color:var(--color-text-muted)}.due-badge.overdue{color:var(--color-danger);font-weight:var(--font-weight-semibold)}.avt{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border-radius:var(--radius-pill);color:var(--color-surface);font-size:var(--font-size-micro);font-weight:var(--font-weight-bold)}.avt-empty{background:transparent;border:var(--border-width) dashed var(--color-line-strong)}.task-create-form{display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);padding:var(--space-3)}.tcf-row{display:flex;gap:var(--space-2)}.tcf-field{flex:1;display:flex;flex-direction:column;gap:2px}.tcf-label{font-size:var(--font-size-micro);color:var(--color-text-muted)}.tcf-input{width:100%;font-family:inherit;font-size:var(--font-size-caption);color:var(--color-text);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.tcf-row .tcf-input{flex:1}.tcf-input:focus-visible{border-color:var(--color-accent);outline:var(--focus-ring-width) solid var(--color-accent);outline-offset:1px}.tcf-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.tcf-btn{padding:var(--space-1) var(--space-4);font-size:var(--font-size-caption)}.toast-host{position:fixed;left:50%;bottom:var(--space-5);transform:translate(-50%);display:flex;flex-direction:column;gap:var(--space-2);z-index:1000;pointer-events:none}.toast{pointer-events:auto;max-width:360px;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-2) var(--space-4)}.toast-info{color:var(--color-text-body);background:var(--color-accent-soft);border:var(--border-width) solid var(--color-accent-line)}.toast-warn{color:var(--color-danger);background:var(--color-danger-bg);border:var(--border-width) solid var(--color-danger-line)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;justify-content:flex-end;background:color-mix(in srgb,var(--color-text) 35%,transparent)}.drawer{width:420px;max-width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--color-surface);border-left:var(--border-default);box-shadow:var(--shadow-frame)}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:var(--border-default)}.drawer-title-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);letter-spacing:.05em;color:var(--color-text-muted)}.drawer-close{min-width:26px;height:26px;font-size:var(--font-size-h3);color:var(--color-text-muted);background:transparent;border:var(--border-width) solid transparent;border-radius:var(--radius-pill)}.drawer-close:hover{border-color:var(--color-line);background:var(--color-surface-tint)}.drawer-pad{padding:var(--space-5)}.drawer-body{flex:1;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.detail-fields{display:flex;flex-direction:column;gap:var(--space-3)}.detail-field{display:flex;flex-direction:column;gap:var(--space-1)}.detail-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-muted)}.detail-readonly,.detail-ro-value{font-size:var(--font-size-body);color:var(--color-text-body);display:inline-flex;align-items:center;gap:var(--space-2)}.detail-ro-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.detail-title-ro{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.detail-desc-ro{margin:0;color:var(--color-text-body);font-size:var(--font-size-body);white-space:pre-wrap}.detail-save-row{display:flex;justify-content:flex-end;margin-top:var(--space-1)}.feed-section{border-top:var(--border-default);padding-top:var(--space-4)}.feed-heading{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-3)}.feed-list{list-style:none;margin:0 0 var(--space-4);padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.feed-item{display:flex;gap:var(--space-2);align-items:flex-start}.feed-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border-radius:var(--radius-pill);background:var(--color-neutral-chip-bg);font-size:var(--font-size-caption)}.feed-body{flex:1;min-width:0}.feed-text{margin:0;font-size:var(--font-size-caption);color:var(--color-text-body)}.feed-time{color:var(--color-text-muted);font-size:var(--font-size-micro)}.feed-comment-body{margin:var(--space-1) 0 0;font-size:var(--font-size-body);color:var(--color-text-body);white-space:pre-wrap}.comment-form{display:flex;flex-direction:column;gap:var(--space-2)}.feed-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.feed-section-head .feed-heading,.feed-section-head .subseg-tabs{margin-bottom:0}.filter-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.chip{font-family:inherit;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-body);background:transparent;border:var(--border-width) solid var(--color-line);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);min-height:32px}.chip:hover{border-color:var(--color-accent)}.chip.active{color:var(--color-accent);background:var(--color-accent-soft);border-color:var(--color-accent-line)}.mytask-group{margin-bottom:var(--space-4)}.group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.group-header.overdue-group{background:var(--color-danger-bg);border:var(--border-width) solid var(--color-danger-line)}.group-header.overdue-group .group-name{color:var(--color-danger)}.group-toggle{min-width:26px;height:26px;background:transparent;border:var(--border-width) solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-caption)}.group-toggle:hover{border-color:var(--color-line)}.group-name{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.group-count{font-size:var(--font-size-caption);color:var(--color-text-muted)}.mytask-rows{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.list-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color var(--motion-hover),box-shadow var(--motion-hover)}.list-row.is-clickable{cursor:pointer}.list-row.is-clickable:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.list-row-title{flex:1;min-width:0;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row-sub{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.project-badge{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-accent);background:var(--color-accent-soft);border:var(--border-width) solid var(--color-accent-line);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3)}.workload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--space-4)}.workload-card{display:flex;flex-direction:column;gap:var(--space-3);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4)}.workload-card.unassigned-card{background:var(--color-danger-bg);border-color:var(--color-danger-line)}.workload-head{display:flex;align-items:center;gap:var(--space-2)}.workload-unassigned-icon{font-size:var(--font-size-body-lg);color:var(--color-danger)}.workload-head-text{display:flex;flex-direction:column;min-width:0;flex:1}.workload-name{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.workload-discipline{font-size:var(--font-size-caption);color:var(--color-text-muted)}.workload-total{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);color:var(--color-text-body)}.workload-overdue{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-danger)}.workload-overdue.none{color:var(--color-success);font-weight:var(--font-weight-regular)}.dist-wrap{display:flex;flex-direction:column;gap:var(--space-2)}.dist-bar{display:flex;height:var(--space-2);border-radius:var(--radius-pill);overflow:hidden;background:var(--color-surface-tint)}.dist-seg{height:100%}.dist-done{background:var(--color-success)}.dist-todo{background:var(--color-neutral-chip-text)}.dist-progress{background:var(--color-accent)}.dist-review{background:var(--color-warning)}.dist-empty{background:var(--color-line)}.dist-legend{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none;font-size:var(--font-size-micro);color:var(--color-text-muted)}.dist-legend-item{display:inline-flex;align-items:center;gap:var(--space-1)}.dist-dot{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-pill);display:inline-block}.avatar-stack{display:inline-flex;align-items:center}.avatar-stack-item+.avatar-stack-item{margin-left:calc(var(--space-2) * -1)}.avatar-stack-item .avt{box-shadow:0 0 0 var(--border-width) var(--color-surface)}.avatar-stack-more{margin-left:var(--space-1);font-size:var(--font-size-micro);color:var(--color-text-muted)}.pd-list{display:flex;flex-direction:column;gap:var(--space-2)}.pd-row-wrap{background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);overflow:hidden}.pd-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3)}.pd-toggle{min-width:26px;height:26px;background:transparent;border:var(--border-width) solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-caption)}.pd-toggle:hover{border-color:var(--color-line)}.pd-name{flex:1;min-width:120px;text-align:left;background:transparent;border:none;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-heading)}.pd-name:hover{text-decoration:underline;text-decoration-color:var(--color-accent)}.pd-progress{display:flex;align-items:center;gap:var(--space-2);width:160px}.pd-progress-bar{flex:1;height:var(--space-2);background:var(--color-surface-tint);border-radius:var(--radius-pill);overflow:hidden}.pd-progress-fill{height:100%;background:var(--color-accent)}.pd-progress-label{font-size:var(--font-size-caption);color:var(--color-text-muted);min-width:34px;text-align:right}.pd-stats{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.pd-overdue{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-danger)}.pd-overdue.none{color:var(--color-text-muted);font-weight:var(--font-weight-regular)}.pd-tasks.open{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-top:var(--border-default);background:var(--color-surface-tint)}.assignee-grid-wrap{display:flex;flex-direction:column;gap:var(--space-5)}.discipline-section{display:flex;flex-direction:column;gap:var(--space-2)}.discipline-header{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);letter-spacing:.05em;color:var(--color-text-muted);padding:0 var(--space-1)}.assignee-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.assignee-card{align-items:flex-start;cursor:pointer}.assignee-card-head{display:flex;align-items:center;gap:var(--space-2)}.assignee-card-name{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.assignee-card-discipline,.assignee-card-stats{font-size:var(--font-size-caption);color:var(--color-text-muted)}.stat-danger{color:var(--color-danger);font-weight:var(--font-weight-semibold)}.assignee-card.unassigned-card{background:var(--color-danger-bg);border-color:var(--color-danger-line)}.assignee-b2-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.assignee-b2-head .filter-chips{margin-bottom:0}.assignee-b2-title{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.assignee-b2-name{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.schedule-toolbar .segment-tabs{margin-bottom:0}.layer-checkboxes{display:flex;gap:var(--space-4);align-items:center}.layer-checkbox{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-body);color:var(--color-text-muted);font-weight:var(--font-weight-regular);cursor:pointer}.layer-checkbox input{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}[data-layer=project]{font-weight:var(--font-weight-bold)}[data-layer=task]{font-weight:var(--font-weight-regular)}.cal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 0}.cal-nav{display:flex;align-items:center;gap:var(--space-3)}.cal-nav-btn{min-width:28px;height:28px;background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-pill);color:var(--color-text-body);font-size:var(--font-size-caption)}.cal-nav-btn:hover{border-color:var(--color-accent)}.cal-month{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.cal-today-btn{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-accent);border:var(--border-width) solid var(--color-accent-line);background:var(--color-accent-soft);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);min-width:760px}.cal-weekday{padding:var(--space-1) var(--space-2);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-align:left}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:var(--border-default);border-left:var(--border-default);min-width:760px}.cal-cell{min-height:var(--size-cal-cell-min-height);padding:var(--space-2);border-right:var(--border-default);border-bottom:var(--border-default);font-size:var(--font-size-micro);background:var(--color-surface)}.cal-cell.empty{background:var(--color-surface-tint)}.cal-cell.today{background:var(--color-accent-soft)}.cal-daynum{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-caption);color:var(--color-text-body);margin-bottom:var(--space-1)}.cal-today-label{font-size:var(--font-size-micro);font-weight:var(--font-weight-bold);color:var(--color-accent);background:var(--color-accent-soft);padding:0 var(--space-1);border-radius:var(--radius-sm)}.cal-deadline-chip{display:block;width:100%;text-align:left;font-size:var(--font-size-micro);color:var(--color-danger);background:var(--color-danger-bg);border:var(--border-width) solid var(--color-danger-line);border-radius:var(--radius-sm);padding:2px var(--space-1);margin-bottom:2px;cursor:pointer}.cal-task-chip{display:block;width:100%;text-align:left;font-size:var(--font-size-micro);color:var(--color-text-body);background:var(--color-neutral-chip-bg);border:var(--border-default);border-radius:var(--radius-sm);padding:2px var(--space-1);margin-bottom:2px;cursor:pointer}.cal-chip-hint{font-weight:var(--font-weight-semibold);color:var(--color-text-muted);margin-right:var(--space-1)}.cal-overflow{font-size:var(--font-size-micro);color:var(--color-text-muted);font-weight:var(--font-weight-semibold);cursor:pointer}.cal-unscheduled{padding:var(--space-3) 0;border-top:var(--border-default);margin-top:var(--space-3)}.cal-unscheduled-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-body);background:transparent;border:none;cursor:pointer}.cal-unscheduled-toggle .badge-count{background:var(--color-danger);color:var(--color-surface);font-size:var(--font-size-micro);font-weight:var(--font-weight-bold);padding:1px var(--space-2);border-radius:var(--radius-pill)}.cal-unscheduled-list{margin-top:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1);max-width:320px}.gantt-wrap{background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5)}.gantt-legend{font-size:var(--font-size-caption);color:var(--color-text-muted);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.gantt-legend-dot{display:inline-flex;align-items:center;gap:var(--space-1)}.gantt-legend-swatch{width:10px;height:10px;border-radius:var(--radius-pill);display:inline-block}.swatch-project{background:var(--color-accent)}.swatch-task{background:var(--color-warning-line)}.swatch-overdue{background:var(--color-danger)}.gantt-scroll{overflow-x:auto}.gantt-inner{min-width:820px;position:relative;padding-top:var(--space-1)}.gantt-ruler{position:relative;height:26px;border-bottom:var(--border-default);margin-bottom:var(--space-3)}.gantt-ruler-seg{position:absolute;top:var(--space-1);font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);color:var(--color-text-muted)}.gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--color-accent);z-index:2}.gantt-today-label{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:var(--font-size-micro);font-weight:var(--font-weight-bold);color:var(--color-accent);white-space:nowrap}.gantt-body{position:relative}.gantt-row{display:flex;align-items:center;margin-bottom:var(--space-3);height:var(--size-gantt-row-height)}.gantt-row-label{width:var(--size-gantt-label-width);flex-shrink:0;font-size:var(--font-size-caption);cursor:pointer;padding-right:var(--space-2);background:none;border:none;text-align:left;color:var(--color-text-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-row-label:hover{color:var(--color-accent);text-decoration:underline}.gantt-track{flex:1;position:relative;height:100%}.gantt-bar{position:absolute;top:5px;height:12px;border-radius:var(--radius-pill);background:var(--color-accent)}.gantt-bar.sub{background:var(--color-warning-line)}.gantt-bar.overdue{background:var(--color-danger)}.gantt-dot{position:absolute;top:6px;width:9px;height:9px;border-radius:var(--radius-pill);background:var(--color-warning-line)}.gantt-dot.overdue{background:var(--color-danger)}.gantt-marker{position:absolute;top:-2px;font-size:var(--font-size-caption);color:var(--color-danger);transform:translate(-50%)}.gantt-open{position:absolute;top:var(--space-1);font-size:var(--font-size-caption);color:var(--color-text-muted);letter-spacing:2px}.gantt-overdue-label{position:absolute;top:var(--space-1);font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);color:var(--color-danger);white-space:nowrap}.gantt-unscheduled-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-2) 0 0;border-top:var(--border-width) dashed var(--color-line);margin-top:var(--space-2);font-size:var(--font-size-caption);color:var(--color-text-muted)}.perm-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);overflow:hidden}.perm-table th,.perm-table td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:var(--border-default);font-size:var(--font-size-body)}.perm-table th{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);background:var(--color-surface-tint)}.perm-table tbody tr:last-child td{border-bottom:none}.perm-discipline{color:var(--color-text-muted)}.perm-self-tag{margin-left:var(--space-2);font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);color:var(--color-accent);background:var(--color-accent-soft);border:var(--border-width) solid var(--color-accent-line);border-radius:var(--radius-pill);padding:0 var(--space-2)}.perm-select{font-family:inherit;font-size:var(--font-size-body);color:var(--color-text);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3)}.perm-select:hover{border-color:var(--color-accent)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:950;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:color-mix(in srgb,var(--color-text) 35%,transparent)}.dialog-box{width:400px;max-width:100%;background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-frame);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.dialog-title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.dialog-body{font-size:var(--font-size-body);color:var(--color-text-body);line-height:var(--line-height-body)}.dialog-body strong{color:var(--color-danger);font-weight:var(--font-weight-semibold)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.btn-danger{font-family:inherit;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-surface);background:var(--color-danger);border:var(--border-width) solid var(--color-danger);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5)}.btn-danger:hover{opacity:.92}.menu-wrap{position:relative}.menu-btn{min-width:32px;height:32px;background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-pill);color:var(--color-text-body);font-size:var(--font-size-body-lg);line-height:1}.menu-btn:hover{border-color:var(--color-accent)}.menu-dropdown{position:absolute;right:0;top:calc(100% + var(--space-1));z-index:20;min-width:160px;background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-1)}.menu-item{display:block;width:100%;text-align:left;background:transparent;border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--font-size-body);color:var(--color-text-body)}.menu-item:hover{background:var(--color-surface-tint)}.archive-banner{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-warning);background:var(--color-warning-bg);border:var(--border-width) solid var(--color-warning-line);border-radius:var(--radius-md)}.archive-list{display:flex;flex-direction:column;gap:var(--space-2)}.archive-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-4);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.archive-info{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.archive-name{font-size:var(--font-size-body-lg);font-weight:var(--font-weight-bold);color:var(--color-text-heading)}.archive-meta{font-size:var(--font-size-caption);color:var(--color-text-muted)}.archive-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.archive-actions .btn-secondary,.archive-actions .btn-primary{padding:var(--space-2) var(--space-4);font-size:var(--font-size-caption)}.unread-dot{display:inline-block;width:var(--space-2);height:var(--space-2);border-radius:var(--radius-pill);background:var(--color-accent);margin-right:var(--space-1);vertical-align:middle;flex-shrink:0}.table-scroll{overflow-x:auto}.topbar-menu-btn,.sidebar-scrim{display:none}@media (max-width: 768px){.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:910;transform:translate(-100%);transition:transform var(--motion-hover);box-shadow:var(--shadow-frame);padding-bottom:calc(var(--space-5) + env(safe-area-inset-bottom))}.sidebar.open{transform:translate(0)}.sidebar-scrim{display:block}.topbar{gap:var(--space-2);padding:calc(var(--space-3) + env(safe-area-inset-top)) var(--space-4) var(--space-3)}.topbar h1{margin-right:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-menu-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.topbar-actions .subseg-tabs,.topbar-user .role-label{display:none}.main{padding:var(--space-4)}.kanban{scroll-snap-type:x mandatory;scroll-behavior:smooth;gap:var(--space-3)}.kanban-col{scroll-snap-align:start}.cal-weekdays,.cal-grid{min-width:0}.cal-grid{--size-cal-cell-min-height: calc(var(--space-6) * 2)}.cal-cell{padding:var(--space-1)}.cal-daynum{font-size:var(--font-size-micro);margin-bottom:0}.cal-deadline-chip,.cal-task-chip{padding:0 var(--space-1)}.drawer{width:100vw;border-left:none}.topbar-menu-btn,.cal-nav-btn,.kanban-add-btn,.drawer-close,.menu-btn{min-width:calc(var(--space-8) + var(--space-3));height:calc(var(--space-8) + var(--space-3))}.chip{min-height:calc(var(--space-5) * 2)}.toast-host{bottom:calc(var(--space-5) + env(safe-area-inset-bottom))}.dialog-overlay{padding-bottom:calc(var(--space-5) + env(safe-area-inset-bottom))}}
