:root{--bg-primary: #FAF7F2;--bg-secondary: #fff;--bg-tertiary: #F5F2ED;--bg-card: #fff;--bg-hover: rgba(44, 36, 24, .04);--bg-selected: rgba(232, 85, 58, .06);--bg-sidebar: linear-gradient(180deg, #2C2418, #3D3225);--bg-sidebar-hover: rgba(232, 224, 212, .08);--bg-sidebar-active: rgba(232, 85, 58, .15);--bg-overlay: rgba(44, 36, 24, .4);--bg-input: #fff;--text-primary: #2C2418;--text-secondary: #9B917F;--text-tertiary: #BDB5A8;--text-on-dark: #E8E0D4;--text-on-dark-muted: rgba(232, 224, 212, .5);--text-on-dark-dim: rgba(232, 224, 212, .35);--text-on-accent: #fff;--accent: #E8553A;--accent-hover: rgba(232, 85, 58, .3);--accent-bg: rgba(232, 85, 58, .05);--accent-bg-strong: rgba(232, 85, 58, .15);--accent-shadow: rgba(232, 85, 58, .2);--accent-shadow-hover: rgba(232, 85, 58, .3);--accent-blue: #5B8DEF;--accent-green: #4CAF7D;--accent-green-light: #8DB87C;--accent-orange: #E8973A;--accent-purple: #B068E8;--accent-admin-purple: #A966E8;--accent-red: #E8553A;--border-light: rgba(44, 36, 24, .06);--border-medium: rgba(44, 36, 24, .1);--border-strong: rgba(44, 36, 24, .2);--border-input: rgba(44, 36, 24, .1);--border-input-subtle: rgba(44, 36, 24, .08);--border-focus: var(--accent);--border-sidebar: rgba(232, 224, 212, .06);--border-sidebar-dashed: rgba(232, 224, 212, .22);--shadow-card: 0 2px 12px rgba(44, 36, 24, .04);--shadow-card-hover: 0 4px 20px rgba(44, 36, 24, .06);--shadow-modal: 0 24px 64px rgba(44, 36, 24, .15);--shadow-login: 0 24px 64px rgba(0, 0, 0, .3);--shadow-btn: 0 4px 16px var(--accent-shadow);--shadow-btn-hover: 0 6px 20px var(--accent-shadow-hover);--sidebar-width: 280px;--sidebar-collapsed: 56px;--detail-panel-width: 420px;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-pill: 20px;--radius-full: 50%;--font-display: "Crimson Pro", Georgia, serif;--font-body: "DM Sans", sans-serif;--font-logo: "Caveat", cursive;--scrollbar-thumb: rgba(44, 36, 24, .15);--scrollbar-thumb-hover: rgba(44, 36, 24, .25);--kanban-col-bg: rgba(44, 36, 24, .02);--kanban-col-border: rgba(44, 36, 24, .04);--kanban-empty-border: rgba(44, 36, 24, .14);--progress-track: rgba(44, 36, 24, .06);--close-btn-bg: rgba(44, 36, 24, .05);--collapse-btn-bg: rgba(44, 36, 24, .08);--collapse-btn-hover: rgba(44, 36, 24, .14);--avatar-border: var(--bg-primary)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg-primary);font-family:var(--font-display);color:var(--text-primary)}.task-dragging-no-select,.task-dragging-no-select *{user-select:none!important;-webkit-user-select:none!important;-ms-user-select:none!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.sidebar{min-height:100vh;background:var(--bg-sidebar);color:var(--text-on-dark);display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;position:relative;z-index:20;flex-shrink:0}.sidebar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M20 20v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}.tree-item{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;font-family:var(--font-body);font-size:13px;white-space:nowrap;overflow:hidden}.tree-item:hover{background:var(--bg-sidebar-hover)}.tree-item.active{background:var(--bg-sidebar-active);color:var(--text-on-accent)}.tree-add-project{border:1px dashed var(--border-sidebar-dashed);color:#e8e0d4e0;margin:0 0 6px}.tree-add-project:hover{background:#e8553a29;border-color:#e8553a61;color:var(--text-on-accent)}.tree-section{padding:5px 12px 5px 28px;font-size:12px;color:var(--text-on-dark-muted);cursor:pointer;display:flex;align-items:center;gap:6px;border-radius:var(--radius-xs);transition:all .15s;font-family:var(--font-body)}.tree-section:hover{background:#e8e0d40f;color:#e8e0d4cc}.tree-section.active{color:var(--accent)}.sidebar-group{margin-bottom:12px;padding:8px 0 6px;border-radius:var(--radius-lg);border:1px solid var(--border-sidebar)}.sidebar-group-projects{background:#e8553a08}.sidebar-group-models{background:#4caf7d0d}.sidebar-group-admin{background:#a966e80f}.sidebar-group-header{display:flex;align-items:center;justify-content:space-between;padding:0 8px 8px 12px;margin-bottom:2px;position:relative}.sidebar-group-header-inline{justify-content:flex-start}.sidebar-group-title{font-family:var(--font-body);font-size:10px;font-weight:600;color:var(--text-on-dark-dim);letter-spacing:1.5px;text-transform:uppercase}.sidebar-group-header:after{content:"";position:absolute;left:12px;bottom:0;width:92px;height:2px;border-radius:99px;opacity:.9}.sidebar-group-projects .sidebar-group-header:after{background:var(--accent)}.sidebar-group-models .sidebar-group-header:after{background:var(--accent-green);width:84px}.sidebar-group-admin .sidebar-group-header:after{background:var(--accent-admin-purple);width:96px}.sidebar-group .tree-item{margin:4px 6px}.sidebar-group .tree-section{margin:0 6px 2px 18px;padding-left:12px}.sidebar-group-projects .tree-add-project{margin:6px 6px 8px}.sidebar-link{font-weight:500}.sidebar-group-models .tree-item.active{background:#4caf7d33;color:var(--text-on-dark)}.sidebar-group-admin .tree-item.active{background:#a966e838;color:var(--text-on-dark)}.topbar{display:flex;align-items:center;gap:12px;padding:0 0 20px;border-bottom:1px solid var(--border-light);margin-bottom:20px;flex-wrap:wrap}.view-tab{padding:8px 16px;border:none;background:transparent;color:var(--text-secondary);font-family:var(--font-body);font-size:13px;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all .2s;white-space:nowrap}.view-tab:hover{background:var(--bg-hover)}.view-tab.active{background:var(--text-primary);color:var(--text-on-dark)}.search-input{padding:8px 14px 8px 36px;border:2px solid var(--border-input-subtle);border-radius:var(--radius-md);background:var(--bg-input);font-family:var(--font-body);font-size:13px;color:var(--text-primary);outline:none;transition:border .2s;width:220px}.search-input:focus{border-color:var(--border-focus)}.search-input::placeholder{color:var(--text-tertiary)}.filter-select{padding:7px 12px;border:2px solid var(--border-input-subtle);border-radius:var(--radius-md);background:var(--bg-input);font-family:var(--font-body);font-size:12px;color:var(--text-primary);outline:none;cursor:pointer}.task-row{display:grid;grid-template-columns:48px minmax(200px,2fr) 120px 110px 120px 100px 100px 60px;align-items:center;gap:8px;padding:12px 16px;border-radius:var(--radius-lg);transition:all .15s;cursor:pointer;border:1px solid transparent}.task-row:hover{background:var(--bg-card);border-color:#2c24180d;box-shadow:var(--shadow-card)}.task-row.selected{background:#e8553a14;border-color:#e8553a;box-shadow:0 0 0 1px #e8553a40,0 2px 16px #e8553a1a}.task-row.drag-parent{border-color:var(--accent);background:#e8553a14}.task-header{display:grid;grid-template-columns:48px minmax(200px,2fr) 120px 110px 120px 100px 100px 60px;gap:8px;padding:0 16px 8px}.task-root-drop{margin:0 16px 10px;border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:8px 12px;font-family:var(--font-body);font-size:12px;color:var(--text-secondary);background:var(--kanban-col-bg);transition:all .15s}.task-root-drop.active{border-color:var(--accent);color:var(--accent);background:#e8553a14}.task-drag-handle{font-family:var(--font-body);font-size:16px;color:var(--text-tertiary);cursor:grab;-webkit-user-select:none;user-select:none;padding:8px 6px;line-height:1;border-radius:var(--radius-sm);transition:all .15s;display:flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}.task-drag-handle:hover{background:var(--bg-hover);color:var(--text-secondary)}.task-drag-handle:active{cursor:grabbing;color:var(--accent);background:var(--accent-bg)}.task-collapse-btn{border:none;background:var(--collapse-btn-bg);color:#6b6253;width:24px;height:24px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;padding:0;flex-shrink:0;transition:background .15s,color .15s}.task-collapse-btn:hover{background:var(--collapse-btn-hover);color:var(--text-primary)}.task-level-chip{display:inline-flex;align-items:center;padding:2px 6px;border-radius:var(--radius-md);font-family:var(--font-body);font-size:10px;font-weight:600;color:#3f69c6;background:#5b8def24}.task-level-chip.parent{color:#8a5a1e;background:#e8973a26}.task-level-chip.collapsed{color:#555;background:#2c24181a}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-pill);font-family:var(--font-body);font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer;transition:all .15s}.status-badge:hover{filter:brightness(.95)}.priority-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.avatar{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:10px;font-weight:700;color:var(--text-on-accent);flex-shrink:0}.avatar-stack{display:flex}.avatar-stack .avatar{margin-left:-6px;border:2px solid var(--avatar-border)}.avatar-stack .avatar:first-child{margin-left:0}.kanban-board{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;padding-bottom:20px;align-items:flex-start;min-width:max-content;-webkit-overflow-scrolling:touch}.kanban-col{flex:0 0 280px;width:280px;min-width:280px;max-width:280px;min-height:140px;background:var(--kanban-col-bg);border-radius:var(--radius-xl);padding:16px;display:flex;flex-direction:column;gap:10px;border:1px solid transparent;transition:all .15s}.kanban-col.drag-over{border-color:var(--accent);background:#e8553a0f}.kanban-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:14px;cursor:pointer;transition:all .2s;border:1px solid var(--kanban-col-border)}.kanban-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.kanban-card.dragging{opacity:.55}.kanban-empty{border:1px dashed var(--kanban-empty-border);border-radius:var(--radius-md);padding:10px;font-family:var(--font-body);font-size:12px;color:var(--text-tertiary);text-align:center;background:#ffffff80}.detail-panel{width:var(--detail-panel-width);border-left:1px solid var(--border-light);background:var(--bg-card);overflow-y:auto;padding:28px;flex-shrink:0;animation:slideLeft .25s ease}@keyframes slideLeft{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.comment-bubble{padding:12px 16px;border-radius:var(--radius-lg);background:var(--bg-tertiary);margin-bottom:10px}.gantt-bar{height:28px;border-radius:var(--radius-sm);position:absolute;top:6px;display:flex;align-items:center;padding:0 8px;font-family:var(--font-body);font-size:11px;font-weight:500;color:var(--text-on-accent);white-space:nowrap;overflow:hidden;cursor:pointer;transition:all .15s;min-width:24px}.gantt-bar:hover{filter:brightness(1.1);transform:scaleY(1.1)}.btn-primary{padding:10px 22px;border-radius:var(--radius-md);border:none;background:var(--accent);color:var(--text-on-accent);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-btn)}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-btn-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-ghost{padding:10px 22px;border-radius:var(--radius-md);border:2px solid var(--border-medium);background:transparent;color:var(--text-secondary);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-ghost:hover{border-color:var(--border-strong)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s}.modal{background:var(--bg-primary);border-radius:var(--radius-2xl);padding:32px;width:500px;max-width:90vw;box-shadow:var(--shadow-modal);animation:slideUp .3s cubic-bezier(.4,0,.2,1);max-height:90vh;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-label{font-family:var(--font-body);font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:1px;text-transform:uppercase;display:block;margin-bottom:6px}.form-input{padding:10px 14px;border:2px solid var(--border-input);border-radius:var(--radius-md);background:var(--bg-input);font-family:var(--font-body);font-size:13px;color:var(--text-primary);outline:none;width:100%;transition:border .2s}.form-input:focus{border-color:var(--border-focus)}.form-textarea{padding:10px 14px;border:2px solid var(--border-input);border-radius:var(--radius-md);background:var(--bg-input);font-family:var(--font-body);font-size:13px;color:var(--text-primary);outline:none;width:100%;transition:border .2s;resize:vertical;min-height:80px}.form-textarea:focus{border-color:var(--border-focus)}.stat-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:20px;border:1px solid var(--kanban-col-border);transition:all .2s}.stat-card:hover{box-shadow:var(--shadow-card-hover)}.tag-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--radius-lg);font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:.3px}.progress-bar{height:4px;border-radius:2px;background:var(--progress-track);overflow:hidden}.progress-fill{height:100%;border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1)}.close-btn{width:32px;height:32px;border:none;background:var(--close-btn-bg);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s;font-size:14px}.close-btn:hover{background:var(--accent-bg);color:var(--accent)}.user-check{padding:6px 10px;border-radius:var(--radius-sm);border:2px solid var(--border-medium);cursor:pointer;display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:12px;transition:all .15s;background:transparent;color:var(--text-primary)}.user-check:hover{border-color:var(--border-strong)}.user-check.active{border-color:var(--accent);background:var(--accent-bg)}.model-ref-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--kanban-col-bg);margin-bottom:6px;transition:all .15s}.model-ref-row:hover{background:var(--bg-hover)}.model-status-dot{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0;border:2px solid var(--bg-primary);box-shadow:0 0 0 1px #2c24181a}.model-ref-name{font-family:var(--font-body);font-size:13px;font-weight:600;flex:1;color:var(--text-primary)}.model-ref-status{font-family:var(--font-body);font-size:11px;color:var(--text-secondary)}.model-selector{position:relative;margin-top:8px}.model-selector-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-card-hover);max-height:200px;overflow-y:auto;z-index:10}.model-selector-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:all .15s;font-family:var(--font-body);font-size:12px}.model-selector-item:hover{background:var(--bg-hover)}.toast-container{position:fixed;top:16px;right:16px;z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;padding:12px 20px;border-radius:var(--radius-lg);font-family:var(--font-body);font-size:13px;font-weight:500;box-shadow:0 8px 24px #0000001f;animation:toastIn .3s ease;display:flex;align-items:center;gap:8px;max-width:400px}.toast-success{background:#e8f8ef;color:#2c6e49;border:1px solid rgba(76,175,125,.2)}.toast-error{background:#fef0ed;color:#9b2c1a;border:1px solid rgba(232,85,58,.2)}.toast-info{background:#edf3fe;color:#1e4080;border:1px solid rgba(91,141,239,.2)}.toast-exit{animation:toastOut .25s ease forwards}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-sidebar)}.login-card{background:var(--bg-primary);border-radius:var(--radius-2xl);padding:48px;width:400px;max-width:90vw;box-shadow:var(--shadow-login)}.login-error{color:var(--accent);font-family:var(--font-body);font-size:12px;margin-top:8px}.theme-toggle{border:none;background:#e8e0d414;color:var(--text-on-dark-muted);width:32px;height:32px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .15s;flex-shrink:0}.theme-toggle:hover{background:#e8e0d426;color:var(--text-on-dark)}.mobile-nav{display:none}.mobile-nav-item{border:none;background:transparent;color:var(--text-secondary);font-family:var(--font-body);font-size:10px;min-height:44px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;transition:all .15s}.mobile-nav-item.active{color:var(--accent);font-weight:700}.mobile-nav-icon{font-size:16px;line-height:1}.mobile-nav-label{white-space:nowrap}[data-theme=dark]{--bg-primary: #0f1221;--bg-secondary: #151a30;--bg-tertiary: #1c2541;--bg-card: #181e36;--bg-hover: rgba(232, 224, 212, .08);--bg-selected: rgba(232, 85, 58, .12);--bg-sidebar: linear-gradient(180deg, #0a0d1a, #131830);--bg-overlay: rgba(5, 5, 15, .7);--bg-input: #1c2541;--text-primary: #E8E0D4;--text-secondary: #A89F93;--text-tertiary: #746B5F;--border-light: rgba(232, 224, 212, .08);--border-medium: rgba(232, 224, 212, .12);--border-strong: rgba(232, 224, 212, .22);--border-input: rgba(232, 224, 212, .14);--border-input-subtle: rgba(232, 224, 212, .08);--shadow-card: 0 2px 12px rgba(0, 0, 0, .3);--shadow-card-hover: 0 4px 24px rgba(0, 0, 0, .4);--shadow-modal: 0 24px 64px rgba(0, 0, 0, .6);--shadow-login: 0 24px 64px rgba(0, 0, 0, .6);--scrollbar-thumb: rgba(232, 224, 212, .12);--scrollbar-thumb-hover: rgba(232, 224, 212, .22);--kanban-col-bg: rgba(232, 224, 212, .04);--kanban-col-border: rgba(232, 224, 212, .08);--kanban-empty-border: rgba(232, 224, 212, .12);--progress-track: rgba(232, 224, 212, .1);--close-btn-bg: rgba(232, 224, 212, .08);--collapse-btn-bg: rgba(232, 224, 212, .1);--collapse-btn-hover: rgba(232, 224, 212, .18);--avatar-border: var(--bg-primary);color-scheme:dark}[data-theme=dark] .task-row{border-bottom:1px solid rgba(232,224,212,.06);border-radius:0;margin:0}[data-theme=dark] .task-row:hover{background:#e8e0d40d;border-color:#e8e0d41a}[data-theme=dark] .task-row.selected{background:#e8553a26;border-color:#e8553a99;box-shadow:0 0 0 1px #e8553a4d,0 2px 20px #e8553a1f}[data-theme=dark] .comment-bubble{background:#1c2541;border:1px solid rgba(232,224,212,.1)}[data-theme=dark] .detail-panel{border-left:2px solid rgba(232,224,212,.1);background:#131830}[data-theme=dark] .form-input,[data-theme=dark] .form-textarea{border-color:#e8e0d41f;background:#1c2541}[data-theme=dark] .form-input:focus,[data-theme=dark] .form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px #e8553a26}[data-theme=dark] .filter-select{border-color:#e8e0d41f;background:#1c2541}[data-theme=dark] .stat-card{background:#181e36;border-color:#e8e0d414}[data-theme=dark] .task-level-chip{color:#7da3e8;background:#5b8def33}[data-theme=dark] .task-level-chip.parent{color:#e8a74b;background:#e8973a33}[data-theme=dark] .task-level-chip.collapsed{color:#a89f93;background:#e8e0d414}[data-theme=dark] .status-badge{box-shadow:inset 0 0 0 1px #ffffff0f}[data-theme=dark] .user-check{border-color:#e8e0d41f}[data-theme=dark] .user-check.active{border-color:var(--accent);background:#e8553a1f}[data-theme=dark] .kanban-card{background:#181e36;border-color:#e8e0d414}[data-theme=dark] .kanban-card:hover{border-color:#e8e0d424}[data-theme=dark] .modal{background:#151a30;border:1px solid rgba(232,224,212,.1)}[data-theme=dark] .priority-dot{box-shadow:0 0 6px currentColor}[data-theme=dark] .view-tab.active{background:#e8e0d4;color:#0f1221}[data-theme=dark] .btn-ghost{border-color:#e8e0d424;color:#a89f93}[data-theme=dark] .btn-ghost:hover{border-color:#e8e0d440;color:#e8e0d4}[data-theme=dark] .kanban-empty{background:#1c254199}[data-theme=dark] .toast-success{background:#1a3328;color:#8db87c;border-color:#4caf7d33}[data-theme=dark] .toast-error{background:#3a1a1a;color:#e8553a;border-color:#e8553a33}[data-theme=dark] .toast-info{background:#1a2640;color:#5b8def;border-color:#5b8def33}[data-theme=dark] .task-collapse-btn{color:#a89f93;background:#e8e0d414}[data-theme=dark] .task-collapse-btn:hover{color:#e8e0d4;background:#e8e0d426}@media(max-width:639px){.sidebar{display:none!important}.app-main{padding-bottom:72px}.mobile-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));gap:2px;background:var(--bg-card);border-top:1px solid var(--border-light);z-index:60;padding:4px 4px calc(env(safe-area-inset-bottom,0px) + 4px)}.detail-panel{position:fixed;top:0;right:0;bottom:0;left:0;width:100%!important;z-index:40;border-left:none;border-radius:0}.task-row{grid-template-columns:36px 1fr;gap:4px;padding:10px 12px}.task-header{display:none}.task-row>:nth-child(n+3){display:none}.topbar{flex-direction:column;align-items:stretch;gap:8px;padding-bottom:12px}.topbar h1{font-size:22px}.search-input{width:100%}.modal{width:100vw;max-width:100vw;border-radius:var(--radius-xl) var(--radius-xl) 0 0;margin-top:auto;max-height:85vh}.btn-primary,.btn-ghost,.user-check,.filter-select,.view-tab{min-height:44px}.kanban-board{scroll-snap-type:x mandatory}.kanban-col{scroll-snap-align:start}.stat-card{padding:14px}}@media(min-width:640px)and (max-width:1023px){.sidebar{width:var(--sidebar-collapsed)!important}.sidebar.expanded{width:var(--sidebar-width)!important;position:fixed;z-index:50;box-shadow:4px 0 24px #0003}.task-row,.task-header{grid-template-columns:44px 1fr 100px 90px 100px 60px}.task-row>:nth-child(6),.task-row>:nth-child(7),.task-header>:nth-child(6),.task-header>:nth-child(7){display:none}.detail-panel{width:340px}}.editable-text-hover:hover{background-color:#f1f5f9;box-shadow:0 0 0 1px #cbd5e1}.undo-toast-container{position:fixed;bottom:24px;right:24px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:420px;pointer-events:none}.undo-toast{pointer-events:auto;position:relative;overflow:hidden;background:#2c2418eb;color:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 8px 32px #00000040,0 2px 8px #00000026;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:undoSlideIn .3s cubic-bezier(.4,0,.2,1)}.undo-toast-progress{position:absolute;top:0;left:0;height:3px;width:var(--progress, 100%);background:linear-gradient(90deg,#e8553a,#ff8a65);border-radius:3px;transition:width 1s linear}.undo-toast-content{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.undo-toast-message{font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;line-height:1.4;flex:1}.undo-toast-timer{font-family:DM Mono,monospace;font-size:12px;color:#fff9;white-space:nowrap}.undo-toast-actions{display:flex;gap:8px}.undo-toast-btn{border:none;border-radius:8px;padding:6px 14px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:5px;transition:background .15s,transform .1s}.undo-toast-btn:active{transform:scale(.96)}.undo-toast-btn-undo{background:#fff;color:#2c2418}.undo-toast-btn-undo:hover{background:#f0eeeb}.undo-toast-btn-now{background:#ffffff26;color:#fffc}.undo-toast-btn-now:hover{background:#ffffff40}@keyframes undoSlideIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}[data-theme=dark] .undo-toast{background:#282830f2;box-shadow:0 8px 32px #00000080}[data-theme=dark] .undo-toast-btn-undo{background:#ffffff26;color:#fff}[data-theme=dark] .undo-toast-btn-undo:hover{background:#ffffff40}.role-management{padding:32px;max-width:900px;margin:0 auto}.role-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.role-management-header h2{display:flex;align-items:center;gap:10px;font-family:DM Sans,sans-serif;font-size:22px;font-weight:700;color:#2c2418}.role-btn-add{display:flex;align-items:center;gap:6px;background:#e8553a;color:#fff;border:none;border-radius:10px;padding:8px 18px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.role-btn-add:hover{background:#d44a31}.role-error{display:flex;align-items:center;gap:8px;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:13px}.role-error button{background:none;border:none;cursor:pointer;color:inherit}.role-cards{display:flex;flex-direction:column;gap:12px}.role-card{background:#fff;border:1px solid #e8e0d4;border-radius:12px;overflow:hidden;transition:box-shadow .2s}.role-card:hover{box-shadow:0 2px 12px #0000000f}.role-card.editing{border-color:#e8553a;box-shadow:0 0 0 2px #e8553a26}.role-card-header{display:flex;align-items:center;gap:14px;padding:14px 18px}.role-card-color{width:6px;height:40px;border-radius:3px;flex-shrink:0}.role-card-info{flex:1;min-width:0}.role-card-label{font-weight:600;font-size:15px;color:#2c2418}.role-card-name{font-size:11px;color:#9b917f;font-family:DM Mono,monospace}.role-card-actions{display:flex;align-items:center;gap:6px}.role-badge-system{font-size:10px;background:#f5f0eb;color:#9b917f;padding:3px 8px;border-radius:6px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.role-btn{display:flex;align-items:center;gap:4px;border:none;border-radius:8px;padding:6px 10px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}.role-btn-edit{background:#f5f0eb;color:#6b6152}.role-btn-edit:hover{background:#ece6dd}.role-btn-delete{background:#fef2f2;color:#b91c1c}.role-btn-delete:hover{background:#fee2e2}.role-btn-save{background:#e8553a;color:#fff}.role-btn-save:hover{background:#d44a31}.role-btn-cancel{background:#f5f0eb;color:#6b6152}.role-btn-cancel:hover{background:#ece6dd}.role-card-body{padding:0 18px 18px}.role-edit-row{margin-bottom:14px}.role-edit-row label{display:block;font-size:11px;font-weight:600;color:#9b917f;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.role-edit-input{width:100%;padding:7px 10px;border:1px solid #e8e0d4;border-radius:8px;font-family:DM Sans,sans-serif;font-size:13px;background:#faf8f5;outline:none;transition:border-color .15s}.role-edit-input:focus{border-color:#e8553a}.role-edit-label{font-weight:600;font-size:15px}.role-edit-name{font-size:12px;font-family:DM Mono,monospace;margin-top:4px}.role-color-picker{display:flex;gap:6px}.role-color-btn{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .15s}.role-color-btn.active{border-color:#2c2418;transform:scale(1.15)}.role-color-btn:hover{transform:scale(1.1)}.role-perms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.role-perm-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e8e0d4;border-radius:8px;cursor:pointer;font-size:12px;transition:all .15s;-webkit-user-select:none;user-select:none}.role-perm-item:hover{background:#faf8f5}.role-perm-item.active{background:#fef3ed;border-color:#e8553a}.role-perm-item input[type=checkbox]{accent-color:#E8553A}.role-card-perms-summary{display:flex;flex-wrap:wrap;gap:4px;padding:0 18px 12px}.role-perm-tag{display:inline-flex;align-items:center;gap:4px;background:#f5f0eb;color:#6b6152;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:500}.role-perm-none{font-size:12px;color:#c4b9a8;font-style:italic}.role-card-desc{font-size:12px;color:#9b917f;padding:0 18px 12px}[data-theme=dark] .role-management-header h2{color:#e8e0d4}[data-theme=dark] .role-card{background:#1e1e24;border-color:#333}[data-theme=dark] .role-card-label{color:#e8e0d4}[data-theme=dark] .role-edit-input{background:#2a2a30;border-color:#444;color:#e8e0d4}[data-theme=dark] .role-perm-item{border-color:#444;color:#ccc}[data-theme=dark] .role-perm-item:hover{background:#2a2a30}[data-theme=dark] .role-perm-item.active{background:#e8553a26}[data-theme=dark] .role-perm-tag{background:#2a2a30;color:#aaa}[data-theme=dark] .role-badge-system{background:#2a2a30;color:#888}[data-theme=dark] .role-btn-edit,[data-theme=dark] .role-btn-cancel{background:#2a2a30;color:#aaa}[data-theme=dark] .role-error{background:#2a1515;border-color:#5a1515}
