:root{--color-bg: #f1f5f9;--color-surface: #ffffff;--color-surface-subtle: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text: #0f172a;--color-text-muted: #475569;--color-text-subtle: #94a3b8;--color-primary: #1d4ed8;--color-primary-hover: #1e40af;--color-primary-soft: #eff6ff;--color-primary-border: #bfdbfe;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-danger-soft: #fef2f2;--color-danger-border: #fecaca;--color-success: #047857;--color-success-hover: #065f46;--color-success-soft: #ecfdf5;--color-success-border: #a7f3d0;--color-warning: #b45309;--color-warning-hover: #92400e;--color-warning-soft: #fffbeb;--color-warning-border: #fde68a;--color-neutral-soft: #f1f5f9;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px -1px rgba(15, 23, 42, .08), 0 2px 4px -1px rgba(15, 23, 42, .04);--shadow-lg: 0 12px 28px -4px rgba(15, 23, 42, .12), 0 4px 10px -2px rgba(15, 23, 42, .06);--sidebar-width: 250px;--topbar-height: 64px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.5}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.015em;color:var(--color-text)}p{margin:0}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}label{display:flex;flex-direction:column;gap:var(--space-1);font-size:13px;font-weight:500;color:var(--color-text-muted)}input,textarea,select{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:8px 12px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1d4ed81f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-weight:600;font-size:13px;border-radius:var(--radius-sm);border:1px solid transparent;padding:8px 14px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 1px 2px #1d4ed833}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 3px 8px #1d4ed840}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface-subtle)}.btn-ghost{background:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-neutral-soft);color:var(--color-text)}.btn-danger,.btn-danger-soft{background:var(--color-danger-soft);border-color:var(--color-danger-border);color:var(--color-danger);display:inline-flex;align-items:center;gap:6px;font-weight:600}.btn-danger:hover:not(:disabled),.btn-danger-soft:hover:not(:disabled){background:var(--color-danger);border-color:var(--color-danger);color:#fff;box-shadow:0 2px 6px #dc262640}.btn-sm{padding:5px 11px;font-size:12px;border-radius:var(--radius-sm)}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);flex-shrink:0;background:#0d1527;border-right:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar-brand-mark{width:38px;height:38px;border-radius:var(--radius-md);background:linear-gradient(135deg,#1d4ed8,#1e3a8a);border:1px solid rgba(96,165,250,.35);box-shadow:0 0 14px #2563eb4d;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-brand-name{font-size:16px;font-weight:800;letter-spacing:.04em;color:#fff}.sidebar-brand-tagline{font-size:10.5px;font-weight:500;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.sidebar-nav{display:flex;flex-direction:column;gap:3px;padding:14px 12px;flex-grow:1}.nav-item{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--radius-sm);border:none;background:transparent;color:#94a3b8;font:inherit;font-weight:500;font-size:13.5px;cursor:pointer;text-align:left;width:100%;transition:all .15s ease;position:relative}.nav-item:hover:not(:disabled){background:#ffffff12;color:#f8fafc}.nav-item.is-active{background:linear-gradient(90deg,#2563eb38,#2563eb0a);color:#60a5fa;font-weight:600;box-shadow:inset 3px 0 #3b82f6}.nav-item:disabled{cursor:default}.nav-item-icon{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sidebar-footer{border-top:1px solid rgba(255,255,255,.08);padding:14px;display:flex;flex-direction:column;gap:8px;background:#00000026}.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid rgba(255,255,255,.08);transition:background .15s ease}.sidebar-user:hover{background:#ffffff14}.sidebar-user-avatar{width:32px;height:32px;border-radius:50%;background:#1e293b;border:1px solid rgba(96,165,250,.35);color:#60a5fa;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;flex-shrink:0}.sidebar-user-name{font-size:13px;font-weight:600;color:#f1f5f9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-size:11px;color:#64748b}.sidebar-footer .btn-ghost{color:#94a3b8;font-size:12.5px}.sidebar-footer .btn-ghost:hover:not(:disabled){background:#ffffff14;color:#fff}.app-main{flex-grow:1;min-width:0;display:flex;flex-direction:column}.topbar{min-height:var(--topbar-height);border-bottom:1px solid var(--color-border);background:var(--color-surface);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 var(--space-6)}.topbar-left{display:flex;align-items:center;gap:var(--space-3);min-width:0}.hamburger-btn{display:none;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer}.hamburger-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.sidebar-close-btn{display:none;margin-left:auto;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);flex-shrink:0}.sidebar-close-btn:hover{background:var(--color-neutral-soft);color:var(--color-text)}.sidebar-overlay{display:none}.topbar-titles{display:flex;flex-direction:column;gap:2px;padding:var(--space-3) 0;min-width:0}.topbar-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-title{font-size:17px;font-weight:700}.topbar-description{font-size:12.5px;color:var(--color-text-muted)}.topbar-user{display:flex;align-items:center;gap:var(--space-3);font-size:12.5px;color:var(--color-text-muted);flex-shrink:0}.notification-bell-wrap{position:relative}.notification-bell-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer}.notification-bell-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.notification-badge{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;line-height:17px;text-align:center}.notification-panel{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-width:calc(100vw - 2 * var(--space-4));max-height:70vh;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:220;display:flex;flex-direction:column;overflow:hidden}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0}.notification-panel-title{font-size:13.5px;font-weight:700}.notification-panel-body{overflow-y:auto}.notification-list{list-style:none;margin:0;padding:0}.notification-item{display:flex;align-items:flex-start;gap:4px;border-bottom:1px solid var(--color-border)}.notification-item:last-child{border-bottom:none}.notification-item.is-unread{background:var(--color-primary-soft)}.notification-item-main{flex-grow:1;min-width:0;display:flex;align-items:flex-start;gap:var(--space-3);text-align:left;border:none;background:transparent;cursor:pointer;padding:var(--space-3) var(--space-4);font:inherit}.notification-item-icon{flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.notification-item-icon-primary{background:var(--color-primary-soft);color:var(--color-primary)}.notification-item-icon-neutral{background:var(--color-neutral-soft);color:var(--color-text-muted)}.notification-item-icon-warning{background:var(--color-warning-soft);color:var(--color-warning)}.notification-item-icon-danger{background:var(--color-danger-soft);color:var(--color-danger)}.notification-item-body{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notification-item-title{font-size:13px;font-weight:600;color:var(--color-text)}.notification-item-message{font-size:12.5px;color:var(--color-text-muted);overflow-wrap:break-word}.notification-item-time{font-size:11px;color:var(--color-text-subtle)}.notification-item-delete{flex-shrink:0;border:none;background:transparent;color:var(--color-text-subtle);cursor:pointer;padding:8px;margin:var(--space-2) var(--space-2) 0 0;border-radius:var(--radius-sm);display:flex}.notification-item-delete:hover{background:var(--color-danger-soft);color:var(--color-danger)}.app-content{flex-grow:1;padding:var(--space-6);max-width:1200px;width:100%;margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.page-header-title{font-size:20px;font-weight:700}.page-header-description{margin-top:4px;font-size:13px;color:var(--color-text-muted)}.page-header-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-body{padding:var(--space-5)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4);margin-top:var(--space-5)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-sm)}.stat-card-value{font-size:28px;font-weight:700;line-height:1.2}.stat-card-label{margin-top:var(--space-1);font-size:12.5px;color:var(--color-text-muted);font-weight:500}.stat-card-accent{width:34px;height:34px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3)}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-xs)}table.data-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}.data-table thead th{text-align:left;padding:11px var(--space-4);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);border-bottom:2px solid var(--color-border);background:#f8fafc;white-space:nowrap}.data-table tbody td{padding:12px var(--space-4);border-bottom:1px solid var(--color-border-subtle);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background-color .12s ease}.data-table tbody tr:hover{background:#f8fafc}.table-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:5px;padding:2.5px 8px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.01em;white-space:nowrap;line-height:1.25}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-success{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.badge-neutral{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.badge-warning{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.badge-primary{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.badge-danger{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.text-muted{color:var(--color-text-subtle)}.state-block{padding:var(--space-6);text-align:center;color:var(--color-text-muted);font-size:13.5px}.notice{padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:var(--space-4);box-shadow:var(--shadow-xs)}.notice-success{background:#ecfdf5;border:1px solid #a7f3d0;border-left:3px solid var(--color-success);color:#065f46}.notice-error{background:#fef2f2;border:1px solid #fecaca;border-left:3px solid var(--color-danger);color:#991b1b}.filters-bar{display:flex;gap:var(--space-4);align-items:flex-end;margin-bottom:var(--space-4);flex-wrap:wrap}.filters-bar label{min-width:160px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:100;animation:modalFadeIn .15s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-panel{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid rgba(226,232,240,.9);border-top:3px solid var(--color-primary);box-shadow:0 20px 25px -5px #00000029,0 8px 10px -6px #00000014;padding:22px 24px;width:440px;max-width:100%;max-height:calc(100vh - 2 * var(--space-4));overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:12px;border-bottom:1px solid var(--color-border)}.modal-header h3{font-size:16px;font-weight:750;color:var(--color-text);letter-spacing:-.01em;margin:0}.modal-close{border:none;background:transparent;cursor:pointer;font-size:18px;line-height:1;color:var(--color-text-muted);width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .12s ease}.modal-close:hover{background:var(--color-neutral-soft);color:var(--color-text)}.task-detail-modal-panel{max-width:760px;width:min(760px,95vw);padding:0;display:flex;flex-direction:column;max-height:calc(100vh - 40px);border-top:3px solid var(--color-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 25px 50px -12px #0f172a47,0 0 0 1px #e2e8f0e6}.task-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 18px;background:#fff;border-bottom:1px solid var(--color-border);flex-shrink:0}.task-detail-header-main{display:flex;align-items:flex-start;gap:14px;min-width:0;flex:1 1 auto}.task-detail-icon-badge{width:44px;height:44px;border-radius:var(--radius-md);background:linear-gradient(135deg,#eff6ff,#dbeafe);color:var(--color-primary);border:1px solid rgba(29,78,216,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #1d4ed81f}.task-detail-header-text{min-width:0;flex:1 1 auto}.task-detail-header-tag{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);margin-bottom:3px}.task-detail-id{color:var(--color-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;font-size:11px}.task-detail-header-dot{color:var(--color-border-strong)}.task-detail-header-type{color:var(--color-text-muted)}.task-detail-title{font-size:19px;font-weight:750;color:var(--color-text);line-height:1.3;margin:0;word-break:break-word;letter-spacing:-.015em}.task-detail-close-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s ease;flex-shrink:0;margin-top:2px}.task-detail-close-btn:hover{background:#f1f5f9;color:var(--color-text);border-color:var(--color-border-strong);transform:scale(1.05)}.task-detail-body{padding:22px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:22px;flex:1 1 auto}.task-detail-meta-card{background:#f8fafc;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px 18px;box-shadow:var(--shadow-xs)}.task-detail-meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 24px}.task-detail-meta-item{display:flex;flex-direction:column;gap:5px}.task-detail-meta-item.is-full-width{grid-column:1 / -1;border-top:1px solid var(--color-border-subtle);padding-top:12px;margin-top:2px}.task-detail-meta-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle)}.task-detail-meta-icon{color:var(--color-primary);display:inline-flex;align-items:center}.task-detail-meta-value{font-size:13.5px;font-weight:600;color:var(--color-text);line-height:1.4;word-break:break-word}.task-detail-meta-sub{font-size:12px;font-weight:500;color:var(--color-text-muted)}.task-detail-meta-muted{font-size:13px;color:var(--color-text-muted);font-weight:500}.task-detail-meta-desc{font-size:13.5px;color:var(--color-text);line-height:1.55;white-space:pre-wrap;word-break:break-word;background:#fff;padding:11px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border);margin-top:2px}.task-detail-meta-desc.is-empty{color:var(--color-text-muted);font-style:italic;background:transparent;border:none;padding:0;margin-top:2px}.task-detail-status-box{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.task-detail-status-select{height:32px;padding:0 10px;font-size:12.5px;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:#fff;color:var(--color-text);cursor:pointer;transition:all .12s ease}.task-detail-status-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #1d4ed82e}.task-detail-updating-text{font-size:12px;color:var(--color-primary);font-weight:600}.task-detail-urgency-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.25}.task-detail-urgency-chip.is-overdue{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.task-detail-urgency-chip.is-today{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.task-detail-urgency-chip.is-upcoming{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.task-detail-section{display:flex;flex-direction:column;gap:12px}.task-detail-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.task-detail-section-title-wrap{display:flex;flex-direction:column;gap:2px}.task-detail-section-title{font-size:14.5px;font-weight:750;color:var(--color-text);display:flex;align-items:center;gap:8px;margin:0;letter-spacing:-.01em}.task-detail-section-desc{font-size:12px;color:var(--color-text-muted);margin:0}.task-detail-section-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.task-detail-section-dot.is-success{background:var(--color-success);box-shadow:0 0 0 2px var(--color-success-soft)}.task-detail-section-dot.is-purple{background:#7c3aed;box-shadow:0 0 0 2px #ede9fe}.task-detail-section-count{background:#e2e8f0;color:#475569;font-size:11px;font-weight:700;padding:2.5px 8px;border-radius:999px;letter-spacing:.02em}.task-detail-comment-form{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;box-shadow:var(--shadow-xs)}.task-detail-textarea{width:100%;min-height:100px;padding:10px 12px;font-size:13.5px;font-family:inherit;line-height:1.5;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:#fafbfc;resize:vertical;transition:all .15s ease;box-sizing:border-box}.task-detail-textarea:focus{background:#fff;border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1d4ed81f}.task-detail-comment-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:4px}.task-detail-shortcut-hint{font-size:11.5px;color:var(--color-text-muted);display:inline-flex;align-items:center;gap:4px}.kbd{display:inline-block;padding:2px 5px;font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:600;line-height:1;color:#334155;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:3px;box-shadow:0 1px #0000001a}.task-detail-feed{display:flex;flex-direction:column;gap:10px}.task-detail-feed-item{display:flex;gap:12px;align-items:flex-start}.task-detail-feed-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:var(--color-primary);font-weight:750;font-size:13.5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #bfdbfe;box-shadow:0 1px 3px #0000000d}.task-detail-feed-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 16px;flex:1 1 auto;box-shadow:var(--shadow-xs);transition:border-color .12s ease}.task-detail-feed-card:hover{border-color:var(--color-border-strong)}.task-detail-feed-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;font-size:12px}.task-detail-feed-author{font-weight:700;color:var(--color-text)}.task-detail-feed-username{color:var(--color-text-muted);font-size:11.5px}.task-detail-feed-date{color:var(--color-text-subtle);font-size:11.5px;margin-left:auto}.task-detail-feed-content{font-size:13px;color:var(--color-text);line-height:1.5;white-space:pre-wrap;word-break:break-word}.task-detail-empty-box{text-align:center;padding:24px 16px;background:#fafbfc;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;gap:6px}.task-detail-empty-box.is-compact{padding:14px 12px}.task-detail-empty-icon{width:42px;height:42px;border-radius:50%;background:#f1f5f9;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;margin-bottom:2px}.task-detail-empty-title{font-size:13.5px;font-weight:700;color:var(--color-text);margin:0}.task-detail-empty-desc{font-size:12px;color:var(--color-text-muted);margin:0;max-width:380px;line-height:1.45}.task-detail-loading-box{padding:16px;text-align:center;font-size:12.5px;color:var(--color-text-muted);background:#fafbfc;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.task-detail-audit-timeline{list-style:none;margin:0;display:flex;flex-direction:column;position:relative;padding:0 0 0 20px}.task-detail-audit-timeline:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:#e2e8f0}.task-detail-audit-item{position:relative;margin-bottom:12px;font-size:13px}.task-detail-audit-item:last-child{margin-bottom:0}.task-detail-audit-dot{position:absolute;left:-20px;top:6px;width:8px;height:8px;border-radius:50%;background:#7c3aed;border:2px solid #ffffff;box-shadow:0 0 0 1px #cbd5e1}.task-detail-audit-content{min-width:0}.task-detail-audit-main{line-height:1.45;color:var(--color-text)}.task-detail-audit-main.is-expandable{cursor:pointer}.task-detail-audit-actor{font-weight:700}.task-detail-audit-action{color:var(--color-text)}.task-detail-audit-time{font-size:11.5px;color:var(--color-text-muted)}.task-detail-audit-toggle{font-size:11.5px;color:var(--color-primary);margin-left:6px;cursor:pointer;text-decoration:underline;background:none;border:none;padding:0;font-family:inherit;font-weight:600}.task-detail-audit-changes{margin-top:6px;padding:8px 12px;background:#f8fafc;border-radius:var(--radius-sm);border:1px solid var(--color-border);list-style:none;display:flex;flex-direction:column;gap:4px;font-size:12px}.task-detail-audit-change-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.task-detail-audit-change-label{font-weight:700;color:var(--color-text-muted)}.task-detail-audit-change-from{color:#64748b;text-decoration:line-through}.task-detail-audit-change-arrow{color:var(--color-text-subtle);font-size:11px}.task-detail-audit-change-to{color:var(--color-primary);font-weight:600}.task-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;background:#fafbfc;border-top:1px solid var(--color-border);flex-shrink:0;flex-wrap:wrap}.task-detail-footer-actions{display:flex;align-items:center;gap:8px;margin-left:auto}@media (max-width: 640px){.task-detail-modal-panel{width:95vw!important;max-width:95vw!important;margin:8px auto;max-height:calc(100vh - 20px)}.task-detail-header{padding:14px 16px}.task-detail-icon-badge{width:36px;height:36px}.task-detail-title{font-size:16px}.task-detail-body{padding:14px 16px;gap:16px}.task-detail-meta-card{padding:12px 14px}.task-detail-meta-grid{grid-template-columns:1fr;gap:12px}.task-detail-footer{padding:12px 16px}.task-detail-footer button{min-height:38px}}@media (max-width: 480px){.task-detail-footer{flex-direction:column-reverse;align-items:stretch;gap:8px}.task-detail-footer-actions{width:100%;margin-left:0}.task-detail-footer .btn{width:100%;justify-content:center}.task-detail-comment-actions{flex-direction:column;align-items:stretch;gap:8px}.task-detail-comment-actions .btn{width:100%;justify-content:center}}.form-stack{display:flex;flex-direction:column;gap:var(--space-3)}.form-actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-1)}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 15%,#1e293b,#0d1527 65%,#080d19);padding:var(--space-4);position:relative}.auth-card{width:100%;max-width:380px;background:#fff;border:1px solid rgba(226,232,240,.8);border-top:4px solid var(--color-primary);border-radius:var(--radius-lg);box-shadow:0 25px 50px -12px #00000059;padding:32px 28px}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);text-align:center}.auth-brand-mark{width:52px;height:52px;border-radius:var(--radius-md);background:linear-gradient(135deg,#1d4ed8,#1e3a8a);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 14px #1d4ed859}.auth-brand-title{font-size:21px;font-weight:800;letter-spacing:.04em;color:var(--color-text);margin-top:4px}.auth-brand-subtitle{font-size:12.5px;color:var(--color-text-muted);line-height:1.4}.full-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:13.5px}.dashboard-container{display:flex;flex-direction:column;gap:var(--space-4)}.dashboard-hero{background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--color-primary);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:14px}.dashboard-hero-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.dashboard-officer-info{display:flex;align-items:center;gap:16px}.dashboard-officer-avatar{width:48px;height:48px;border-radius:var(--radius-md);background:linear-gradient(135deg,#eff6ff,#dbeafe);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;border:1px solid rgba(29,78,216,.2);box-shadow:0 2px 8px #1d4ed81f}.dashboard-officer-title{font-size:20px;font-weight:750;letter-spacing:-.015em;color:var(--color-text);line-height:1.2}.dashboard-officer-meta{font-size:12.5px;color:var(--color-text-muted);display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.dashboard-hero-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dashboard-briefing-banner{padding:12px 16px;border-radius:var(--radius-md);font-size:13.5px;font-weight:500;display:flex;align-items:center;gap:12px;line-height:1.45;box-shadow:var(--shadow-xs)}.dashboard-briefing-banner.is-danger{background:#fef2f2;border:1px solid #fee2e2;border-left:4px solid var(--color-danger);color:#991b1b}.dashboard-briefing-banner.is-warning{background:#fffbeb;border:1px solid #fef3c7;border-left:4px solid var(--color-warning);color:#92400e}.dashboard-briefing-banner.is-primary{background:#eff6ff;border:1px solid #dbeafe;border-left:4px solid var(--color-primary);color:#1e40af}.dashboard-briefing-banner.is-success{background:#ecfdf5;border:1px solid #d1fae5;border-left:4px solid var(--color-success);color:#065f46}.dashboard-metrics-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-3)}.dashboard-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;cursor:pointer;transition:all .18s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:4px;text-align:left;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.dashboard-stat-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.dashboard-stat-card:focus-visible,.dashboard-notif-card:focus-visible,.dashboard-reminder-card:focus-visible,.calendar-cell:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.dashboard-stat-card.is-open{border-top:3px solid #2563eb}.dashboard-stat-card.is-overdue{border-top:3px solid #dc2626}.dashboard-stat-card.is-today{border-top:3px solid #d97706}.dashboard-stat-card.is-inprogress{border-top:3px solid #0284c7}.dashboard-stat-card.is-done{border-top:3px solid #059669}.dashboard-stat-card.is-reminders{border-top:3px solid #7c3aed}.dashboard-stat-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;flex-shrink:0}.dashboard-stat-icon.is-open{background:#eff6ff;color:#2563eb}.dashboard-stat-icon.is-overdue{background:#fef2f2;color:#dc2626}.dashboard-stat-icon.is-today{background:#fffbeb;color:#d97706}.dashboard-stat-icon.is-inprogress{background:#f0f9ff;color:#0284c7}.dashboard-stat-icon.is-done{background:#ecfdf5;color:#059669}.dashboard-stat-icon.is-reminders{background:#f5f3ff;color:#7c3aed}.dashboard-stat-card.is-overdue-alert{border-color:#fca5a5;background:linear-gradient(180deg,#fff,#fff5f5);box-shadow:0 0 12px #dc26261a}.dashboard-stat-card.is-overdue-alert:hover{border-color:var(--color-danger);box-shadow:0 4px 14px #dc262633}.dashboard-stat-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.dashboard-stat-value{font-size:28px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.15;color:var(--color-text);margin-top:3px}.dashboard-stat-sub{font-size:11.5px;color:var(--color-text-subtle);font-weight:500}.dashboard-critical-panel{background:var(--color-surface);border:1px solid #fecaca;border-left:4px solid var(--color-danger);border-radius:var(--radius-lg);padding:16px 20px;box-shadow:var(--shadow-sm);background:linear-gradient(180deg,#fff,#fffdfd)}.dashboard-critical-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;border-bottom:1px solid #fee2e2;padding-bottom:10px}.dashboard-critical-title{font-size:14px;font-weight:750;color:#991b1b;display:flex;align-items:center;gap:8px;letter-spacing:-.01em}.dashboard-critical-list{display:flex;flex-direction:column;gap:8px}.dashboard-critical-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#fff;border:1px solid #fee2e2;border-radius:var(--radius-sm);transition:all .15s ease;flex-wrap:wrap;box-shadow:var(--shadow-xs)}.dashboard-critical-row:hover{background:#fff8f8;border-color:#fca5a5;transform:translate(2px)}.dashboard-all-clear{background:linear-gradient(135deg,#ecfdf5,#f0fdf4);border:1px solid #a7f3d0;border-left:4px solid var(--color-success);border-radius:var(--radius-md);padding:14px 18px;display:flex;align-items:center;gap:12px;color:#065f46;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-xs)}.dashboard-two-col{display:grid;grid-template-columns:1.55fr 1fr;gap:var(--space-4);align-items:start}.dashboard-col{display:flex;flex-direction:column;gap:var(--space-4)}.dashboard-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.dashboard-panel-header{padding:13px 18px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--color-surface-subtle);flex-wrap:wrap}.dashboard-panel-title{font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--color-text)}.dashboard-panel-link{font-size:12px;font-weight:600;color:var(--color-primary);text-decoration:none;display:flex;align-items:center;gap:4px;cursor:pointer;background:none;border:none;padding:2px 4px;border-radius:4px;transition:all .12s ease}.dashboard-panel-link:hover{color:var(--color-primary-hover);background:var(--color-primary-soft);text-decoration:none}.dashboard-panel-body{padding:14px;display:flex;flex-direction:column;gap:8px}.dashboard-task-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);transition:all .12s ease}.dashboard-task-row:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong);transform:translate(2px)}.dashboard-task-name{font-size:13px;font-weight:600;color:var(--color-text);cursor:pointer;background:none;border:none;padding:0;text-align:left}.dashboard-task-name:hover{color:var(--color-primary);text-decoration:underline}.dashboard-task-meta{font-size:11.5px;color:var(--color-text-muted);display:flex;align-items:center;gap:6px;margin-top:2px}.dashboard-feed-card{padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:4px;transition:all .12s ease}.dashboard-feed-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.dashboard-feed-task{font-size:12px;font-weight:600;color:var(--color-primary);cursor:pointer;background:none;border:none;padding:0;text-align:left}.dashboard-feed-task:hover{text-decoration:underline}.dashboard-feed-content{font-size:12.5px;color:var(--color-text);line-height:1.4}.dashboard-feed-footer{font-size:11px;color:var(--color-text-muted);display:flex;align-items:center;gap:6px;margin-top:3px}.dashboard-reminder-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border:1px solid #ede9fe;border-radius:var(--radius-sm);background:#faf5ff;box-shadow:var(--shadow-xs);cursor:pointer;transition:all .12s ease}.dashboard-reminder-card:hover{border-color:#c4b5fd;background:#f5f3ff;transform:translate(2px)}.dashboard-reminder-title{font-size:12.5px;font-weight:600;color:#4c1d95}.dashboard-reminder-time{font-size:11px;font-weight:600;color:#7c3aed;background:#ede9fe;padding:2px 8px;border-radius:var(--radius-sm);white-space:nowrap}.dashboard-notif-card{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-xs);cursor:pointer;transition:all .12s ease}.dashboard-notif-card:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong);transform:translate(2px)}.dashboard-notif-card.is-unread{background:#eff6ff;border-color:#bfdbfe}.dashboard-notif-dot{width:7px;height:7px;border-radius:50%;background:var(--color-primary);flex-shrink:0;margin-top:5px}.dashboard-notif-title{font-size:12.5px;font-weight:600;color:var(--color-text)}.dashboard-notif-msg{font-size:11.5px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.dashboard-stale-card{padding:10px 14px;border:1px solid #fed7aa;border-left:3px solid var(--color-warning);background:#fffbeb;border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);display:flex;align-items:center;justify-content:space-between;gap:8px}.dashboard-stale-title{font-size:12.5px;font-weight:600;color:var(--color-text);background:none;border:none;padding:0;cursor:pointer;text-align:left}.dashboard-stale-title:hover{text-decoration:underline}.dashboard-unit-table{width:100%;border-collapse:collapse;font-size:12.5px}.dashboard-unit-table th{text-align:left;padding:8px 10px;font-size:11px;font-weight:700;text-transform:uppercase;color:var(--color-text-subtle);border-bottom:1px solid var(--color-border);background:#fafbfc}.dashboard-unit-table td{padding:8px 10px;border-bottom:1px solid var(--color-border);vertical-align:middle}.dashboard-unit-table tr:hover td{background:#fafbfc}.task-list{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.task-list-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:all .12s ease}.task-list-item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.task-list-item.is-highlighted{border-color:var(--color-primary);background:#eff6ff;box-shadow:0 0 0 2px #1d4ed826,var(--shadow-sm)}.task-list-item-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}.task-list-item-title{font-size:13.5px;font-weight:600;color:var(--color-text);line-height:1.35}.task-list-item-meta{font-size:11.5px;color:var(--color-text-muted)}.task-list-item-right{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}@media (max-width: 1100px){.dashboard-metrics-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 960px){.dashboard-two-col{grid-template-columns:1fr}}@media (max-width: 600px){.dashboard-metrics-grid{grid-template-columns:repeat(2,1fr)}.dashboard-hero-header{flex-direction:column;align-items:flex-start}.dashboard-hero-actions{width:100%}.dashboard-hero-actions .btn{flex:1 1 auto}}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.calendar-nav{display:flex;align-items:center;gap:var(--space-2)}.calendar-nav-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer}.calendar-nav-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.calendar-title{font-size:15px;font-weight:700;min-width:150px;text-align:center;text-transform:capitalize}.calendar-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px}.calendar-weekday{padding:10px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);background:#f8fafc;border-bottom:2px solid var(--color-border);border-right:1px solid var(--color-border)}.calendar-weekday:last-child{border-right:none}.calendar-cell{min-height:112px;padding:7px;border-right:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-border-subtle);display:flex;flex-direction:column;gap:4px;transition:background-color .12s ease}.calendar-cell:hover{background:#fafbfc}.calendar-grid>.calendar-cell:nth-child(7n){border-right:none}.calendar-cell.is-outside{background:#f8fafc;opacity:.75}.calendar-cell.is-outside .calendar-day-number{color:var(--color-text-subtle)}.calendar-day-number{font-size:12px;font-weight:600;color:var(--color-text-muted)}.calendar-cell.is-today{background:#1d4ed809}.calendar-cell.is-today .calendar-day-number{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:700;box-shadow:0 1px 4px #1d4ed859}.calendar-task-chip{display:block;width:100%;text-align:left;border-radius:4px;padding:2.5px 6px;font-size:11px;font-weight:600;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25;transition:transform .1s ease,filter .1s ease}.calendar-task-chip:hover{filter:brightness(.96);transform:translate(1px)}.calendar-task-chip-todo{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-left:2.5px solid #94a3b8}.calendar-task-chip-primary{background:#eff6ff;color:#1e40af;border:1px solid #dbeafe;border-left:2.5px solid #2563eb}.calendar-task-chip-success{background:#ecfdf5;color:#065f46;border:1px solid #d1fae5;border-left:2.5px solid #059669}.calendar-task-chip-danger{background:#fef2f2;color:#991b1b;border:1px solid #fee2e2;border-left:2.5px solid #dc2626}.calendar-more{font-size:11px;color:var(--color-text-subtle);font-weight:600;border:none;background:transparent;cursor:pointer;text-align:left;padding:2px 6px}.calendar-more:hover{color:var(--color-primary)}.task-center{display:flex;flex-direction:column;gap:var(--space-3)}.task-center-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.task-center-header-info{display:flex;flex-direction:column;gap:4px}.task-center-header-badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary);background:#eff6ff;border:1px solid #dbeafe;padding:3px 8px;border-radius:var(--radius-sm);width:fit-content}.task-center-title{font-size:22px;font-weight:750;color:var(--color-text);letter-spacing:-.02em;line-height:1.2;margin:2px 0 0}.task-center-subtitle{font-size:13px;color:var(--color-text-muted);line-height:1.4;margin:0;max-width:650px}.task-center-header-actions{display:flex;align-items:center;gap:var(--space-2)}.task-create-btn{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13.5px;height:38px;padding:0 16px;border-radius:var(--radius-sm);box-shadow:var(--shadow-xs)}.task-create-btn-plus{font-size:16px;font-weight:700;line-height:1}.task-stats-ribbon{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.task-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:3.5px solid #94a3b8;border-radius:var(--radius-md);padding:9px 12px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:10px;text-align:left;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-xs)}.task-stat-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.task-stat-card.is-total{border-left-color:#64748b}.task-stat-card.is-todo{border-left-color:#3b82f6}.task-stat-card.is-inprogress{border-left-color:#f59e0b}.task-stat-card.is-overdue{border-left-color:#ef4444}.task-stat-card.is-done{border-left-color:#10b981}.task-stat-card.is-active{border-color:var(--color-primary);background:#eff6ff;box-shadow:0 0 0 1px var(--color-primary),var(--shadow-xs)}.task-stat-card.is-overdue-alert{border-color:#fca5a5;border-left-color:var(--color-danger);background:#fffbfa}.task-stat-card.is-overdue-alert.is-active{border-color:var(--color-danger);border-left-color:var(--color-danger);background:#fef2f2;box-shadow:0 0 0 1.5px var(--color-danger),var(--shadow-xs)}.task-stat-icon-wrap{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#f1f5f9;color:#475569}.task-stat-card.is-todo .task-stat-icon-wrap{background:#eff6ff;color:#2563eb}.task-stat-card.is-inprogress .task-stat-icon-wrap{background:#fffbeb;color:#d97706}.task-stat-card.is-overdue .task-stat-icon-wrap{background:#fef2f2;color:#dc2626}.task-stat-card.is-done .task-stat-icon-wrap{background:#f0fdf4;color:#16a34a}.task-stat-info{display:flex;flex-direction:column;min-width:0}.task-stat-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);line-height:1.2}.task-stat-count{font-size:19px;font-weight:750;line-height:1.15;color:var(--color-text);font-variant-numeric:tabular-nums;margin-top:1px}.task-toolbar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;box-shadow:var(--shadow-xs);height:auto;min-height:0}.task-search-wrapper{position:relative;display:flex;align-items:center;flex:1 1 280px;min-width:200px;height:auto;min-height:0}.task-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--color-text-subtle);pointer-events:none;display:flex;align-items:center;z-index:1}.task-search-input{width:100%;padding-left:32px!important;padding-right:28px!important;height:36px;font-size:13px;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);transition:all .15s ease;line-height:normal}.task-search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb1f}.task-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;cursor:pointer;color:var(--color-text-muted);font-size:13px;padding:2px 5px;border-radius:var(--radius-sm);line-height:1;z-index:1}.task-search-clear:hover{color:var(--color-text);background:var(--color-neutral-soft)}.task-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-overdue-toggle-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);transition:all .15s ease;box-shadow:var(--shadow-xs)}.task-overdue-toggle-btn:hover{border-color:var(--color-danger);color:var(--color-danger)}.task-overdue-toggle-btn.is-active{border-color:var(--color-danger);background:#fef2f2;color:#991b1b}.task-overdue-pill{background:var(--color-danger);color:#fff;border-radius:999px;font-size:11px;padding:1px 6px;font-weight:700;line-height:1.2}.task-select-wrap{position:relative;display:inline-flex;align-items:center}.task-select-icon{position:absolute;left:9px;pointer-events:none;color:var(--color-text-subtle);z-index:1}.task-quick-select{font-size:12.5px;padding:4px 10px 4px 28px;height:36px;border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text);cursor:pointer;font-weight:500;transition:border-color .15s ease}.task-quick-select:hover{border-color:var(--color-primary)}.task-quick-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #2563eb1f}.task-reset-filters-btn{height:36px;font-size:12px;font-weight:600;padding:0 12px}.task-status-bar{display:flex;align-items:center;gap:4px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:var(--radius-md);padding:4px;overflow-x:auto;scrollbar-width:none}.task-status-bar::-webkit-scrollbar{display:none}.task-tab-btn{background:transparent;border:none;border-radius:var(--radius-sm);padding:6px 12px;font-size:12.5px;font-weight:600;color:#475569;cursor:pointer;transition:all .12s ease;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.task-tab-btn:hover{color:var(--color-text);background:#fff9}.task-tab-btn.is-active{background:#fff;color:var(--color-primary);font-weight:700;box-shadow:0 1px 3px #00000014}.task-tab-count{font-size:11px;font-weight:700;padding:1px 6px;border-radius:999px;background:#e2e8f0;color:#475569;font-variant-numeric:tabular-nums;line-height:1.2}.task-tab-btn.is-active .task-tab-count{background:#dbeafe;color:var(--color-primary)}.task-list-header{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.task-list-header-left{display:flex;align-items:center;gap:8px}.task-list-title{font-size:14px;font-weight:700;color:var(--color-text);margin:0;letter-spacing:-.01em}.task-list-count-badge{font-size:11.5px;font-weight:600;color:var(--color-text-muted);background:var(--color-neutral-soft);padding:2px 8px;border-radius:999px;font-variant-numeric:tabular-nums}.task-list-filter-tag{font-size:11px;font-weight:600;color:#b45309;background:#fef3c7;border:1px solid #fde68a;padding:1px 6px;border-radius:4px}.task-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px;gap:10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.task-empty-state-icon{width:48px;height:48px;border-radius:50%;background:#f1f5f9;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;margin-bottom:2px}.task-empty-state-title{font-size:15px;font-weight:700;color:var(--color-text);margin:0}.task-empty-state-desc{font-size:13px;color:var(--color-text-muted);max-width:460px;margin:0;line-height:1.45}.task-empty-state-actions{margin-top:6px}.task-table-wrap{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);overflow-x:auto;box-shadow:var(--shadow-xs)}.task-table-status-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.task-table-title-cell{display:flex;flex-direction:column;gap:3px;max-width:380px}.task-table-dates-cell{display:flex;flex-direction:column;gap:3px;font-size:12px;line-height:1.4}.task-table-no-comment{display:flex;align-items:center;gap:6px}.task-table-actions-cell{display:flex;align-items:center;justify-content:flex-end;gap:6px}.task-row-overdue{background:#fffbfa;border-left:3.5px solid var(--color-danger)}.task-row-overdue:hover{background:#fff2f2!important}.task-title-btn{background:none;border:none;padding:0;font:inherit;font-weight:600;font-size:13.5px;color:var(--color-text);cursor:pointer;text-align:left;line-height:1.35;display:inline}.task-title-btn:hover{color:var(--color-primary);text-decoration:underline}.task-desc-subtle{font-size:12px;color:var(--color-text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}.task-comment-container{background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-sm);padding:6px 10px;max-width:250px;cursor:pointer;transition:all .15s ease}.task-comment-container:hover{border-color:#93c5fd;background:#eff6ff}.task-comment-content{font-size:12px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.task-comment-meta{font-size:11px;color:var(--color-text-muted);margin-top:2px}.task-mobile-container{display:none;flex-direction:column;gap:10px}.task-mobile-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:3.5px solid #94a3b8;border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-xs);transition:border-color .15s ease}.task-mobile-card.is-status-todo{border-left-color:#3b82f6}.task-mobile-card.is-status-in_progress{border-left-color:#f59e0b}.task-mobile-card.is-status-done{border-left-color:#10b981}.task-mobile-card.is-status-cancelled{border-left-color:#94a3b8}.task-mobile-card.is-overdue{border-left-color:var(--color-danger)!important;background:#fffbfa}.task-mobile-header{display:flex;align-items:center;justify-content:space-between;gap:6px}.task-mobile-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.task-mobile-body{display:flex;flex-direction:column;gap:2px}.task-mobile-title{font-size:14px;font-weight:650;color:var(--color-text);line-height:1.35}.task-mobile-desc{font-size:12px;color:var(--color-text-muted);line-height:1.35;margin:2px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-mobile-meta-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--color-text-muted);padding-top:4px;border-top:1px dashed var(--color-border)}.task-mobile-dates{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text-muted)}.task-mobile-meta-icon{color:var(--color-text-subtle);flex-shrink:0}.task-mobile-date-arrow{color:var(--color-text-subtle)}.task-mobile-author{font-size:11.5px;color:var(--color-text-muted)}.task-mobile-comment{max-width:100%;margin:2px 0;padding:6px 10px}.task-mobile-comment-header{font-size:11px;font-weight:600;color:var(--color-text-muted);margin-bottom:2px}.task-mobile-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--color-border);padding-top:8px;margin-top:2px}.task-mobile-status-select-wrap{flex:1 1 auto;max-width:150px}.task-mobile-status-select-wrap .task-quick-select{width:100%;height:32px;padding-left:8px;font-size:12px}.task-mobile-btn-group{display:flex;align-items:center;gap:6px}.profile-admin-card{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--color-border-strong);border-left:4px solid var(--color-primary);border-radius:var(--radius-md);padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-xs);-webkit-user-select:none;user-select:none}.profile-admin-card:hover{transform:translateY(-2px);border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.profile-admin-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.profile-admin-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.profile-admin-icon-wrap{width:40px;height:40px;border-radius:var(--radius-sm);background:#eff6ff;color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #bfdbfe}.profile-admin-title{margin:0;font-size:1.15rem;font-weight:700;color:var(--color-text);line-height:1.25}.profile-admin-badge{display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary);background:#eff6ff;border:1px solid #bfdbfe;padding:1px 6px;border-radius:4px;margin-top:3px}.profile-admin-desc{font-size:.875rem;color:var(--color-text-muted);line-height:1.5;margin:0 0 .875rem}.profile-admin-sublinks{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.profile-admin-sublink{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#334155;background:#f1f5f9;border:1px solid #e2e8f0;padding:3px 8px;border-radius:var(--radius-sm)}.profile-admin-action-row{display:flex;align-items:center;justify-content:flex-start;border-top:1px solid var(--color-border);padding-top:.75rem;margin-top:auto}.profile-admin-action-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:650;color:var(--color-primary);min-height:44px}.admin-dashboard-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.25rem}.admin-back-btn{display:inline-flex;align-items:center;gap:6px;min-height:38px;font-size:13px;font-weight:600;padding:0 14px}.admin-portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem}.admin-module-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-xs);min-height:200px;-webkit-user-select:none;user-select:none}.admin-module-card:hover{transform:translateY(-2px);border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.admin-module-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.admin-module-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.admin-module-icon-wrap{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-module-icon-wrap.is-users{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.admin-module-icon-wrap.is-units{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.admin-module-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);background:#f1f5f9;border:1px solid #e2e8f0;padding:2px 8px;border-radius:999px}.admin-module-content{display:flex;flex-direction:column;gap:6px}.admin-module-title{font-size:17px;font-weight:750;color:var(--color-text);margin:0;line-height:1.25}.admin-module-desc{font-size:13px;color:var(--color-text-muted);line-height:1.45;margin:0}.admin-module-footer{display:flex;align-items:center;justify-content:flex-start;border-top:1px solid var(--color-border);padding-top:.75rem;margin-top:auto}.admin-module-action-link{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:650;color:var(--color-primary);min-height:44px}.admin-security-banner{background:#f8fafc;border:1px solid #e2e8f0;border-left:3.5px solid #0284c7;border-radius:var(--radius-md);padding:12px 16px;display:flex;align-items:center;gap:12px;margin-top:.25rem}.admin-security-banner-icon{color:#0284c7;flex-shrink:0}.admin-security-banner-text{font-size:12.5px;color:#334155;line-height:1.45}@media (max-width: 900px){.task-stats-ribbon{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.task-stat-card{padding:8px;gap:6px}.task-stat-icon-wrap{width:28px;height:28px}.task-stat-count{font-size:16px}.task-table-wrap{display:none}.task-mobile-container{display:flex}.task-toolbar{flex-direction:column;align-items:stretch;justify-content:flex-start;height:auto;min-height:0;padding:12px;gap:10px}.task-search-wrapper{flex:none;width:100%;min-width:0;height:auto;min-height:0;margin:0}.task-search-input{height:46px;font-size:14px;padding-left:36px!important;padding-right:32px!important}.task-toolbar-actions{width:100%;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px;margin:0}.task-overdue-toggle-btn{height:44px;font-size:13px}.task-select-wrap{height:44px}.task-select-wrap .task-quick-select,.task-reset-filters-btn{height:44px;font-size:13px}.hamburger-btn{display:inline-flex}.notification-panel{position:fixed;top:var(--topbar-height);left:var(--space-3);right:var(--space-3);width:auto;max-width:none;max-height:calc(100vh - var(--topbar-height) - var(--space-4))}.sidebar-close-btn{display:inline-flex;align-items:center;justify-content:center}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:210;width:min(280px,84vw);flex-direction:column;align-items:stretch;overflow-y:auto;border-right:1px solid var(--color-border);border-bottom:none;box-shadow:var(--shadow-md);transform:translate(-100%);transition:transform .2s ease}.sidebar.is-open{transform:translate(0)}.sidebar-brand{padding:var(--space-4)}.sidebar-nav{flex-direction:column;padding:var(--space-2) var(--space-3)}.sidebar-footer{border-top:1px solid var(--color-border);border-left:none;flex-direction:column;align-items:stretch}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0f172a73;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-overlay.is-visible{opacity:1;pointer-events:auto}.topbar{padding:0 var(--space-4)}.topbar-username{display:none}.app-content{padding:var(--space-4)}.filters-bar label{min-width:0;flex:1 1 150px}.btn-sm{min-height:32px}.table-actions .btn{flex:1 1 auto}.modal-panel{width:100%;padding:var(--space-4)}.form-actions{flex-wrap:wrap}.calendar-grid{grid-template-columns:repeat(7,minmax(96px,1fr))}.calendar-cell{min-height:84px}}@media (max-width: 640px){.task-center-header{flex-direction:column;align-items:stretch;gap:10px}.task-center-header-actions{width:100%}.task-create-btn{width:100%;justify-content:center;height:42px}.task-stats-ribbon{grid-template-columns:repeat(2,1fr);gap:6px}.task-stat-card.is-total{grid-column:span 2}.task-toolbar{flex-direction:column;align-items:stretch;justify-content:flex-start;padding:12px;gap:10px;height:auto;min-height:0}.task-search-wrapper{flex:none;width:100%;min-width:0;height:auto;min-height:0;margin:0}.task-search-input{height:48px;font-size:14px;padding-left:36px!important;padding-right:32px!important}.task-toolbar-actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;width:100%;margin:0}.task-overdue-toggle-btn{flex:1 1 calc(50% - 4px);min-width:130px;height:46px;font-size:13px;justify-content:center;padding:0 10px}.task-select-wrap{flex:1 1 calc(50% - 4px);min-width:130px;height:46px}.task-select-wrap .task-quick-select{width:100%;height:46px;font-size:13px;padding-left:28px;padding-right:10px}.task-reset-filters-btn{width:100%;height:42px;font-size:13px;justify-content:center}.task-status-bar{height:auto;min-height:44px;padding:4px;margin:0}.task-list-header{margin-top:4px;margin-bottom:0}.admin-dashboard-header-row{flex-direction:column;align-items:stretch;gap:10px}.admin-back-btn{width:100%;justify-content:center;height:42px}.admin-portal-grid{grid-template-columns:1fr;gap:1rem}.profile-admin-action-btn,.admin-module-action-link{width:100%;justify-content:space-between}}@media (max-width: 480px){.app-content{padding:var(--space-3)}.page-header-title{font-size:18px}.topbar-description{display:none}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}.calendar-grid{grid-template-columns:repeat(7,minmax(76px,1fr))}.calendar-cell{min-height:70px;padding:4px}.calendar-task-chip{font-size:10px;padding:2px 4px}.stat-grid,.mini-stat-grid,.unit-summary-grid{grid-template-columns:1fr}}
