@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--accent: #4f46e5;--accent-hover: #4338ca;--accent-light: #eef2ff;--accent-subtle: rgba(79, 70, 229, .08);--accent-glow: rgba(79, 70, 229, .2);--bg-base: #f5f6f8;--bg-surface: #ffffff;--bg-elevated: #f8f9fb;--bg-hover: #f1f2f5;--bg-overlay: rgba(15, 20, 40, .5);--text-primary: #0f1729;--text-secondary: #5a6478;--text-muted: #9ba3b4;--text-inverse: #ffffff;--text-accent: #4f46e5;--border: #e4e7ee;--border-strong: #cdd2dd;--border-accent: rgba(79, 70, 229, .35);--status-planned: #64748b;--status-planned-bg: #f1f5f9;--status-progress: #4f46e5;--status-progress-bg: #eef2ff;--status-done: #059669;--status-done-bg: #d1fae5;--status-blocked: #dc2626;--status-blocked-bg: #fee2e2;--priority-low: #0ea5e9;--priority-medium: #f59e0b;--priority-high: #f97316;--priority-urgent: #ef4444;--sidebar-width: 248px;--header-height: 52px;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-full: 9999px;--shadow-xs: 0 1px 2px rgba(15, 20, 40, .05);--shadow-sm: 0 1px 4px rgba(15, 20, 40, .07), 0 1px 2px rgba(15, 20, 40, .04);--shadow-md: 0 4px 16px rgba(15, 20, 40, .1), 0 1px 4px rgba(15, 20, 40, .06);--shadow-lg: 0 12px 40px rgba(15, 20, 40, .14), 0 4px 12px rgba(15, 20, 40, .08);--shadow-xl: 0 24px 64px rgba(15, 20, 40, .18);--shadow-accent: 0 4px 16px rgba(79, 70, 229, .3);--t-fast: .1s ease;--t-base: .18s ease;--t-slow: .3s ease;--color-bg-base: var(--bg-base);--color-bg-surface: var(--bg-surface);--color-bg-elevated: var(--bg-elevated);--color-bg-hover: var(--bg-hover);--color-accent: var(--accent);--color-accent-hover: var(--accent-hover);--color-accent-light: var(--accent-light);--color-accent-subtle: var(--accent-subtle);--color-accent-glow: var(--accent-glow);--color-text-primary: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-muted: var(--text-muted);--color-text-inverse: var(--text-inverse);--color-border: var(--border);--color-border-strong: var(--border-strong);--color-border-accent: var(--border-accent);--shadow-md: var(--shadow-md);--shadow-lg: var(--shadow-lg);--transition-fast: var(--t-fast);--transition-base: var(--t-base);--radius-sm: var(--r-sm);--radius-md: var(--r-md);--radius-lg: var(--r-lg);--radius-xl: var(--r-xl);--radius-full: var(--r-full);--color-planned: var(--status-planned);--color-planned-bg: var(--status-planned-bg);--color-inprogress: var(--status-progress);--color-inprogress-bg: var(--status-progress-bg);--color-completed: var(--status-done);--color-completed-bg: var(--status-done-bg);--color-high: var(--priority-urgent);--color-high-bg: #fee2e2;--color-medium: var(--priority-medium);--color-medium-bg: #fef3c7;--color-low: var(--priority-low);--color-low-bg: #e0f2fe}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg-base);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-feature-settings:"cv11","ss01"}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d4d8e2;border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:#b0b7c9}a{color:var(--accent);text-decoration:none;transition:color var(--t-fast)}a:hover{color:var(--accent-hover)}input,textarea,select{font-family:inherit;font-size:13px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-md);color:var(--text-primary);outline:none;padding:7px 10px;transition:border-color var(--t-fast),box-shadow var(--t-fast)}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}input::placeholder,textarea::placeholder{color:var(--text-muted);font-weight:400}.input{padding:8px 11px;width:100%;border-radius:var(--r-md)}button{font-family:inherit;cursor:pointer;border:none;background:none;transition:all var(--t-fast)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1;white-space:nowrap;transition:all var(--t-fast);letter-spacing:-.1px}.btn-primary{background:var(--accent);color:#fff;border:1px solid var(--accent);box-shadow:0 1px 3px #4f46e54d,inset 0 1px #ffffff14}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--shadow-accent);transform:translateY(-.5px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1.5px solid var(--border);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary);padding:6px 10px}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:#fef2f2;color:#dc2626;border:1.5px solid #fecaca}.btn-danger:hover{background:#fee2e2;border-color:#fca5a5}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--r-full);font-size:11px;font-weight:600;letter-spacing:.2px}.badge-planned{background:var(--status-planned-bg);color:var(--status-planned)}.badge-inprogress{background:var(--status-progress-bg);color:var(--status-progress)}.badge-completed{background:var(--status-done-bg);color:var(--status-done)}.badge-high{background:#fee2e2;color:#dc2626}.badge-medium{background:#fef3c7;color:#d97706}.badge-low{background:#e0f2fe;color:#0284c7}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-sm)}.page-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border);background:var(--bg-surface);position:sticky;top:0;z-index:10}.page-header h1{font-size:17px;font-weight:700;color:var(--text-primary);letter-spacing:-.4px}.tab-bar{display:flex;gap:0;padding:0 24px;border-bottom:1px solid var(--border);background:var(--bg-surface)}.tab-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;color:var(--text-secondary);font-size:13px;font-weight:500;background:transparent;border-bottom:2px solid transparent;border-radius:0;transition:all var(--t-fast);position:relative}.tab-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .65s linear infinite}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes pulse-ring{0%,to{box-shadow:0 2px 8px #4f46e526}50%{box-shadow:0 4px 20px #4f46e559}}.animate-slide-up{animation:slide-up .25s ease forwards}.animate-fade-in{animation:fade-in .2s ease forwards}.animate-scale-in{animation:scale-in .2s ease forwards}.animate-pulse-ring{animation:pulse-ring 2s ease-in-out infinite}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 7px);transform:translate(-50%);background:var(--text-primary);color:#f9fafb;font-size:11px;font-weight:500;padding:4px 9px;border-radius:var(--r-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--t-fast);z-index:100;box-shadow:var(--shadow-sm)}[data-tooltip]:hover:after{opacity:1}.divider{height:1px;background:var(--border);margin:8px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:64px 24px;color:var(--text-muted);text-align:center}.empty-state .empty-icon{font-size:44px;opacity:.5;line-height:1}.empty-state h3{font-size:15px;font-weight:600;color:var(--text-secondary);letter-spacing:-.2px}.empty-state p{font-size:13px;max-width:300px;color:var(--text-muted);line-height:1.6}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fade-in .15s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background:var(--bg-surface);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);padding:28px;width:100%;max-width:520px;animation:scale-in .18s ease;max-height:90vh;overflow-y:auto;border:1px solid var(--border)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hide-mobile{display:initial}.show-mobile{display:none!important}@media (max-width: 767px){:root{--header-height: 52px}.hide-mobile{display:none!important}.show-mobile{display:initial!important}.modal-content{max-width:calc(100vw - 24px);padding:20px 16px;border-radius:var(--r-lg);margin:0 12px}.page-header{padding:12px 16px;flex-wrap:wrap;gap:8px}.page-header h1{font-size:15px}.tab-bar{padding:0 12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{padding:10px 12px;white-space:nowrap}.responsive-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.grid-2col,.grid-3col{grid-template-columns:1fr!important}}@media (max-width: 1023px){.hide-tablet{display:none!important}}.msg-list-item:hover .msg-delete-btn{opacity:1!important}
