:root{color-scheme:light;--ink: #000000;--obsidian: #27272b;--obsidian-hover: #17171a;--iris: #5551ff;--iris-hover: #423ecc;--orchid: #a95ef8;--lavender: #e4e9ff;--mist: #e4e7ed;--ash: #bdbdbd;--slate: #666666;--bg: #ffffff;--surface: #ffffff;--border: var(--mist);--text: var(--ink);--text-muted: var(--slate);--primary: var(--iris);--primary-hover: var(--iris-hover);--danger: #d64545;--radius: 12px;--radius-sm: 10px;--radius-pill: 999px;--surface-hover: #f0f1f4;--surface-muted: #f3f4f7;--surface-sunken: #eef0f3;--row-hover: #f7f8fa;--row-closed-bg: #fafafa;--overlay: rgba(15, 18, 22, .45);--shadow-color: rgba(15, 18, 22, .15);--count-badge-bg: rgba(0, 0, 0, .08);--count-badge-active-bg: rgba(85, 81, 255, .15);--danger-bg: #fdeded;--danger-border: #f3c9c9;--danger-text: #b02a2a;--notice-border: #c9cfff;--status-notstarted-bg: #eef0f3;--status-notstarted-text: #55606a;--status-inprogress-bg: var(--lavender);--status-inprogress-text: var(--iris);--status-blocked-bg: #fde8e8;--status-blocked-text: #b02a2a;--status-closed-bg: #e6f6ec;--status-closed-text: #1f7a44;--neutral-grey: #9aa0a6;--notification-unread-hover: #d9e0ff;--focus-chip-bg: #fff6e5;--focus-chip-border: #e8b84b;--focus-chip-text: #8a5a00;--btn-primary-bg: var(--obsidian);--btn-primary-bg-hover: var(--obsidian-hover);--btn-primary-text: #ffffff;font-family:Poppins,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--ink: #e7e8ec;--slate: #9a9ba5;--obsidian: #e7e8ec;--obsidian-hover: #ffffff;--iris: #7b77ff;--iris-hover: #938fff;--lavender: #262a4a;--ash: #52535a;--bg: #15161a;--surface: #1e1f24;--border: #34353c;--danger: #e2645f;--surface-hover: #2a2b31;--surface-muted: #26272c;--surface-sunken: #232429;--row-hover: #26272c;--row-closed-bg: #1a1b1f;--overlay: rgba(0, 0, 0, .6);--shadow-color: rgba(0, 0, 0, .5);--count-badge-bg: rgba(255, 255, 255, .08);--count-badge-active-bg: rgba(123, 119, 255, .2);--danger-bg: #3a1f1f;--danger-border: #5c2c2c;--danger-text: #f0918d;--notice-border: #3a3f74;--status-notstarted-bg: #2a2b31;--status-notstarted-text: #b7bac3;--status-blocked-bg: #3a2020;--status-blocked-text: #f0918d;--status-closed-bg: #1f3327;--status-closed-text: #6fcf97;--neutral-grey: #75767e;--notification-unread-hover: #2d3050;--focus-chip-bg: #3a300f;--focus-chip-border: #8a6a1f;--focus-chip-text: #e8c165;--btn-primary-text: #17181c}}:root[data-theme=dark]{color-scheme:dark;--ink: #e7e8ec;--slate: #9a9ba5;--obsidian: #e7e8ec;--obsidian-hover: #ffffff;--iris: #7b77ff;--iris-hover: #938fff;--lavender: #262a4a;--ash: #52535a;--bg: #15161a;--surface: #1e1f24;--border: #34353c;--danger: #e2645f;--surface-hover: #2a2b31;--surface-muted: #26272c;--surface-sunken: #232429;--row-hover: #26272c;--row-closed-bg: #1a1b1f;--overlay: rgba(0, 0, 0, .6);--shadow-color: rgba(0, 0, 0, .5);--count-badge-bg: rgba(255, 255, 255, .08);--count-badge-active-bg: rgba(123, 119, 255, .2);--danger-bg: #3a1f1f;--danger-border: #5c2c2c;--danger-text: #f0918d;--notice-border: #3a3f74;--status-notstarted-bg: #2a2b31;--status-notstarted-text: #b7bac3;--status-blocked-bg: #3a2020;--status-blocked-text: #f0918d;--status-closed-bg: #1f3327;--status-closed-text: #6fcf97;--neutral-grey: #75767e;--notification-unread-hover: #2d3050;--focus-chip-bg: #3a300f;--focus-chip-border: #8a6a1f;--focus-chip-text: #e8c165;--btn-primary-text: #17181c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}h1{font-family:Lora,Georgia,serif;font-size:1.7rem;font-weight:600;letter-spacing:-.01em;margin:0 0 4px}h2{font-size:1.1rem;font-weight:600;margin:0 0 8px}.container{max-width:1080px;margin:0 auto;padding:24px 20px 60px}.container-wide{padding:24px 20px 60px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.brand{font-weight:700;color:var(--text);text-decoration:none;font-size:1.05rem}.header-right{display:flex;align-items:center;gap:14px}.header-user{color:var(--text-muted);font-size:.9rem}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.header-actions{display:flex;gap:8px;flex-shrink:0}.back-link{display:inline-block;color:var(--text-muted);text-decoration:none;font-size:.9rem;margin-bottom:14px}.back-link:hover{color:var(--text)}.back-button{border:none;background:transparent;padding:0;font-family:inherit;cursor:pointer}.btn{border:1px solid transparent;border-radius:var(--radius-pill);padding:9px 18px;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-block}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.btn-primary:hover{background:var(--btn-primary-bg-hover)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost:hover{background:var(--surface-hover)}.btn-danger-ghost{background:transparent;color:var(--danger);border-color:var(--border)}.btn-danger-ghost:hover{background:var(--danger-bg);border-color:var(--danger-border)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#b83a3a}.btn-danger:disabled{opacity:.6;cursor:default}.btn-sm{padding:5px 10px;font-size:.8rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.project-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;color:var(--text);display:flex;flex-direction:column;gap:8px;transition:border-color .15s}.project-card:hover{border-color:var(--primary)}.project-card:hover h2{color:var(--primary)}.project-card h2{margin:0}.project-card-overlay-link{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.card-links{position:relative;z-index:2;display:flex;flex-direction:column;gap:8px}.card-links-group{display:flex;flex-direction:column;gap:4px}.card-links-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}summary.card-links-label{cursor:pointer;list-style:none;display:flex;align-items:center;gap:4px;-webkit-user-select:none;user-select:none}summary.card-links-label::-webkit-details-marker{display:none}summary.card-links-label:before{content:"▸";font-size:.7em;transition:transform .15s}details[open]>summary.card-links-label:before{transform:rotate(90deg)}details.card-links-group>.card-links-list{margin-top:4px}.card-links-list{list-style:disc;margin:0;padding-left:18px;max-height:140px;overflow-y:auto}.card-links-list li{margin:3px 0}.card-links-list li a{font-size:.83rem;color:var(--text);text-decoration:none}.card-links-list li a:hover{color:var(--primary);text-decoration:underline}.card-links-list li.row-closed a{color:var(--text-muted);text-decoration:line-through}.card-links-date{color:var(--text-muted);font-size:.75rem;font-weight:400;margin-left:6px}.card-links-list li.row-closed .card-links-date{text-decoration:none}.project-description{color:var(--text-muted);font-size:.9rem;margin:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.project-meta{display:flex;gap:12px;font-size:.82rem;color:var(--text-muted)}.project-card-header{display:flex;align-items:center;gap:10px}.project-card-header h2{min-width:0;overflow-wrap:break-word}.project-detail-title-row{display:flex;align-items:center;gap:12px}.project-detail-title-row h1{min-width:0;overflow-wrap:break-word}.project-detail-logo{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.project-card-footer{margin-top:auto;padding-top:10px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.project-owner{display:flex;align-items:center;gap:8px;flex-shrink:0}.project-owner-team-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.empty-state{border:1px dashed var(--border);border-radius:var(--radius);padding:40px;text-align:center;color:var(--text-muted)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.task-table{width:100%;border-collapse:collapse;font-size:.88rem}.task-table th{text-align:left;padding:12px 14px;color:var(--text-muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border)}.sortable-header{display:flex;align-items:center;gap:5px;margin:-12px -14px;padding:12px 14px;width:calc(100% + 28px);border:none;background:transparent;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;white-space:nowrap}.sortable-header:hover{color:var(--text)}.sort-arrow{font-size:.7em;opacity:.35}.sort-arrow-active{opacity:1;color:var(--primary)}.task-table td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:top}.task-table tr:last-child td{border-bottom:none}.row-closed{background:var(--row-closed-bg)}.row-closed .task-title{color:var(--text-muted);text-decoration:line-through}.task-title{font-weight:600}.task-title-link{color:var(--text);text-decoration:none}.task-title-link:hover{color:var(--primary);text-decoration:underline}.task-title-button{border:none;background:transparent;padding:0;font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.focus-today-toggle{flex-direction:row!important;align-items:center;gap:8px!important;font-weight:400!important;cursor:pointer}.focus-today-toggle input{width:auto}.task-description{color:var(--text-muted);font-size:.82rem;margin-top:2px;max-width:320px}.task-actions{display:flex;gap:6px;white-space:nowrap}.muted{color:var(--text-muted)}.skeleton{display:block;position:relative;overflow:hidden;background:var(--surface-muted);border-radius:6px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--surface-hover),transparent);animation:skeleton-shimmer 1.6s ease-in-out infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion: reduce){.skeleton:after{animation:none}}.skeleton-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border-bottom:1px solid var(--border)}.skeleton-row:last-child{border-bottom:none}.skeleton-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;display:flex;flex-direction:column;gap:10px}.status-select{border:1px solid var(--border);border-radius:var(--radius-pill);padding:5px 12px;font-size:.82rem;font-weight:600;background:var(--surface-muted);color:var(--text)}.status-select.status-not-started,.status-badge.status-not-started{background:var(--status-notstarted-bg);color:var(--status-notstarted-text)}.status-select.status-in-progress,.status-badge.status-in-progress{background:var(--lavender);color:var(--iris)}.status-select.status-on-hold,.status-badge.status-on-hold{background:var(--status-blocked-bg);color:var(--status-blocked-text)}.status-select.status-closed,.status-badge.status-closed{background:var(--status-closed-bg);color:var(--status-closed-text)}.status-badge{display:inline-block;border-radius:var(--radius-pill);padding:4px 11px;font-size:.78rem;font-weight:600}.status-select{cursor:pointer;font-family:inherit}.dependents-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.dependents-link{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font:inherit;color:var(--text);cursor:pointer}.dependents-link:hover{border-color:var(--primary);color:var(--primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:flex-start;justify-content:center;padding:60px 20px;overflow-y:auto;z-index:200}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:480px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header-actions{display:flex;align-items:center;gap:4px}.modal-header h2{margin:0}.modal-close{border:none;background:transparent;font-size:1.3rem;line-height:1;cursor:pointer;color:var(--text-muted)}.modal-body{padding:20px}.form{display:flex;flex-direction:column;gap:14px}.form label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:600;color:var(--text);flex:1}.form-row{display:flex;gap:12px}.form-row:has(.form-static-hint){flex-wrap:wrap}.form-static-field{display:flex;flex-direction:column;gap:6px;flex:1;font-size:.85rem}.form-static-field>span{font-weight:600;color:var(--text)}.form-static-field>strong{font-weight:400;font-size:.9rem;padding:9px 12px;border:1px dashed var(--border);border-radius:var(--radius-sm)}.form-static-hint{flex-basis:100%;margin:0;font-size:.8rem}.form input,.form textarea,.form select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;font-size:.9rem;font-family:inherit;font-weight:400;background:var(--surface);color:var(--text)}.form input:-webkit-autofill,.form input:-webkit-autofill:hover,.form input:-webkit-autofill:focus,.auth-card input:-webkit-autofill,.auth-card input:-webkit-autofill:hover,.auth-card input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface) inset;box-shadow:0 0 0 1000px var(--surface) inset;transition:background-color 600000s ease-in-out 0s}.form input[type=file]::file-selector-button{border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;margin-right:10px;font-family:inherit;font-size:.85rem;background:var(--surface-hover);color:var(--text);cursor:pointer}.date-picker{position:relative}.date-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;font-size:.9rem;font-family:inherit;font-weight:400;background:var(--surface);color:var(--text);cursor:pointer;text-align:left}.date-picker-placeholder{color:var(--text-muted)}.date-picker-icon{width:15px;height:15px;flex-shrink:0}.date-picker-popup{position:absolute;top:calc(100% + 4px);left:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px var(--shadow-color);padding:12px;width:280px}.date-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:.85rem;font-weight:600}.date-picker-nav{border:none;background:transparent;cursor:pointer;font-size:1rem;line-height:1;padding:2px 8px;color:var(--text);border-radius:var(--radius-sm)}.date-picker-nav:hover{background:var(--lavender)}.date-picker-grid{display:flex;flex-direction:column;gap:2px}.date-picker-row{display:grid;grid-template-columns:26px repeat(7,1fr);align-items:center;gap:2px}.date-picker-weekday{text-align:center;font-size:.7rem;font-weight:600;color:var(--text-muted)}.date-picker-week-label{text-align:center;font-size:.65rem;color:var(--text-muted)}.date-picker-day{border:none;background:transparent;border-radius:var(--radius-sm);padding:5px 0;font-size:.8rem;color:var(--text);cursor:pointer}.date-picker-day:hover{background:var(--lavender)}.date-picker-day-outside{color:var(--ash)}.date-picker-day-today{font-weight:700;color:var(--primary)}.date-picker-day-selected{background:var(--primary);color:#fff}.date-picker-day-selected:hover{background:var(--primary-hover)}.date-picker-day-disabled,.date-picker-day-disabled:hover{background:transparent;color:var(--ash);opacity:.45;cursor:not-allowed;text-decoration:line-through}.date-picker-footer{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.logo-section{border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:12px;min-width:0}.logo-upload{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.logo-upload input[type=file]{flex:1 1 180px;min-width:0;max-width:100%}.logo-preview{width:44px;height:44px;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border);background:var(--surface);flex-shrink:0}.logo-gallery-label{font-size:.8rem;font-weight:600;color:var(--text-muted)}.logo-gallery{display:flex;flex-wrap:wrap;gap:8px;max-height:140px;overflow-y:auto}.logo-gallery-item{width:44px;height:44px;padding:0;border:2px solid transparent;border-radius:var(--radius-sm);cursor:pointer;overflow:hidden;background:var(--surface);flex-shrink:0}.logo-gallery-item:hover{border-color:var(--primary)}.logo-gallery-item img{width:100%;height:100%;object-fit:cover;display:block}.project-card-logo{width:40px;height:40px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.private-lock{position:absolute;top:14px;right:14px;width:15px;height:15px;z-index:2;pointer-events:none}.private-lock-inline{width:.75em;height:.75em;margin-right:8px;vertical-align:.02em}.icon-inline{width:14px;height:14px;vertical-align:-2px;margin-right:4px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.form-error{background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-border);border-radius:8px;padding:10px 12px;font-size:.85rem;margin-bottom:12px}.form-notice{background:var(--lavender);color:var(--iris-hover);border:1px solid var(--notice-border);border-radius:8px;padding:10px 12px;font-size:.85rem;margin-bottom:12px}.form-notice p{margin:0 0 8px}.form-notice p:last-child{margin-bottom:0;margin-top:8px}.hint{font-size:.8rem;color:var(--text-muted);margin:-6px 0 0}.auth-page{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:20px}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}.auth-card h1{text-align:center;margin-bottom:6px}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:4px}.auth-brand-logo{max-height:52px;width:auto}.auth-brand-name{font-family:Lora,Georgia,serif;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--text)}.auth-card label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:600}.auth-card input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:.9rem;font-family:inherit;font-weight:400;background:var(--surface);color:var(--text)}.auth-switch{text-align:center;font-size:.85rem;color:var(--text-muted);margin:0}.password-field{position:relative}.password-field input{width:100%;padding-right:38px}.password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);border:none;background:transparent;cursor:pointer;font-size:1rem;line-height:1;padding:6px;color:var(--text-muted)}.remember-me-toggle{flex-direction:row!important;align-items:center;gap:8px!important;font-weight:400!important;cursor:pointer}.remember-me-toggle input{width:auto}.page-loading{padding:40px;text-align:center;color:var(--text-muted)}.header-left{display:flex;align-items:center;gap:28px}.main-nav{display:flex;gap:4px}.nav-link{color:var(--text-muted);text-decoration:none;font-size:.88rem;font-weight:600;padding:6px 14px;border-radius:var(--radius-pill)}.nav-link:hover{background:var(--surface-hover);color:var(--text)}.nav-link-active{color:var(--primary);background:var(--lavender)}.nav-link-active:hover{background:var(--lavender)}.breadcrumb{font-size:.85rem;color:var(--text-muted);margin-bottom:14px}.breadcrumb a{color:var(--text-muted);text-decoration:none}.breadcrumb a:hover{color:var(--text);text-decoration:underline}.section{margin-top:32px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-header h2{margin:0}.tabs{display:flex;align-items:center;gap:6px;margin-bottom:18px;border-bottom:1px solid var(--border);padding-bottom:10px}.tab{background:transparent;border:none;padding:8px 16px;border-radius:var(--radius-pill);font-size:.88rem;font-weight:600;color:var(--text-muted);cursor:pointer;text-decoration:none;display:inline-block}.tab:hover{background:var(--surface-hover);color:var(--text)}.tab-active{background:var(--primary);color:#fff}.tab-active:hover{background:var(--primary-hover);color:#fff}.status-filter{margin-left:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;font-size:.85rem;background:var(--surface);color:var(--text)}.workload-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.workload-strip-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.workload-chip{background:var(--lavender);color:var(--text);border-radius:var(--radius-sm);padding:3px 8px;font-size:.78rem;white-space:nowrap}.filters-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.filter-segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-pill);overflow:hidden;margin-left:auto}.filter-segmented-btn{background:var(--surface);border:none;padding:6px 14px;font:inherit;font-size:.82rem;color:var(--text-muted);cursor:pointer}.filter-segmented-btn+.filter-segmented-btn{border-left:1px solid var(--border)}.filter-segmented-btn-active{background:var(--primary);color:#fff;font-weight:600}.timeline-toolbar-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:16px}.timeline-toolbar-row .switch-row{width:auto}.timeline-project-dropdown{position:relative;display:inline-block}.timeline-project-dropdown-toggle{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 12px;font:inherit;font-size:.85rem;color:var(--text);cursor:pointer}.timeline-project-dropdown-caret{font-size:.7em;color:var(--text-muted)}.timeline-project-dropdown-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:60;min-width:260px;max-height:360px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px var(--shadow-color);padding:6px}.timeline-project-dropdown-actions{display:flex;gap:6px;padding:4px 6px 8px;border-bottom:1px solid var(--border);margin-bottom:4px}.timeline-project-dropdown-actions button{background:none;border:none;font:inherit;font-size:.8rem;color:var(--primary);cursor:pointer;padding:2px 4px}.timeline-project-dropdown-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer}.timeline-project-dropdown-item:hover{background:var(--surface-hover)}.filters-bar select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;font-size:.85rem;background:var(--surface);color:var(--text);font-family:inherit}.filter-toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text);cursor:pointer}.filter-toggle input{width:auto}label.switch-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;max-width:420px}.switch-label{font-size:.9rem;color:var(--text);font-weight:500}.switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ash);border-radius:var(--radius-pill);transition:background .15s}.switch-track:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .15s}.switch input:checked+.switch-track{background:var(--primary)}.switch input:checked+.switch-track:before{transform:translate(18px)}.switch-row-disabled{cursor:default;opacity:.7}.switch input:disabled{cursor:default}.switch input:disabled+.switch-track{cursor:default;opacity:.7}.switch input:focus-visible+.switch-track{outline:2px solid var(--primary);outline-offset:2px}.project-link{color:var(--primary);text-decoration:none;font-size:.88rem}.project-link:hover{text-decoration:underline}.activity-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.activity-item{padding:12px 16px;border-bottom:1px solid var(--border)}.activity-item:last-child{border-bottom:none}.activity-message{font-size:.88rem;color:var(--text)}.activity-task-title{font-weight:600}.activity-meta{font-size:.78rem;color:var(--text-muted);margin-top:3px}.confirm-message{font-size:.9rem;color:var(--text);margin:0}.project-projected-end{font-size:.85rem;color:var(--text-muted);margin-top:6px}.project-projected-end strong{color:var(--text)}.project-team{display:flex;align-items:center;gap:8px;min-width:0}.project-team-label{font-size:.85rem;color:var(--text-muted)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;flex-shrink:0;border:2px solid var(--surface)}.avatar-image{object-fit:cover;background:var(--surface)}.avatar-stack{display:inline-flex}.avatar-stack .avatar{margin-left:-8px}.avatar-stack .avatar:first-child{margin-left:0}.avatar-overflow{background:var(--neutral-grey);font-size:.65rem}.avatar-stack-empty{color:var(--text-muted);font-size:.82rem}.assignee-picker{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:180px;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px}.assignee-field{display:flex;flex-direction:column;gap:6px}.assignee-field-label{font-size:.85rem;font-weight:600;color:var(--text)}.assignee-summary{display:flex;align-items:center;gap:10px;min-width:0}.assignee-summary-names{flex:1;min-width:0;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignee-summary .btn{margin-left:auto}.task-form-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.form .task-form-fields label,.task-form-fields .form-static-field{gap:4px;font-size:.75rem;font-weight:600;color:var(--text-muted)}.form .task-form-fields select,.form .task-form-fields input,.task-form-fields .date-picker-trigger,.task-form-fields .form-static-field>strong{padding:6px 8px;font-size:.85rem}.task-form-fields .date-picker-icon{width:13px;height:13px}.task-form-fields .form-static-field>span{color:var(--text-muted)}.task-form-fields .form-static-hint{grid-column:1 / -1}@media (max-width: 600px){.task-form-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}.task-form-extras{display:flex;flex-wrap:nowrap;align-items:center;gap:14px;font-size:.8rem;white-space:nowrap}.form .task-form-extra{flex:0 0 auto;flex-direction:row;align-items:center;gap:6px;font-size:.8rem;font-weight:400}.form .task-form-extras select{padding:4px;font-size:.8rem;min-width:0}.task-form-extras label.switch-row{gap:6px;justify-content:flex-start;max-width:none}.task-form-extras .switch-label{font-size:.8rem;font-weight:400}.task-form-extras .switch{transform:scale(.8)}.task-form-toggles{display:flex;align-items:center;gap:14px;margin-left:auto}.task-form-extras-hint{margin:-6px 0 0}.form-row-toggles{align-items:center;flex-wrap:wrap;gap:28px}.form-row-toggles>*{flex:0 0 auto!important}.form-row-toggles .switch-row{justify-content:flex-start;gap:10px}.assignee-option{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-weight:400!important;cursor:pointer}.assignee-option:hover{background:var(--surface-hover)}.assignee-option input{width:auto}.task-board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:14px;overflow-x:auto}.task-column{background:var(--surface-sunken);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;min-height:120px;transition:background .1s}.task-column-drag-over{background:var(--lavender)}.task-column-header{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:700;padding:6px 8px 10px;color:var(--text)}.task-column-header.status-not-started{color:var(--status-notstarted-text)}.task-column-header.status-in-progress{color:var(--iris)}.task-column-header.status-on-hold{color:var(--status-blocked-text)}.task-column-header.status-closed{color:var(--status-closed-text)}.status-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--status-notstarted-text)}.status-dot-not-started{background:var(--status-notstarted-text)}.status-dot-in-progress{background:var(--iris)}.status-dot-on-hold{background:var(--status-blocked-text)}.status-dot-closed{background:var(--status-closed-text)}.task-column-count{background:var(--count-badge-bg);border-radius:10px;padding:1px 8px;font-size:.75rem}.task-column-body{display:flex;flex-direction:column;gap:8px;flex:1}.task-column-empty{color:var(--text-muted);font-size:.8rem;padding:10px 4px;text-align:center}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;cursor:grab;transition:border-color .15s,opacity .2s}.task-card:hover{border-color:var(--primary)}.task-card:active{cursor:grabbing}.task-card-title{font-weight:600;font-size:.9rem}.task-card-description{color:var(--text-muted);font-size:.8rem;margin-top:4px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.task-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:8px;flex-wrap:wrap}.task-card-deps{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px}.task-card-deps-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.dep-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-pill);padding:1px 8px;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checklist-badge,.recur-badge,.due-badge{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.due-overdue{color:var(--danger);font-weight:600}.task-card-top-row{display:flex;align-items:flex-start;gap:8px}.task-card-top-row .task-card-title{flex:1;min-width:0}.complete-check{flex-shrink:0;width:18px;height:18px;margin-top:1px;border-radius:50%;border:1.5px solid var(--text-muted);background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s,border-color .15s}.complete-check svg{width:70%;height:70%;opacity:0;transition:opacity .12s}.complete-check:hover svg{opacity:.7}.complete-check-lg{width:24px;height:24px;margin-top:0}.complete-check-done{background:var(--status-closed-text);border-color:var(--status-closed-text);color:#fff;animation:complete-pop .3s ease-out}.complete-check-done svg{opacity:1}.complete-check-done:hover svg{opacity:1}@keyframes complete-pop{0%{transform:scale(.7)}60%{transform:scale(1.15)}to{transform:scale(1)}}.task-card:has(.complete-check-done) .task-card-title,tr:has(.complete-check-done) .task-title,.modal-header h2:has(.complete-check-done) .modal-task-title{color:var(--text-muted);text-decoration:line-through}.task-card:has(.complete-check-done){opacity:.75}.task-title-cell{display:flex;align-items:flex-start;gap:8px}.modal-task-heading{display:inline-flex;align-items:center;gap:10px}.card-menu{position:relative;flex-shrink:0}.card-menu-trigger{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:2px 6px;border-radius:var(--radius-sm)}.card-menu-trigger:hover{background:var(--surface-muted);color:var(--text)}.card-menu-dropdown{position:absolute;top:100%;right:0;z-index:20;min-width:110px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .15));display:flex;flex-direction:column;padding:4px}.card-menu-dropdown button{border:none;background:transparent;text-align:left;padding:6px 8px;border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer;color:var(--text)}.card-menu-dropdown button:hover{background:var(--surface-muted)}.card-menu-danger{color:var(--danger)!important}.effort-badge{font-size:.72rem;color:var(--text-muted);white-space:nowrap}@media (max-width: 900px){.task-board{grid-template-columns:1fr}}.app-layout{display:flex;align-items:stretch}.app-main{flex:1;min-width:0}.brand-icon{width:18px;height:18px;margin-right:4px;vertical-align:-3px}.icon-btn-img{width:16px;height:16px;display:block}.icon-btn{border:none;background:transparent;font-size:1rem;line-height:1;cursor:pointer;padding:6px 8px;border-radius:var(--radius-pill)}.icon-btn:hover{background:var(--surface-hover)}.settings-menu{position:relative}.settings-menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px var(--shadow-color);padding:6px;display:flex;flex-direction:column;gap:2px}.settings-menu-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:none;background:transparent;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:.88rem}.settings-menu-item:hover{background:var(--surface-hover)}.settings-menu-switch{justify-content:space-between;cursor:default;color:var(--text)}.settings-menu-switch:hover{background:transparent}.settings-menu-language{justify-content:space-between;cursor:default;color:var(--text)}.settings-menu-language:hover{background:transparent}.language-picker{position:relative}.language-picker-trigger{display:flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-family:inherit;font-size:.82rem;background:var(--surface);color:var(--text);cursor:pointer}.language-picker-trigger:hover{background:var(--surface-hover)}.language-picker-caret{color:var(--text-muted);font-size:.7rem}.language-picker-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:70;min-width:140px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px var(--shadow-color);padding:4px;display:flex;flex-direction:column;gap:2px}.language-picker-option{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:none;background:transparent;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:.85rem;color:var(--text)}.language-picker-option:hover{background:var(--surface-hover)}.language-picker-option-active{background:var(--lavender);color:var(--primary);font-weight:600}.language-picker-option-active:hover{background:var(--lavender)}.avatar-upload{display:flex;align-items:center;gap:12px}.avatar-upload-preview{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid var(--border);background:var(--surface)}.notification-bell{position:relative}.notification-badge{position:absolute;top:2px;right:2px;min-width:15px;height:15px;padding:0 3px;border-radius:var(--radius-pill);background:var(--danger);color:#fff;font-size:.6rem;font-weight:700;line-height:15px;text-align:center}.notification-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:320px;max-height:400px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px var(--shadow-color)}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);font-weight:600;font-size:.88rem;position:sticky;top:0;background:var(--surface)}.notification-empty{padding:16px;text-align:center}.notification-list{list-style:none;margin:0;padding:0}.notification-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;border:none;border-bottom:1px solid var(--border);background:transparent;padding:10px 14px;cursor:pointer;font-family:inherit}.notification-item:hover{background:var(--row-hover)}.notification-item-unread{background:var(--lavender)}.notification-item-unread:hover{background:var(--notification-unread-hover)}.notification-message{font-size:.85rem;color:var(--text)}.notification-time{font-size:.72rem;color:var(--text-muted)}.comment-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.comment-section-compact{background:none;border:none;border-radius:0;padding:0}.comment-section-compact .comment-form{padding-bottom:12px;margin-bottom:12px}.comment-section-compact .comment-input{padding:7px 12px;font-size:.82rem;min-height:48px;max-height:140px}.comment-section-compact .comment-send-btn{width:28px;height:28px;font-size:.8rem}.comment-section-compact .comment-list{gap:12px;max-height:320px}.comment-section-compact .comment-bubble{padding:6px 11px;font-size:.82rem}.comment-section-compact .comment-author{font-size:.8rem}.comment-form{display:flex;gap:10px;align-items:flex-start;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--border)}.comment-input-wrap{position:relative;flex:1}.comment-input{width:100%;border:1px solid var(--border);border-radius:18px;padding:9px 16px;font-size:.87rem;font-family:inherit;color:var(--text);resize:none;background:var(--surface-muted);min-height:64px;max-height:200px;overflow-y:auto}.comment-input:focus{background:var(--surface);border-color:var(--primary)}.comment-send-btn{flex-shrink:0;width:34px;height:34px;border-radius:var(--radius-pill);border:none;background:var(--primary);color:#fff;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.comment-send-btn:hover{background:var(--primary-hover)}.comment-send-btn:disabled{background:var(--ash);cursor:default}.comment-list{list-style:none;margin:0;padding:0 6px 0 0;display:flex;flex-direction:column;gap:16px;max-height:420px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:transparent transparent}.comment-list:hover,.comment-list:focus-within{scrollbar-color:var(--ash) transparent}.comment-list::-webkit-scrollbar{width:6px}.comment-list::-webkit-scrollbar-thumb{background:transparent;border-radius:var(--radius-pill)}.comment-list:hover::-webkit-scrollbar-thumb,.comment-list:focus-within::-webkit-scrollbar-thumb{background:var(--ash)}.comment-item{display:flex;gap:10px}.comment-body-wrap{flex:1;min-width:0}.comment-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.comment-author{font-weight:600;font-size:.85rem}.comment-time{font-size:.72rem;color:var(--text-muted)}.comment-bubble{display:inline-block;max-width:100%;background:var(--surface-muted);border-radius:4px 14px 14px;padding:8px 14px;font-size:.87rem;color:var(--text);white-space:pre-wrap;word-break:break-word}.mention{color:var(--primary);font-weight:600}.mention-suggestions{position:absolute;top:calc(100% + 4px);left:0;z-index:60;width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px var(--shadow-color);padding:4px;max-height:220px;overflow-y:auto}.mention-suggestion{display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;font-family:inherit;text-align:left}.mention-suggestion:hover{background:var(--lavender)}.modal-wide{max-width:860px}.modal-xl{max-width:1180px}.task-modal-layout{display:flex;align-items:stretch;gap:20px}.task-modal-form-col{flex:1;min-width:0;display:flex;flex-direction:column}.task-modal-side-col{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:20px;border-right:1px solid var(--border);padding-right:20px}.task-modal-comments-col{width:280px;flex-shrink:0;border-left:1px solid var(--border);padding-left:20px}.task-modal-comments-col h3{margin:0 0 10px;font-size:.95rem}.task-details-top .status-select,.task-details-top .focus-today-chip{box-sizing:border-box;height:30px;padding-top:0;padding-bottom:0;font-size:.78rem}.task-status-notice{margin:0;padding:6px 10px;border-radius:var(--radius-sm);background:var(--status-closed-bg);color:var(--status-closed-text);font-size:.82rem}.task-details{display:flex;flex-direction:column;gap:14px}.task-details-top{display:flex;align-items:center;gap:8px}.focus-today-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);background:transparent;color:var(--text-muted);border-radius:var(--radius-pill);padding:4px 12px;font-size:.78rem;font-weight:600;font-family:inherit;cursor:pointer}.focus-today-chip:hover{border-color:var(--primary)}.focus-today-chip-active{background:var(--focus-chip-bg);border-color:var(--focus-chip-border);color:var(--focus-chip-text)}.task-details-description{margin:0;color:var(--text);white-space:pre-wrap}.task-details-fields{display:flex;flex-direction:column;gap:10px;margin:0}.task-details-field{display:flex;align-items:center;gap:12px}.task-details-field dt{width:140px;flex-shrink:0;font-size:.82rem;font-weight:600;color:var(--text-muted)}.task-details-field dd{margin:0;font-size:.9rem;color:var(--text)}.section-toggle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-toggle-row h3{margin:0;font-size:.95rem}.add-toggle{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:3px 9px;border-radius:var(--radius-pill);flex-shrink:0}.add-toggle:hover{background:var(--lavender);color:var(--text)}.checklist-count{color:var(--text-muted);font-weight:400;font-size:.85rem}.checklist-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:4px}.checklist-item{display:flex;align-items:center;gap:8px}.checklist-ball{flex-shrink:0;width:18px;height:18px;border-radius:50%;border:2px solid var(--border);background:var(--surface);color:#fff;font-size:.7rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.checklist-ball-done{background:var(--status-closed-text);border-color:var(--status-closed-text)}.checklist-label{flex:1;font-size:.85rem}.checklist-item-done .checklist-label{text-decoration:line-through;color:var(--text-muted)}.shortcut-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:4px}.shortcut-item{display:flex;align-items:center;gap:4px}.shortcut-link{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--text);text-decoration:none;font-size:.82rem}.shortcut-link:hover{background:var(--lavender)}.shortcut-link-button{border:none;background:transparent;font-family:inherit;cursor:pointer;text-align:left;width:100%}.shortcut-copied{margin-left:auto;flex-shrink:0;font-size:.7rem;color:var(--text-muted);opacity:0;transition:opacity .1s}.shortcut-link-button:hover .shortcut-copied{opacity:1}.shortcut-copied-active{opacity:1!important;color:var(--primary);font-weight:600}.shortcut-icon{flex-shrink:0}.shortcut-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.shortcut-remove{flex-shrink:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:4px 6px;border-radius:var(--radius-sm)}.shortcut-remove:hover{background:var(--danger-bg);color:var(--danger)}.shortcut-form{display:flex;flex-direction:column;gap:6px}.shortcut-form-row{display:flex;gap:6px}.shortcut-form-row select,.shortcut-form-row input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:.8rem;font-family:inherit;min-width:0;background:var(--surface);color:var(--text)}.shortcut-form-row select{flex-shrink:0;width:92px}.shortcut-form-row input{flex:1}.dependency-groups{display:flex;gap:20px;flex-wrap:wrap}.dependency-groups .dependency-group{flex:1;min-width:140px}.dependency-group-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px}.dependency-form{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.dependency-form select,.dependency-form input{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:.8rem;font-family:inherit;background:var(--surface);color:var(--text)}.dependency-form select:last-of-type{flex-basis:100%}.dependency-search{flex:2}.dependency-sort{flex:1}.dependency-lead-time{width:76px;flex:0 0 76px!important}.shortcut-item .dependency-lead-time{border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 6px;font-size:.75rem;font-family:inherit;background:var(--surface);color:var(--text)}.required-mark{color:var(--danger)}@media (max-width: 1100px){.task-modal-layout{flex-wrap:wrap}.task-modal-comments-col{order:1}.task-modal-side-col{order:2;width:100%;border-right:none;padding-right:0;border-top:1px solid var(--border);padding-top:16px}}@media (max-width: 760px){.task-modal-layout{flex-direction:column}.task-modal-side-col{width:100%;border-right:none;padding-right:0;order:2}.task-modal-comments-col{order:3;width:100%;border-left:none;border-top:1px solid var(--border);padding-left:0;padding-top:16px}}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);min-height:calc(100vh - 61px);padding:14px 10px}.sidebar-collapsed{width:32px;padding:14px 4px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:0 6px 10px}.sidebar-toggle{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:2px 6px;border-radius:var(--radius-pill)}.sidebar-toggle:hover{background:var(--surface-hover);color:var(--text)}.sidebar-body{display:flex;flex-direction:column;gap:2px}.sidebar-empty{font-size:.82rem;padding:0 6px}.sidebar-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);text-decoration:none;color:var(--text);font-size:.85rem}.sidebar-link:hover{background:var(--surface-hover)}.sidebar-link-active{background:var(--lavender);color:var(--primary);font-weight:600}.sidebar-link-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-link-logo{width:18px;height:18px;border-radius:4px;object-fit:cover;flex-shrink:0}.sidebar-link-count{background:var(--count-badge-bg);border-radius:var(--radius-pill);padding:0 7px;font-size:.72rem;flex-shrink:0}.sidebar-link-active .sidebar-link-count{background:var(--count-badge-active-bg)}.sidebar-closed-section{margin-top:10px;padding-top:8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.sidebar-closed-toggle{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;cursor:pointer;padding:6px 10px;font:inherit;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.sidebar-closed-toggle .sidebar-link-count{margin-left:auto}.sidebar-closed-caret{font-size:.7em;transition:transform .15s}.sidebar-closed-caret-open{transform:rotate(90deg)}.generated-password{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1.1rem;font-weight:700;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;text-align:center;letter-spacing:.03em}.timeline{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.timeline-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.timeline-controls{display:flex;align-items:center;gap:10px;margin-left:auto}.timeline-period-select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;font-size:.85rem;background:var(--surface);color:var(--text)}.timeline-granularity{display:flex;gap:4px}.timeline-granularity .tab{padding:6px 12px;font-size:.8rem}.timeline-chart{overflow-x:auto}.timeline-row{display:grid;grid-template-columns:220px 1fr;align-items:center;min-height:30px;border-bottom:1px solid var(--border)}.timeline-row:last-child{border-bottom:none}.timeline-axis-row{min-height:90px;border-bottom:1px solid var(--border);margin-bottom:4px}.timeline-row-label{display:flex;align-items:center;gap:4px;padding-left:calc(var(--indent, 0) * 18px);font-size:.85rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.timeline-row-name a{color:var(--text);text-decoration:none}.timeline-row-name a:hover{color:var(--primary);text-decoration:underline}.timeline-row-topic .timeline-row-name a{font-weight:600}.timeline-toggle{border:none;background:transparent;cursor:pointer;font-size:.7rem;color:var(--text-muted);padding:0 2px;flex-shrink:0}.timeline-toggle:hover{color:var(--text)}.timeline-row-track{position:relative;height:30px;min-width:480px}.timeline-axis-track{height:88px}.timeline-tick{position:absolute;top:0;font-size:.72rem;color:var(--text-muted);white-space:nowrap;border-left:1px solid var(--border);padding-left:2px;height:100%}.timeline-tick span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}.timeline-week-row{min-height:70px;margin-bottom:4px}.timeline-week-track{height:68px}.timeline-week-tick{font-size:.62rem;color:var(--ash);border-left-style:dashed}.timeline-today-line{position:absolute;top:0;bottom:0;width:2px;background:#e08a2e;z-index:1}.timeline-bar{position:absolute;top:50%;transform:translateY(-50%);height:14px;min-width:6px;border-radius:4px;background:var(--neutral-grey);z-index:2}.timeline-bar.status-not-started{background:var(--neutral-grey)}.timeline-bar.status-in-progress{background:var(--iris)}.timeline-bar.status-on-hold{background:var(--status-blocked-text)}.timeline-bar.status-closed{background:var(--status-closed-text)}.timeline-bar-topic{height:15px;background:var(--orchid)}.timeline-no-dates{position:absolute;top:50%;transform:translateY(-50%);left:0;color:var(--text-muted);font-size:.78rem;font-style:italic}.topic-timeline .timeline-chart{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px}.topic-timeline-group{margin-top:10px}.topic-timeline-group:first-child{margin-top:0}.topic-timeline-group .timeline-row-topic{border-top:1px solid var(--border)}.project-card-menu{position:absolute;top:10px;right:10px;z-index:3}.project-card-private-lock{right:44px}.project-card-header{padding-right:28px}.project-card:has(.project-card-private-lock) .project-card-header{padding-right:52px}.connection-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:1000;width:min(640px,calc(100vw - 32px));display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--surface);color:var(--text);border:1px solid var(--danger);border-left-width:4px;border-radius:var(--radius);box-shadow:0 8px 24px #0000002e}.connection-banner-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:.85rem}.connection-banner-text strong{color:var(--danger)}.connection-banner-text span{color:var(--text-muted)}.connection-banner .btn{flex-shrink:0}.dep-cell{display:flex;flex-wrap:wrap;gap:4px;max-width:260px}.dep-chip-cell{max-width:220px;color:var(--text);text-decoration:none;cursor:pointer;font:inherit;font-size:.72rem}.dep-chip-cell:hover{border-color:var(--primary)}.dep-chip-text{overflow:hidden;text-overflow:ellipsis}.dep-chip-done .dep-chip-text{text-decoration:line-through;color:var(--text-muted)}.dep-lead{color:var(--text-muted);flex-shrink:0}.dep-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--text-muted)}.dep-dot-in-progress{background:var(--primary)}.dep-dot-on-hold{background:var(--status-blocked-text)}.dep-dot-closed{background:var(--status-closed-text)}.my-tickets{margin-top:20px;border-top:1px solid var(--border);padding-top:14px}.my-tickets h3{font-size:.85rem;margin:0 0 8px;color:var(--text-muted)}.my-tickets ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.my-tickets li{display:flex;align-items:center;gap:8px;font-size:.85rem}.my-tickets-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-count{margin-left:6px;font-size:.72rem;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-pill);padding:0 6px}.bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;margin-bottom:12px;background:var(--surface-muted);border:1px solid var(--border);border-radius:8px}.bulk-bar>span{margin-right:auto;font-size:.85rem}.ticket-table .row-selected td{background:var(--surface-muted)}.ticket-type{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.ticket-type-bug{color:var(--danger)}.ticket-type-feature{color:var(--primary)}.ticket-gh-link{margin-left:6px;font-size:.8rem}.ticket-detail-row td{padding-top:0}.ticket-description{white-space:pre-wrap;margin:0 0 8px;font-size:.88rem}.ticket-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:.78rem}
