.color-picker-container{position:relative;display:inline-flex;width:40px;height:40px;z-index:2}.color-picker-display{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px}.color-picker-preview-button{all:unset;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;flex:0 0 auto;border:none;background:transparent;cursor:pointer}.color-picker-preview-button:hover,.color-picker-preview-button:focus-visible{background:transparent!important;border-color:transparent!important;outline:none}.color-picker-preview-button.is-empty{opacity:.85}.color-picker-preview{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid #d1d5db;cursor:pointer;box-sizing:border-box;transition:transform .2s,box-shadow .2s}.color-picker-preview:hover{transform:scale(1.1);box-shadow:0 0 8px #0003}.color-picker-preview-empty{background-color:#f8fafc;background-image:linear-gradient(45deg,#e5e7eb 25%,transparent 25%),linear-gradient(-45deg,#e5e7eb 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e5e7eb 75%),linear-gradient(-45deg,transparent 75%,#e5e7eb 75%);background-size:12px 12px;background-position:0 0,0 6px,6px -6px,-6px 0}dialog.color-picker-popup{position:fixed;inset:auto;margin:0;width:220px;max-height:calc(100vh - 16px);overflow:auto;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:0;box-shadow:0 12px 32px #0f172a3d}dialog.color-picker-popup::backdrop{background:transparent;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.color-picker-popup-body{padding:12px}.color-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}.color-picker-option{width:36px;height:36px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .2s,box-shadow .2s}.color-picker-option:hover{transform:scale(1.15);box-shadow:0 0 8px #0000004d}.color-picker-option.selected{border-color:#000;box-shadow:0 0 0 2px #0000001a}.color-picker-divider{height:1px;background-color:#e5e7eb;margin:8px 0}.color-picker-custom{margin-bottom:8px}.color-picker-custom label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:#6b7280}.color-picker-custom input[type=color]{width:36px;height:36px;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;padding:2px}.color-picker-actions{display:flex;gap:4px;justify-content:flex-end}.color-picker-actions button{flex:1;font-size:12px}.gantt-container,.gantt-container *{box-sizing:border-box}.gantt-container{display:flex;height:100%;width:100%;background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.gantt-task-list-wrapper{width:280px;height:100%;border-right:1px solid #e5e7eb;background-color:#fafafa;overflow:hidden;position:relative}.gantt-task-row{display:flex;align-items:center;padding:0 8px;border-bottom:1px solid #e5e7eb;-webkit-user-select:none;user-select:none;transition:background-color .15s ease-out}.gantt-task-row:hover{background-color:#3b82f60d}.gantt-task-row.is-selected{background-color:#3b82f61a;border-left:3px solid #3b82f6}.gantt-expand-button{width:20px;height:20px;padding:0;margin-right:4px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;font-size:14px;transition:transform .2s ease-out}.gantt-expand-button:hover{color:#4b5563}.gantt-chart-wrapper{flex:1;display:flex;flex-direction:column;overflow:auto;position:relative;min-width:0}.gantt-chart-wrapper::-webkit-scrollbar{width:8px;height:8px}.gantt-chart-wrapper::-webkit-scrollbar-track{background:transparent}.gantt-chart-wrapper::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.gantt-chart-wrapper::-webkit-scrollbar-thumb:hover{background:#9ca3af}.gantt-chart-header{position:sticky;top:0;z-index:10;background:#f3f4f6;border-bottom:1px solid #d1d5db;display:flex;align-items:stretch;-webkit-user-select:none;user-select:none;box-sizing:border-box}.gantt-chart-header>div{min-width:max-content}.gantt-header-cell{display:flex;align-items:center;padding:0 8px;font-size:12px;font-weight:500;color:#4b5563;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color .15s ease-out}.gantt-header-cell:nth-child(odd){background-color:#f9fafb}.gantt-header-cell:nth-child(2n){background-color:#f3f4f6}.gantt-grid{position:absolute;top:0;left:0;z-index:1;pointer-events:none}.gantt-bars-container{position:relative;width:100%;background:transparent}.gantt-bar-item{position:absolute;top:0;left:0;border-radius:4px;color:#fff;display:flex;align-items:center;padding:0 8px;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:grab;-webkit-user-select:none;user-select:none;transform:translateZ(0);backface-visibility:hidden;perspective:1000px;transition:box-shadow .15s ease-out,opacity .15s ease-out}.gantt-bar-item:active{cursor:grabbing}.gantt-bar-item:hover{opacity:1!important;box-shadow:0 2px 8px #00000026;z-index:12}.gantt-bar-item.is-selected{opacity:1;box-shadow:0 2px 8px #00000026;z-index:12}.gantt-bar-item.is-dragging{opacity:.7;z-index:15}.gantt-bar-progress{position:absolute;left:0;top:0;bottom:0;background-color:#00000026;border-radius:4px 0 0 4px;z-index:1;transition:width .3s ease-out}.gantt-bar-resize-handle{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;background-color:transparent;z-index:10}.gantt-bar-resize-handle:hover{background-color:#3b82f64d}.gantt-dependency-layer{position:absolute;top:0;left:0;pointer-events:none;z-index:5}@keyframes export-spin{to{transform:rotate(360deg)}}.export-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:export-spin .8s linear infinite;flex-shrink:0}.export-spinner-sm{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:export-spin .8s linear infinite;flex-shrink:0}.gantt-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:#9ca3af;font-size:14px;text-align:center;padding:20px}.gantt-chart-content{flex:1;position:relative;overflow:hidden}.gantt-bar-item.type-epic{background-color:#8b5cf6d9}.gantt-bar-item.type-phase{background-color:#3b82f6cc}.gantt-bar-item.type-task{background-color:#06b6d4bf}.gantt-bar-item.type-milestone{background-color:#f97316cc}.gantt-task-badge{width:8px;height:8px;border-radius:50%;margin-right:8px;flex-shrink:0}.gantt-task-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:#1f2937}@media (max-width: 768px){.gantt-task-list-wrapper{width:150px}.gantt-bar-item,.gantt-header-cell{font-size:11px;padding:0 4px}}.gantt-bar-item:focus{outline:2px solid #2563eb;outline-offset:2px}@media print{.gantt-chart-wrapper{overflow:visible}.gantt-bar-item{break-inside:avoid}}:root{--color-text: #1f2937;--color-text-strong: #111827;--color-text-subtle: #4b5563;--color-text-muted: #6b7280;--color-text-disabled: #9ca3af;--color-surface: #ffffff;--color-bg: #f3f4f6;--color-bg-alt: #fafafa;--color-bg-subtle: #f9fafb;--color-border: #e5e7eb;--color-border-strong: #d1d5db;--color-border-btn: #cbd5e1;--color-primary: #111827;--color-primary-hover: #0f172a;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-ring: #93c5fd;--color-success: #059669;--color-success-hover: #047857;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-danger-strong: #ef4444;--color-danger-bg: #fef2f2;--color-danger-border: #fecaca;--color-danger-text: #b91c1c;--color-warning-bg: #fffbeb;--color-warning-border: #fde68a;--color-warning-text: #92400e;--color-bar-epic: #7c3aed;--color-bar-phase: #0ea5e9;--color-bar-task: #10b981;--color-bar-milestone: #f59e0b;--color-overlay: rgba(15, 23, 42, .45);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--shadow-card: 0 2px 8px rgba(0, 0, 0, .06);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .12);--shadow-modal: 0 18px 48px rgba(15, 23, 42, .24);--fs-2xs: 9px;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-none: 1;--lh-tight: 1.2;--lh-snug: 1.35;--modal-width-sm: 420px;--modal-width-md: 480px;--modal-width-lg: 560px;--modal-width-xl: 680px;--modal-width-full: 720px;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--color-text);background:var(--color-bg)}body{margin:0}.layout{display:flex;flex-direction:column;height:100vh}.layout-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-4) var(--space-6);display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-card)}.header-left{display:flex;gap:20px;align-items:center}.header-left h1{margin:0;font-size:var(--fs-2xl);font-weight:var(--fw-bold)}.header-right{display:flex;gap:var(--space-3);align-items:center}.user-info{font-size:var(--fs-md);color:var(--color-text-muted)}.logout-btn{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}.logout-btn:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.layout-main{flex:1;overflow:auto;padding:var(--space-6)}.header-nav-link{color:var(--color-text-muted);text-decoration:none;font-size:var(--fs-md)}.header-nav-link:hover{color:var(--color-text-strong);text-decoration:underline}.header-help-link{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);transition:color .15s ease}.header-help-link:hover{color:var(--color-text-strong)}.login-nav-btn{display:inline-flex;align-items:center;padding:6px 10px;border-radius:var(--radius);border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-surface);font-weight:var(--fw-medium);font-size:var(--fs-base);line-height:var(--lh-tight);text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.login-nav-btn:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.login-embed{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);min-height:100vh}.login-footer-links{display:flex;align-items:center;gap:var(--space-3);font-size:var(--fs-md)}.login-footer-links a{color:var(--color-text-muted);text-decoration:none}.login-footer-links a:hover{color:var(--color-text-strong);text-decoration:underline}.login-footer-links span{color:var(--color-text-muted)}.page{max-width:100%;margin:0 auto}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;padding:0}.login-card{width:100%;max-width:400px}.app-logo{height:80px;width:auto;margin:0 auto var(--space-8);display:block}.ms-signin-btn{border:0;border-radius:0;background:transparent;padding:0;display:flex;justify-content:center;align-items:center;margin:var(--space-8) auto var(--space-4)}.ms-signin-btn:disabled{opacity:.6}.login-divider{display:flex;align-items:center;text-align:center;color:var(--color-text-muted);font-size:var(--fs-base);margin:2px 0}.login-divider:before,.login-divider:after{content:"";flex:1;border-top:1px solid var(--color-border)}.login-divider span{margin:0 var(--space-2)}.login-card h1{text-align:center;margin-bottom:var(--space-6)}.project-settings-page,.projects-page,.admin-users-page,.about-page,.help-page{display:grid;gap:var(--space-4)}.about-info{display:grid;gap:var(--space-2);margin:0}.about-info__row{display:grid;grid-template-columns:160px 1fr;gap:var(--space-3);align-items:baseline}.about-info__row dt{color:var(--color-text-muted);font-size:var(--fs-base)}.about-info__row dd{margin:0;font-variant-numeric:tabular-nums}.about-people{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.about-people__item{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2)}.about-people__name{font-weight:var(--fw-semibold)}.about-people__role{color:var(--color-text-muted);font-size:var(--fs-base)}.about-people__email{color:var(--color-accent);text-decoration:none}.about-people__email:hover{text-decoration:underline}.about-deps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4)}.about-deps__side-title{margin:0 0 var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-border, #e5e7eb)}.about-deps__group{margin-bottom:var(--space-3)}.about-deps__group-title{margin:0 0 var(--space-1);font-size:var(--fs-sm, 12px);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.about-deps__list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.about-deps__item{display:flex;justify-content:space-between;gap:var(--space-3);align-items:baseline;font-size:var(--fs-base)}.about-deps__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.about-deps__version{color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.projects-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.projects-header h2{margin:0}.projects-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4)}.projects-table{width:100%;border-collapse:collapse}.projects-list-table{table-layout:fixed}.projects-list-table th:nth-child(1),.projects-list-table td:nth-child(1){width:36%}.projects-list-table th:nth-child(2),.projects-list-table td:nth-child(2){width:20%}.projects-table th,.projects-table td{padding:10px var(--space-2);border-bottom:1px solid var(--color-border);text-align:left;font-size:var(--fs-md)}.projects-table th{color:var(--color-text-muted);font-weight:var(--fw-semibold)}.project-name-link{color:var(--color-text);text-decoration:none;font-weight:var(--fw-semibold);font-size:var(--fs-md);line-height:var(--lh-tight);display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:left center;transition:text-shadow .15s ease,transform .15s ease}.project-name-link:hover{color:var(--color-text-strong);text-shadow:0 1px 2px rgba(17,24,39,.18);transform:scale(1.03)}.project-name-link:focus-visible{outline:2px solid var(--color-accent-ring);outline-offset:2px}.table-action-link{color:var(--color-accent);text-decoration:none;font-weight:var(--fw-medium)}.table-action-link:hover{color:var(--color-accent-hover);text-decoration:underline}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:10px var(--space-2);border-bottom:1px solid var(--color-border);text-align:left;font-size:var(--fs-md)}.users-table th{color:var(--color-text-muted);font-weight:var(--fw-semibold)}.project-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);cursor:pointer;box-shadow:var(--shadow-card);transition:all .2s}.project-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.project-card h3{margin:0 0 var(--space-2);color:var(--color-text-strong)}.project-card .client{margin:var(--space-1) 0;font-size:var(--fs-md);color:var(--color-text-muted)}.project-card .type{margin:var(--space-2) 0 0;font-size:var(--fs-sm);background:var(--color-bg);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);display:inline-block;color:var(--color-text-subtle)}.delete-project-btn{margin-top:0;background:var(--color-danger-strong);color:var(--color-surface);border-color:var(--color-danger-strong)}.delete-project-btn:hover{background:var(--color-danger)}.project-detail{display:grid;gap:var(--space-4);min-width:0}.project-detail-page-fit{width:100%;overflow-x:hidden;height:100%;display:flex;flex-direction:column;min-height:0}.detail-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.detail-header,.projects-header{min-height:40px}.detail-title{display:flex;align-items:center;gap:var(--space-3)}.detail-title-wrap{flex:1;min-width:0;flex-wrap:wrap;align-items:center;row-gap:var(--space-2)}.detail-title-main{display:flex;align-items:center;gap:var(--space-3);min-width:0}.detail-title h2,.detail-title-main h2{margin:0}.detail-version-readonly-note{display:inline-flex;align-items:center;min-height:32px;padding:6px var(--space-3);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning-text);font-size:var(--fs-base);line-height:var(--lh-snug);max-width:720px}.back-icon-btn,.title-back-slot{flex:0 0 auto;width:var(--fs-xl);min-width:var(--fs-xl)}.title-back-slot{display:inline-block}.back-icon-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;cursor:pointer;color:var(--color-text-strong);font-size:var(--fs-xl);line-height:var(--lh-none);filter:none;transition:filter .15s ease}.back-icon-btn:hover,.back-icon-btn:focus-visible{background:transparent;border-color:transparent;color:var(--color-text-strong);filter:drop-shadow(0 1px 3px rgba(17,24,39,.35))}.detail-actions{display:flex;gap:var(--space-2)}.detail-header-wrap{flex-wrap:wrap}.detail-actions-wrap{flex-wrap:wrap;justify-content:flex-end}.detail-actions input{flex:1;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);max-width:300px}.detail-actions button{background:inherit;color:inherit;border-color:inherit}.detail-actions button:hover:not(:disabled){background:inherit}.detail-actions button:disabled{opacity:.6;cursor:not-allowed}.versions-selector{display:flex;gap:var(--space-2);align-items:center}.versions-selector select{padding:10px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--fs-md);flex:1}.detail-content{display:grid;grid-template-columns:400px 1fr;gap:var(--space-4);height:600px}.gantt-editor-card{padding:0;overflow:hidden}.gantt-editor-header,.gantt-editor-row{display:grid;grid-template-columns:260px 180px 100px 120px 1fr 120px}.gantt-editor-header.compact,.gantt-editor-row.compact{grid-template-columns:320px 220px 120px 120px 120px}.gantt-editor-header{background:var(--color-bg);border-bottom:1px solid var(--color-border-strong);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text-muted);text-transform:uppercase}.gantt-editor-header>div,.gantt-editor-row .cell{padding:10px var(--space-3);border-right:1px solid var(--color-bg)}.gantt-editor-body{max-height:620px;overflow:auto}.gantt-editor-dates-row{display:grid;grid-template-columns:260px 180px 100px 120px 1fr 120px;background:var(--color-bg-alt);border-bottom:1px solid var(--color-border)}.timeline-dates-cell{overflow-x:auto;padding-top:0;padding-bottom:0}.timeline-date-track{display:flex}.timeline-date-cell{min-width:28px;width:28px;border-right:1px solid var(--color-bg);text-align:center;font-size:var(--fs-2xs);color:var(--color-text-muted);padding:var(--space-1) 0}.gantt-editor-row{align-items:center}.gantt-editor-row .cell{min-height:42px;display:flex;align-items:center}.gantt-editor-row.compact{border-bottom:none}.gantt-editor-body.compact{padding:2px 0 var(--space-2)}.task-name-cell.is-subtask{padding-left:var(--space-6)}.task-link{color:var(--color-text-strong);font-weight:var(--fw-medium)}.progress-cell{color:#374151;font-size:var(--fs-base)}.progress-cell input{width:64px}.color-cell input[type=color]{width:48px;height:28px;border:none;padding:0;background:transparent}.timeline-cell{overflow:auto}.timeline-grid{position:relative;height:26px;background-image:repeating-linear-gradient(to right,var(--color-bg) 0,var(--color-bg) 1px,transparent 1px,transparent 28px)}.timeline-bar{position:absolute;top:3px;height:20px;border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;color:var(--color-surface);font-size:var(--fs-xs);padding:0 2px}.timeline-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 16px)}.resize-handle{width:6px;height:14px;background:#ffffffd9;border-radius:2px;cursor:ew-resize}.timeline-bar-epic{background:var(--color-bar-epic)}.timeline-bar-phase{background:#0284c7}.timeline-bar-task{background:var(--color-success)}.timeline-bar-milestone{background:#d97706}.new-task-row{background:var(--color-bg-alt)}.inline-subtask-row{background:#fcfcfc}.gantt-library-card{padding:var(--space-2);overflow:hidden}.gantt-library-card .gantt-container{border:1px solid var(--color-border);border-radius:var(--radius-md)}.gantt-width-boundary{max-width:100%}.gantt-scroll-shell{width:100%;overflow-x:auto;overflow-y:hidden}.quick-actions-card{padding:var(--space-3)}.quick-actions-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.quick-actions-row+.quick-actions-row{margin-top:10px}.selected-task-info{font-size:var(--fs-base);color:var(--color-text-subtle)}.color-inline-label{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-base)}dialog.modal-card{width:min(var(--modal-width-full),100%);max-height:calc(100vh - var(--space-6) * 2);overflow:auto;background:var(--color-surface);border:none;border-radius:var(--radius-lg);padding:0;box-shadow:var(--shadow-modal);color:var(--color-text)}dialog.modal-card.modal-sm{max-width:var(--modal-width-sm)}dialog.modal-card.modal-md{max-width:var(--modal-width-md)}dialog.modal-card.modal-lg{max-width:var(--modal-width-lg)}dialog.modal-card.modal-xl{max-width:var(--modal-width-xl)}dialog.modal-card.modal-full{max-width:var(--modal-width-full)}dialog.modal-card::backdrop{background:var(--color-overlay)}.modal-body{padding:var(--space-5)}.modal-card h3{margin:0 0 var(--space-4)}.modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4)}.modal-actions--split{justify-content:space-between}.modal-note{margin:0 0 var(--space-4);color:var(--color-text-muted)}.btn-group{display:flex;gap:var(--space-2)}.field-label{margin-bottom:var(--space-2);font-weight:var(--fw-semibold)}.text-muted{color:var(--color-text-muted)}.mt-2{margin-top:var(--space-2)}.weekday-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2)}.weekday-chip{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-1);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer}.weekday-chip.is-checked{border-color:var(--color-accent-ring);background:#eff6ff}.weekday-chip__label{font-weight:var(--fw-bold)}.weekday-chip__desc{font-size:var(--fs-xs);color:var(--color-text-muted)}.gantt-placeholder{min-height:220px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--fs-md);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-alt)}.actions-cell{justify-content:flex-start}.tiny-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);text-decoration:none;border:1px solid;border-radius:var(--radius);padding:6px 10px;font-size:var(--fs-base);line-height:var(--lh-tight);font-weight:var(--fw-medium);cursor:pointer;background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}.tiny-button-sm{padding:2px var(--space-2);font-size:var(--fs-xs)}.tiny-button-lg{padding:var(--space-2) var(--space-3);font-size:var(--fs-md)}.tiny-button-icon{padding:6px;aspect-ratio:1}.tiny-button-sm.tiny-button-icon{padding:2px}.tiny-button-lg.tiny-button-icon{padding:var(--space-2)}.btn-icon{display:inline-flex;align-items:center;line-height:var(--lh-none)}.tiny-button-secondary,.tiny-button-primary{background:var(--color-primary);border-color:var(--color-primary)}.tiny-button-edit{background:var(--color-accent);border-color:var(--color-accent)}.tiny-button-edit:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.tiny-button-success{background:var(--color-success);border-color:var(--color-success)}.tiny-button-success:hover:not(:disabled){background:var(--color-success-hover);border-color:var(--color-success-hover)}.tiny-button-danger{background:var(--color-danger);border-color:var(--color-danger)}.tiny-button-danger:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.tasks-side,.gantt-side{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);overflow:auto;box-shadow:var(--shadow-card)}.card h3,.tasks-side h3,.gantt-side h3{margin:0 0 var(--space-4);font-size:var(--fs-lg)}.tasks-grid{display:flex;flex-direction:column;height:100%}.tasks-header{display:grid;grid-template-columns:150px 80px 140px 70px 120px;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:2px solid var(--color-border);font-weight:var(--fw-semibold);font-size:var(--fs-sm);color:var(--color-text-muted);text-transform:uppercase;sticky:top}.tasks-list{flex:1;overflow:auto}.task-row{display:grid;grid-template-columns:150px 80px 140px 70px 120px;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-bg);font-size:var(--fs-md);align-items:center}.task-row.depth-0{background:var(--color-bg-subtle);font-weight:var(--fw-semibold)}.task-row.depth-1{padding-left:var(--space-4)}.task-row.depth-2{padding-left:var(--space-8);font-size:var(--fs-base)}.task-row.depth-3{padding-left:48px;font-size:var(--fs-sm)}.empty-state{padding:var(--space-5);text-align:center;color:var(--color-text-disabled)}.gantt-container{height:100%;overflow:auto}.gantt-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-disabled)}.gantt-timeline{height:100%;display:flex;flex-direction:column}.gantt-axis{display:flex;height:100%;gap:1px;background:var(--color-border)}.gantt-labels{flex:0 0 280px;border-right:1px solid var(--color-border);display:flex;flex-direction:column;background:var(--color-bg-subtle)}.gantt-label{padding:var(--space-3);border-bottom:1px solid var(--color-border);font-size:var(--fs-base);font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:40px;display:flex;align-items:center}.gantt-bars{flex:1;display:flex;flex-direction:column;overflow-x:auto}.gantt-header{display:flex;background:var(--color-bg);border-bottom:2px solid var(--color-border-strong);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text-muted)}.gantt-week{padding:var(--space-2) var(--space-1);text-align:center;border-right:1px solid var(--color-border-strong);min-width:70px}.gantt-row{display:flex;align-items:center;min-height:40px;border-bottom:1px solid var(--color-border);position:relative;gap:1px;flex:1}.gantt-bar{height:24px;border-radius:var(--radius-sm);transition:opacity .2s;cursor:pointer}.gantt-bar:hover{filter:brightness(.9)}.gantt-bar-epic{background:var(--color-bar-epic)}.gantt-bar-phase{background:var(--color-bar-phase)}.gantt-bar-task{background:var(--color-bar-task)}.gantt-bar-milestone{background:var(--color-bar-milestone);min-width:12px}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-card)}.stack{display:grid;gap:10px}.row{display:flex;gap:var(--space-2);align-items:center;justify-content:space-between}label{display:grid;gap:6px;font-size:var(--fs-md);font-weight:var(--fw-medium)}input,select,button{font:inherit;padding:6px 10px;border-radius:var(--radius);border:1px solid var(--color-border-strong)}input,select{background:var(--color-surface)}button{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary);cursor:pointer;font-weight:var(--fw-medium);font-size:var(--fs-base);line-height:var(--lh-tight);transition:background-color .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}button:disabled{opacity:1;cursor:not-allowed;background:var(--color-text-disabled);border-color:var(--color-text-disabled);color:var(--color-bg-subtle)}button.back-icon-btn:hover,button.back-icon-btn:focus-visible{background:transparent!important;border-color:transparent!important;color:var(--color-text-strong)!important}button.back-icon-btn:active{background:transparent!important;border-color:transparent!important;color:var(--color-text-strong)!important}.login-submit-btn{padding:var(--space-2) var(--space-3);font-size:var(--fs-md);border-radius:var(--radius-md)}.error{color:var(--color-danger-text)}.error-box{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger-text)}pre{background:var(--color-primary);color:var(--color-border);padding:var(--space-3);border-radius:var(--radius-md);overflow-x:auto}@media (max-width: 1200px){.detail-content{grid-template-columns:1fr;height:auto}.tasks-side,.gantt-side{min-height:400px}}@media (max-width: 768px){.layout-header{flex-direction:column;gap:var(--space-3);align-items:flex-start}.projects-list,.gantt-editor-header,.gantt-editor-dates-row,.gantt-editor-row{grid-template-columns:1fr}.detail-header,.projects-header{flex-direction:column;align-items:stretch}.detail-actions{flex-direction:column}.modal-grid,.task-row,.tasks-header{grid-template-columns:1fr}.task-row.depth-1{padding-left:var(--space-2)}.task-row.depth-2{padding-left:var(--space-4)}.task-row.depth-3{padding-left:var(--space-6)}}input[type=range]{width:100%;max-width:100%;height:18px;margin:0;padding:0;border:none;border-radius:0;box-sizing:border-box;background:transparent;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=range]::-webkit-slider-runnable-track{height:4px;background:var(--color-border-strong);border-radius:var(--radius-pill)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#3b82f6;cursor:pointer;border:none;box-shadow:none;margin-top:-5px}input[type=range]::-moz-range-track{height:4px;background:var(--color-border-strong);border-radius:var(--radius-pill)}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#3b82f6;cursor:pointer;border:none;box-shadow:none}.help-page{max-width:100%}.help-box{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--space-8);align-items:start}.help-box--no-sidebar{grid-template-columns:minmax(0,1fr)}.help-aside{position:sticky;top:var(--space-4);align-self:start;max-height:calc(100vh - 160px);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5);padding-left:var(--space-5);border-left:1px solid var(--color-border)}.help-aside__title{margin:0 0 var(--space-2);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.help-toc ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.help-toc li{margin:0}.help-toc__sub{padding-left:var(--space-3)}.help-toc a{display:block;padding:4px 8px;border-radius:var(--radius);border-left:2px solid transparent;color:var(--color-text-muted);text-decoration:none;font-size:var(--fs-base);line-height:var(--lh-snug)}.help-toc a:hover{color:var(--color-text-strong);background:var(--color-bg-subtle)}.help-toc a.is-active{color:var(--color-text-strong);border-left-color:var(--color-accent);background:var(--color-bg-subtle);font-weight:var(--fw-medium)}.help-aside__block{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-subtle);font-size:var(--fs-base);line-height:var(--lh-snug)}.help-aside__block>*:first-child{margin-top:0}.help-aside__block>*:last-child{margin-bottom:0}.help-aside__block p{margin:0 0 var(--space-2)}@media (max-width: 820px){.help-box{grid-template-columns:minmax(0,1fr)}.help-aside{position:static;max-height:none;border-left:0;padding-left:0;border-top:1px solid var(--color-border);padding-top:var(--space-5)}}.help-content{line-height:var(--lh-normal, 1.6)}.help-content>.help-section:first-child>:first-child{margin-top:0}.help-content>.help-section:last-child>:last-child{margin-bottom:0}.help-section{scroll-margin-top:var(--space-4, 16px);border-radius:var(--radius-md, 8px)}.help-content h1,.help-content h2,.help-content h3{color:var(--color-text-strong);line-height:var(--lh-tight, 1.25);margin:var(--space-6) 0 var(--space-3)}.help-section--flash{animation:help-section-flash 3s ease-out}@keyframes help-section-flash{0%{background:var(--color-warning-bg, #fffbeb);box-shadow:0 0 0 8px var(--color-warning-bg, #fffbeb)}35%{background:var(--color-warning-bg, #fffbeb);box-shadow:0 0 0 8px var(--color-warning-bg, #fffbeb)}to{background:transparent;box-shadow:0 0 0 8px transparent}}@media (prefers-reduced-motion: reduce){.help-section--flash{animation:none}}.help-content h1{font-size:var(--fs-xl, 20px)}.help-content h2{font-size:var(--fs-lg, 18px)}.help-content h3{font-size:var(--fs-base, 15px)}.help-content p,.help-content ul,.help-content ol{margin:0 0 var(--space-4)}.help-content ul,.help-content ol{padding-left:var(--space-6)}.help-content li{margin-bottom:var(--space-2, 8px)}.help-content a{color:var(--color-primary);text-decoration:underline}.help-content blockquote{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-border-strong);background:var(--color-surface-muted, #f8fafc);border-radius:var(--radius, 8px);color:var(--color-text-muted)}.help-content blockquote>*:last-child{margin-bottom:0}.help-content code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;color:var(--color-text-strong);background:var(--color-bg-subtle);border:1px solid var(--color-border);padding:1px 6px;border-radius:var(--radius-sm)}.help-content pre{overflow-x:auto;color:var(--color-text);background:var(--color-bg-subtle);border:1px solid var(--color-border);padding:var(--space-4);border-radius:var(--radius-md);line-height:var(--lh-snug)}.help-content pre code{color:inherit;background:none;border:none;padding:0;font-size:var(--fs-sm)}.help-content hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-6) 0}.help-content table{border-collapse:collapse;width:100%;margin:0 0 var(--space-4)}.help-content th,.help-content td{border:1px solid var(--color-border);padding:var(--space-2, 8px) var(--space-3);text-align:left}.help-image{max-width:100%;height:auto;border:1px solid var(--color-border);border-radius:var(--radius, 8px);margin:var(--space-2, 8px) 0 var(--space-4);display:block}.help-mode-toggle{position:fixed;right:var(--space-6);bottom:var(--space-6);z-index:50;display:inline-flex;align-items:center;gap:0;padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-strong);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1;white-space:nowrap;box-shadow:var(--shadow-card);cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease,gap .2s ease}.help-mode-toggle>svg{flex:none}.help-mode-toggle>span{display:inline-block;max-width:0;overflow:hidden;opacity:0;transition:max-width .25s ease,opacity .2s ease}.help-mode-toggle:hover>span,.help-mode-toggle:focus-visible>span{max-width:12rem;opacity:1}.help-mode-toggle:hover:not(:disabled),.help-mode-toggle:focus-visible:not(:disabled){gap:var(--space-2);background:var(--color-surface);color:var(--color-text-strong);border-color:var(--color-border-strong);box-shadow:var(--shadow-card-hover)}.help-mode-toggle.is-active,.help-mode-toggle.is-active:hover:not(:disabled),.help-mode-toggle.is-active:focus-visible:not(:disabled){background:var(--color-accent);border-color:var(--color-accent);color:var(--color-surface)}body.help-mode [data-help-link]{outline:2px dashed var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm);cursor:help;position:relative}body.help-mode [data-help-link]:hover{outline-style:solid;box-shadow:0 0 0 4px var(--color-accent-ring)}body.help-mode [data-help-link]:after{content:"?";position:absolute;top:-9px;right:-9px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xs);font-weight:var(--fw-bold);line-height:var(--lh-none);color:var(--color-surface);background:var(--color-accent);border-radius:var(--radius-pill);pointer-events:none;z-index:2}
