.notification-wrap{position:relative}.notification-bell-btn{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:background var(--transition-fast)}.notification-bell-btn:hover{background:var(--color-bg);color:var(--color-text)}.notification-badge{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;border-radius:9px;background:var(--color-danger);color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 4px;pointer-events:none}.notification-sidebar-btn{position:relative}.notification-icon-wrap{position:relative;display:flex;align-items:center}.notification-icon-wrap .notification-badge{top:-6px;right:-8px}.notification-count-pill{margin-left:auto;min-width:20px;height:20px;border-radius:10px;background:var(--color-danger);color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 6px}.notification-panel{position:absolute;z-index:200;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px var(--color-shadow),0 2px 8px #00000014;overflow:hidden;min-width:320px;max-height:60vh;display:flex;flex-direction:column}.notification-panel--mobile{top:100%;right:0;margin-top:8px}.notification-panel--sidebar{bottom:0;left:100%;margin-left:8px}.notification-panel__header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--color-border)}.notification-panel__title{font-size:14px;font-weight:600;color:var(--color-text)}.notification-panel__count{font-size:12px;color:var(--color-text-muted)}.notification-panel__empty{padding:32px 16px;text-align:center;font-size:13px;color:var(--color-text-muted)}.notification-panel__list{overflow-y:auto;flex:1}.notification-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:12px 16px;border-bottom:1px solid var(--color-border);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--color-bg)}.notification-item__dot{width:8px;height:8px;border-radius:50%;margin-top:4px;flex-shrink:0}.notification-item--warning .notification-item__dot{background:#f59e0b}.notification-item--error .notification-item__dot{background:var(--color-danger)}.notification-item--info .notification-item__dot{background:#3b82f6}.notification-item__content{min-width:0}.notification-item__title{font-size:13px;font-weight:600;color:var(--color-text);line-height:1.3}.notification-item__message{font-size:12px;color:var(--color-text-secondary);margin-top:2px;line-height:1.4}@media(max-width:768px){.notification-panel--mobile{position:fixed;top:calc(56px + env(safe-area-inset-top));left:8px;right:8px;margin-top:0;min-width:unset}}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;height:100dvh;background:var(--color-card-bg);border-right:1px solid var(--color-border);display:flex;flex-direction:column;z-index:100}.sidebar-header{padding:20px 20px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--color-border)}.sidebar-logo{height:28px;width:auto}.sidebar-title{font-size:18px;font-weight:700;color:var(--color-navy);letter-spacing:-.02em}.sidebar-nav{flex:1;padding:12px 8px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.sidebar-bottom{padding:12px 8px;border-top:1px solid var(--color-border)}.sidebar-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:all var(--transition-fast)}.sidebar-link:hover{background:var(--color-bg);color:var(--color-text)}.sidebar-link--active{background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-navy)}.sidebar-link--active svg{color:var(--color-accent)}.mobile-header,.mobile-close,.mobile-overlay{display:none}@media(max-width:768px){.mobile-header{display:flex;align-items:center;gap:10px;position:fixed;top:0;left:0;right:0;height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));background:var(--color-card-bg);border-bottom:1px solid var(--color-border);z-index:90}.mobile-burger{margin-left:auto;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);color:var(--color-text);transition:background var(--transition-fast)}.mobile-burger:hover{background:var(--color-bg)}.mobile-overlay{display:block;position:fixed;inset:0;background:var(--color-overlay);z-index:99;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sidebar{transform:translate(-100%);transition:transform .25s ease;z-index:200;width:280px}.sidebar--open{transform:translate(0)}.mobile-close{display:flex;align-items:center;justify-content:center;margin-left:auto;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:all var(--transition-fast)}.mobile-close:hover{background:var(--color-bg);color:var(--color-text)}}.card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;cursor:grab;transition:box-shadow var(--transition-normal),border-color var(--transition-normal);-webkit-user-select:none;user-select:none;touch-action:none}.card:hover{border-color:var(--color-border);box-shadow:0 2px 8px var(--color-shadow)}.card--dragging{opacity:.4}.card--overlay{box-shadow:0 8px 24px #0000001f;border-color:var(--color-accent);cursor:grabbing;transform:rotate(2deg)}.card-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}.card-tags:empty{display:none}.card-tag{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;line-height:1.4}.card-tag--category{background:var(--color-bg);color:var(--color-text-secondary)}.card-tag--priority{color:#fff}.card-title{font-size:14px;font-weight:500;color:var(--color-text);line-height:1.4}.card-description{font-size:12px;color:var(--color-text-secondary);margin-top:6px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-subtasks{display:flex;align-items:center;gap:4px;margin-top:8px;font-size:12px;color:var(--color-text-muted)}.card-subtasks-icon{font-size:14px;line-height:1}.card-subtasks-count{font-weight:500}.column{background:var(--color-column-bg);border-radius:var(--radius-lg);display:flex;flex-direction:column;min-height:200px;max-height:calc(100vh - 100px);box-shadow:0 1px 3px var(--color-shadow);transition:box-shadow var(--transition-normal)}.column--over{box-shadow:0 0 0 2px var(--color-accent),0 4px 12px var(--color-shadow)}.column-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid var(--color-border)}.column-header-left{display:flex;align-items:center;gap:8px}.column-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.column-title{font-size:14px;font-weight:600;color:var(--color-text)}.column-count{font-size:12px;font-weight:500;color:var(--color-text-muted);background:var(--color-bg);padding:1px 8px;border-radius:10px}.column-add-btn{width:28px;height:28px;border-radius:var(--radius-sm);font-size:18px;font-weight:300;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.column-add-btn:hover{background:var(--color-bg);color:var(--color-accent)}.column-cards{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.column-empty{display:flex;align-items:center;justify-content:center;padding:32px 16px;color:var(--color-text-muted);font-size:13px}@media(max-width:768px){.column{max-height:calc(100vh - 140px)}}.modal-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-card-bg);border-radius:var(--radius-lg);padding:24px;width:100%;max-width:440px;box-shadow:0 16px 48px var(--color-shadow);animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal-heading{font-size:18px;font-weight:600;margin-bottom:20px;color:var(--color-text)}.modal-label{display:block;font-size:13px;font-weight:500;color:var(--color-text-secondary);margin-bottom:14px}.modal-input,.modal-textarea{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;color:var(--color-text);background:var(--color-card-bg);transition:border-color var(--transition-fast);outline:none}.modal-input:focus,.modal-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #3bde8326}.modal-textarea{resize:vertical;min-height:72px}.modal-row{display:flex;gap:12px}.modal-label--half{flex:1}.modal-select{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;color:var(--color-text);background:var(--color-card-bg);transition:border-color var(--transition-fast);outline:none;cursor:pointer}.modal-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #3bde8326}.tag-picker-selected,.tag-picker-available{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;padding:4px 10px;border-radius:20px;line-height:1.3;transition:background var(--transition-fast),color var(--transition-fast)}.tag-chip--selected{background:var(--color-accent);color:#fff}.tag-chip-remove{font-size:14px;line-height:1;color:#ffffffb3;margin-left:2px;padding:0}.tag-chip-remove:hover{color:#fff}.tag-chip--available{background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;border:1px dashed var(--color-border);padding:3px 10px}.tag-chip--available:hover{background:var(--color-border);color:var(--color-text);border-color:var(--color-text-muted)}.tag-picker-new{display:flex;gap:8px;margin-top:8px}.tag-picker-input{flex:1}.tag-picker-add{flex-shrink:0;padding:8px 12px}.tag-picker-add:disabled{opacity:.4;cursor:default}.subtask-list{list-style:none;margin-top:8px;display:flex;flex-direction:column;gap:4px}.subtask-item{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:var(--radius-sm);background:var(--color-bg);transition:background var(--transition-fast)}.subtask-item:hover{background:var(--color-border)}.subtask-checkbox-label{display:flex;align-items:center;gap:8px;flex:1;cursor:pointer;font-size:14px;color:var(--color-text)}.subtask-item--done .subtask-title{text-decoration:line-through;color:var(--color-text-muted)}.subtask-checkbox{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.subtask-remove{font-size:16px;color:var(--color-text-muted);padding:2px 6px;border-radius:var(--radius-sm);line-height:1;flex-shrink:0;background:none;border:none;cursor:pointer}.subtask-remove:hover{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,transparent)}.subtask-add{display:flex;gap:8px;margin-top:8px}.subtask-add-input{flex:1}.subtask-add-btn{flex-shrink:0;padding:8px 12px}.subtask-add-btn:disabled{opacity:.4;cursor:default}.modal-actions{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:8px}.modal-btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;transition:background var(--transition-fast),color var(--transition-fast)}.modal-btn--secondary{background:var(--color-bg);color:var(--color-text-secondary)}.modal-btn--secondary:hover{background:var(--color-border);color:var(--color-text)}.modal-btn--danger{color:var(--color-danger);background:none}.modal-btn--danger:hover{background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger-hover)}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:8px 32px 32px;flex:1;min-height:0}@media(max-width:1024px){.board{grid-template-columns:repeat(2,1fr);padding:8px 16px 16px}}@media(max-width:640px){.board{grid-template-columns:1fr;padding:8px 12px 12px}}.board-loading{display:flex;align-items:center;justify-content:center;flex:1;color:var(--color-text-muted);font-size:15px}.doc-layout{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card-bg);min-height:calc(100vh - 160px);overflow:hidden}.doc-sidebar{width:260px;min-width:200px;max-width:400px;border-right:1px solid var(--color-border);overflow-y:auto;padding:8px 0}.doc-divider{width:4px;cursor:col-resize;background:transparent;transition:background var(--transition-fast)}.doc-divider:hover{background:var(--color-accent)}.doc-content{flex:1;overflow-y:auto;padding:16px;position:relative}.doc-tree-node{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px;border:none;background:none;color:var(--color-text);font-size:.875rem;cursor:pointer;border-radius:var(--radius-sm);text-align:left;white-space:nowrap}.doc-tree-node:hover{background:var(--color-hover)}.doc-tree-node--selected{background:var(--color-accent-light);color:var(--color-accent);font-weight:600}.doc-tree-chevron{width:14px;font-size:.65rem;flex-shrink:0}.doc-tree-loading{padding:16px;color:var(--color-text-secondary);font-size:.875rem}.doc-file-table{width:100%;border-collapse:collapse}.doc-file-table th{text-align:left;padding:8px 12px;font-size:.75rem;text-transform:uppercase;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.doc-file-table td{padding:8px 12px;font-size:.875rem;border-bottom:1px solid var(--color-border-light)}.doc-file-table tr{cursor:pointer}.doc-file-table tr:hover td{background:var(--color-hover)}.doc-breadcrumb{display:flex;align-items:center;gap:4px;padding:0 0 12px;font-size:.875rem;color:var(--color-text-muted);flex-wrap:wrap}.doc-breadcrumb-link{color:var(--color-accent);cursor:pointer;background:none;border:none;font-size:inherit;padding:0}.doc-breadcrumb-link:hover{text-decoration:underline}.doc-error{padding:12px 16px;margin-bottom:16px;background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius-sm);font-size:.875rem}.doc-empty{text-align:center;color:var(--color-text-muted);padding:32px 0}.doc-loading{text-align:center;color:var(--color-text-secondary);padding:32px 0}.doc-file-summary{padding:8px 12px;font-size:.75rem;color:var(--color-text-muted)}.doc-layout--dragover{outline:2px dashed var(--color-accent);outline-offset:-2px}.doc-drop-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-accent-light);color:var(--color-accent);font-size:1.1rem;font-weight:600;z-index:10;border-radius:var(--radius-md);pointer-events:none}@media(max-width:768px){.doc-layout{flex-direction:column}.doc-sidebar{width:100%;max-width:none;max-height:200px;border-right:none;border-bottom:1px solid var(--color-border)}.doc-divider{display:none}}.portal-app{min-height:100vh;min-height:100dvh;background:var(--color-bg)}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 12px max(24px,env(safe-area-inset-left));background:var(--color-card-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.portal-header__left{display:flex;align-items:center;gap:10px}.portal-header__logo{height:28px}.portal-header__title{font-size:16px;font-weight:700;color:var(--color-text)}.portal-header__right{display:flex;align-items:center;gap:12px}.portal-header__user{font-size:14px;font-weight:500;color:var(--color-text-secondary)}.portal-header__theme-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:background var(--transition-fast)}.portal-header__theme-btn:hover{background:var(--color-bg)}.portal-main{max-width:900px;margin:0 auto;padding:24px 16px}.portal-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;color:var(--color-text-secondary);font-size:14px}.portal-login{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;background:var(--color-bg);padding:16px;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.portal-login__card{background:var(--color-card-bg);border-radius:var(--radius-lg);padding:40px 32px;width:100%;max-width:400px;box-shadow:0 4px 24px var(--color-shadow);position:relative}.portal-login__header{text-align:center;margin-bottom:28px}.portal-login__logo{height:36px;margin-bottom:16px}.portal-login__title{font-size:22px;font-weight:700;color:var(--color-text);margin-bottom:4px}.portal-login__subtitle{font-size:14px;color:var(--color-text-secondary)}.portal-login__form .form-group{margin-bottom:16px}.portal-login__error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;margin-bottom:16px}[data-theme=dark] .portal-login__error{background:#450a0a;color:#fca5a5;border-color:#7f1d1d}.portal-login__btn{width:100%;justify-content:center;padding:10px 16px;font-size:15px}.portal-login__theme-toggle{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-text-muted);transition:color var(--transition-fast)}.portal-login__theme-toggle:hover{color:var(--color-text)}.portal-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:24px;box-shadow:0 1px 3px var(--color-shadow)}.portal-card__title{font-size:18px;font-weight:700;color:var(--color-text);margin-bottom:16px}.portal-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}.portal-timesheet__controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.portal-timesheet__nav{display:flex;align-items:center;gap:16px}.portal-timesheet__period-nav{display:flex;align-items:center;gap:8px}.portal-timesheet__period-label{font-size:14px;font-weight:500;color:var(--color-text);min-width:180px;text-align:center}@media(max-width:768px){.portal-header{padding:10px 16px}.portal-main{padding:16px 12px}.portal-form-grid{grid-template-columns:1fr}.portal-timesheet__controls{flex-direction:column;align-items:flex-start}.portal-timesheet__nav{flex-direction:column;align-items:flex-start;gap:8px}.portal-header__user{display:none}.portal-login__card{padding:28px 20px}.data-table th:nth-child(5),.data-table td:nth-child(5){display:none}}@media(max-width:480px){.data-table th:nth-child(4),.data-table td:nth-child(4){display:none}}@font-face{font-family:Plus Jakarta Display;src:url(/assets/PlusJakartaDisplay-Regular-Dq-RI7NJ.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Display;src:url(/assets/PlusJakartaDisplay-Medium-DnEa_18P.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Display;src:url(/assets/PlusJakartaDisplay-Bold-Bpbab6ib.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #f9f9f9;--color-column-bg: #ffffff;--color-card-bg: #ffffff;--color-text: #1a1a1a;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--color-accent: #1e3a8a;--color-accent-hover: #1e40af;--color-navy: #1a1a1a;--color-brand-green: #3BDE83;--color-brand-primary: #1e3a8a;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-border: #e5e7eb;--color-shadow: rgba(0, 0, 0, .05);--color-overlay: rgba(0, 0, 0, .4);--radius-sm: 7px;--radius-md: 10px;--radius-lg: 14px;--font-family: "Plus Jakarta Display", "Inter", sans-serif;--transition-fast: .15s ease;--transition-normal: .2s ease;--sidebar-width: 240px}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;touch-action:manipulation;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.app{min-height:100vh;min-height:100dvh;display:flex;overflow-x:hidden}.app-main{flex:1;margin-left:var(--sidebar-width);padding:24px 32px;min-height:100vh;min-height:100dvh}button{font-family:var(--font-family);cursor:pointer;border:none;outline:none;background:none}button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}input,textarea,select{font-family:var(--font-family)}.page-header{margin-bottom:24px}.page-header h1{font-size:24px;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.page-header p{font-size:14px;color:var(--color-text-secondary);margin-top:4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;transition:all var(--transition-fast)}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-hover)}.btn-secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-border)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:var(--color-danger-hover)}.btn-sm{padding:4px 10px;font-size:13px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--color-text-secondary);margin-bottom:4px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;color:var(--color-text);background:var(--color-card-bg);transition:border-color var(--transition-fast)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #3bde8326}.status-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500}.status-badge--active{background:#dcfce7;color:#166534}.status-badge--paused{background:#fef3c7;color:#92400e}.status-badge--completed{background:#dbeafe;color:#1e40af}.status-badge--archived,.status-badge--new{background:#f3f4f6;color:#6b7280}.status-badge--draft{background:#e0e7ff;color:#4338ca}.status-badge--ready_to_send{background:#fef3c7;color:#92400e}.status-badge--sent{background:#dbeafe;color:#1e40af}.status-badge--paid{background:#dcfce7;color:#166534}.status-badge--cancelled{background:#fecaca;color:#991b1b}.status-badge--accepted{background:#dcfce7;color:#166534}.status-badge--rejected{background:#fecaca;color:#991b1b}.status-badge--expired,.status-badge--received{background:#fef3c7;color:#92400e}.status-badge--converted{background:#dbeafe;color:#1e40af}.status-badge--superseded{background:#f3f4f6;color:#6b7280;text-decoration:line-through}.status-badge--health-green{background:#dcfce7;color:#166534}.status-badge--health-yellow{background:#fef3c7;color:#92400e}.status-badge--health-red{background:#fecaca;color:#991b1b}.status-badge--health-unknown{background:#f3f4f6;color:#6b7280}.data-table{width:100%;border-collapse:collapse;background:var(--color-card-bg);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 1px 3px var(--color-shadow)}.data-table th{text-align:left;padding:10px 16px;font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.data-table td{padding:12px 16px;font-size:14px;border-bottom:1px solid var(--color-border)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--color-bg)}.data-table td a{color:var(--color-navy);text-decoration:none;font-weight:500}.data-table td a:hover{text-decoration:underline}.empty-state{text-align:center;padding:48px 24px;color:var(--color-text-muted)}.empty-state h3{font-size:16px;font-weight:600;margin-bottom:8px;color:var(--color-text-secondary)}.empty-state p{font-size:14px;margin-bottom:16px}.modal-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--color-card-bg);border-radius:var(--radius-lg);padding:24px;width:90%;max-width:540px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px var(--color-shadow)}.modal-heading{font-size:18px;font-weight:700;margin-bottom:16px}.modal-actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border)}.modal-actions-right{display:flex;gap:8px;margin-left:auto}.modal-btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all var(--transition-fast)}.modal-btn--primary{background:var(--color-accent);color:#fff}.modal-btn--primary:hover{background:var(--color-accent-hover)}.modal-btn--secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.modal-btn--secondary:hover{background:var(--color-border)}.modal-btn--danger{background:var(--color-danger);color:#fff}.modal-btn--danger:hover{background:var(--color-danger-hover)}.metric-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:20px;box-shadow:0 1px 3px var(--color-shadow)}.metric-card__label{font-size:13px;color:var(--color-text-secondary);font-weight:500;margin-bottom:4px}.metric-card__value{font-size:28px;font-weight:700;color:var(--color-text)}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric-card__sub{font-size:12px;color:var(--color-text-muted);margin-top:2px}.chart-card{background:var(--color-card-bg);border-radius:var(--radius-md);padding:24px;box-shadow:0 1px 3px var(--color-shadow)}.chart-card h3{font-size:16px;font-weight:600;margin-bottom:16px}.bar-chart{display:flex;align-items:flex-end;gap:4px;height:200px;padding-bottom:24px;position:relative}.bar-chart__col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;position:relative}.bar-chart__bar{width:100%;max-width:40px;border-radius:4px 4px 0 0;display:flex;flex-direction:column;overflow:hidden;min-height:0}.bar-chart__seg{width:100%}.bar-chart__seg--paid{background:var(--color-brand-green)}.bar-chart__seg--sent{background:#3b82f6}.bar-chart__seg--draft{background:#d1d5db}.bar-chart__seg--unbilled{background:#f97316}.bar-chart__label{font-size:11px;color:var(--color-text-muted);margin-top:6px;position:absolute;bottom:-20px}.bar-chart__val{font-size:10px;color:var(--color-text-secondary);position:absolute;top:-16px;white-space:nowrap}.bar-chart__seg-inner{display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.bar-chart__hours{font-size:9px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4);white-space:nowrap;line-height:1}.chart-legend{display:flex;gap:16px;margin-top:24px;font-size:13px;color:var(--color-text-secondary)}.chart-legend span{display:flex;align-items:center;gap:6px}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:2px}.legend-dot--paid{background:var(--color-brand-green)}.legend-dot--sent{background:#3b82f6}.legend-dot--draft{background:#d1d5db}.legend-dot--unbilled{background:#f97316}.expenses-dashboard__body{display:flex;gap:32px;align-items:flex-start}.expenses-dashboard__total{flex-shrink:0;min-width:160px}.expenses-dashboard__chart{display:flex;gap:24px;align-items:center;flex:1;min-width:0}.expenses-dashboard__legend{display:flex;flex-direction:column;gap:6px;font-size:13px;min-width:0}.expenses-dashboard__legend-row{display:flex;align-items:center;gap:8px;white-space:nowrap}.expenses-dashboard__legend-row:hover{opacity:.75}.expenses-dashboard__legend-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.expenses-dashboard__legend-value{font-weight:600;margin-left:auto}.expenses-dashboard__legend-pct{color:var(--color-text-muted);width:36px;text-align:right}@media(max-width:768px){.expenses-dashboard__body,.expenses-dashboard__chart{flex-direction:column}}.util-list{display:flex;flex-direction:column;gap:12px}.util-row{display:flex;align-items:center;gap:16px}.util-row__info{width:160px;flex-shrink:0}.util-row__info strong{display:block;font-size:14px}.util-row__info span{font-size:12px;color:var(--color-text-muted)}.util-row__bar-wrap{flex:1}.util-row__bar{height:20px;background:var(--color-bg);border-radius:4px;position:relative;overflow:hidden}.util-row__bar-fill{position:absolute;top:0;height:100%;border-radius:4px;transition:width var(--transition-normal)}.util-row__bar-fill--billable{background:var(--color-brand-green)}.util-row__bar-fill--nonbillable{background:#93c5fd}.util-row__hours{width:120px;text-align:right;flex-shrink:0}.util-row__hours strong{display:block;font-size:14px}.util-row__hours span{font-size:12px;color:var(--color-text-muted)}.form-grid{display:grid;gap:12px}.form-grid--2{grid-template-columns:1fr 1fr}.form-grid--3{grid-template-columns:1fr 1fr 1fr}.inline-form-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.inline-form-row>.form-group{margin-bottom:0}.filter-row{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.page-header-inline{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px}.pagination__label{font-size:13px;min-width:100px;text-align:center}.dashboard-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dashboard-controls__select{min-width:140px}.dashboard-controls__nav{display:flex;gap:8px;align-items:center}.dashboard-controls__label{min-width:90px;text-align:center;font-weight:600}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.page-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.form-row-flex{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.form-row-flex>.form-group{margin-bottom:0}.form-row-compact{display:flex;flex-wrap:wrap;gap:12px}.form-row-compact>*{flex:1;min-width:80px}.timecard-cards{display:none;list-style:none;padding:0;margin:0;flex-direction:column;gap:8px}.timecard-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;box-shadow:0 1px 2px var(--color-shadow);cursor:pointer;display:flex;flex-direction:column;gap:4px}.timecard-card__top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.timecard-card__date{font-size:13px;color:var(--color-text-secondary);font-weight:500}.timecard-card__hours{font-size:15px;font-weight:700;color:var(--color-text)}.timecard-card__project{font-size:15px;font-weight:600;color:var(--color-text);line-height:1.3}.timecard-card__contact{font-size:13px;color:var(--color-text-secondary)}.timecard-card__description{font-size:13px;color:var(--color-text-secondary);margin-top:2px;word-break:break-word}.timecard-card__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}@media(max-width:768px){:root{--sidebar-width: 0px}.app-main{margin-left:0;padding:72px 16px 16px}.metrics-grid{grid-template-columns:repeat(2,1fr)}.util-row{flex-wrap:wrap}.util-row__info{width:100%}.util-row__hours{width:100%;text-align:left}.data-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.timecards-table-wrap{display:none}.timecard-cards{display:flex}.grid-2,.grid-3{grid-template-columns:1fr}.page-header-row{flex-direction:column;align-items:stretch}.page-header-row .header-actions{display:flex;flex-wrap:wrap;gap:8px}.dashboard-controls{flex-direction:column;align-items:stretch}.dashboard-controls__select{min-width:unset;width:100%}.dashboard-controls__nav{justify-content:center}.dashboard-controls__label{min-width:0;flex:1}.form-row-flex{flex-direction:column}.form-row-flex>.form-group{min-width:unset!important;width:100%}.btn{min-height:44px;padding:10px 16px}.sidebar-link{min-height:44px}.chart-card{padding:16px}.chart-card h3{font-size:14px;margin-bottom:12px}.chart-legend{flex-wrap:wrap;gap:8px}.modal .form-grid{grid-template-columns:1fr!important}.filter-row .form-group,.filter-row>select{width:100%}.inline-form-row{flex-direction:column;align-items:stretch!important}.inline-form-row>.form-group{min-width:unset!important;width:100%}.inline-form-row>.btn{align-self:flex-start}.pagination{gap:4px!important}.pagination .pagination__label{min-width:0!important;font-size:12px}.page-header-inline{flex-direction:column;align-items:stretch!important}.form-group input,.form-group textarea,.form-group select{min-height:44px;padding:10px 12px;font-size:16px}}@media(max-width:480px){.metrics-grid{grid-template-columns:repeat(2,1fr);gap:8px}.metric-card{padding:12px}.metric-card__label{font-size:11px}.metric-card__value{font-size:18px}.btn-group{flex-direction:column}.btn-group .btn{border-radius:var(--radius-sm)}}.drop-zone{border:2px dashed var(--color-border);border-radius:8px;padding:16px;text-align:center;cursor:pointer;margin-bottom:12px;color:var(--color-text-secondary);font-size:.85rem;transition:border-color .15s,background .15s}.drop-zone:hover,.drop-zone--active{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 6%,transparent)}.drop-zone--done{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 6%,transparent);color:var(--color-text)}.btn-group{display:flex;gap:0}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:6px 0 0 6px}.btn-group .btn:last-child{border-radius:0 6px 6px 0}.btn--active{background:var(--color-accent, #1a1a1a);color:#fff;border-color:var(--color-accent, #1a1a1a)}[data-theme=dark]{--color-bg: #111111;--color-column-bg: #1a1a1a;--color-card-bg: #1e1e1e;--color-text: #e5e5e5;--color-text-secondary: #a1a1aa;--color-text-muted: #71717a;--color-accent: #3b82f6;--color-accent-hover: #60a5fa;--color-navy: #e5e5e5;--color-brand-green: #3BDE83;--color-brand-primary: #3b82f6;--color-danger: #f87171;--color-danger-hover: #ef4444;--color-border: #2e2e2e;--color-shadow: rgba(0, 0, 0, .4);--color-overlay: rgba(0, 0, 0, .7)}[data-theme=dark] .status-badge--active,[data-theme=dark] .status-badge--paid{background:#166534;color:#bbf7d0}[data-theme=dark] .status-badge--paused,[data-theme=dark] .status-badge--ready_to_send,[data-theme=dark] .status-badge--received{background:#78350f;color:#fde68a}[data-theme=dark] .status-badge--completed,[data-theme=dark] .status-badge--sent{background:#1e3a5f;color:#93c5fd}[data-theme=dark] .status-badge--archived,[data-theme=dark] .status-badge--new{background:#27272a;color:#a1a1aa}[data-theme=dark] .status-badge--draft{background:#312e81;color:#c7d2fe}[data-theme=dark] .status-badge--cancelled,[data-theme=dark] .status-badge--rejected{background:#7f1d1d;color:#fca5a5}[data-theme=dark] .status-badge--accepted{background:#166534;color:#bbf7d0}[data-theme=dark] .status-badge--expired{background:#78350f;color:#fde68a}[data-theme=dark] .status-badge--converted{background:#1e3a5f;color:#93c5fd}[data-theme=dark] .status-badge--superseded{background:#27272a;color:#a1a1aa;text-decoration:line-through}[data-theme=dark] .status-badge--health-green{background:#166534;color:#bbf7d0}[data-theme=dark] .status-badge--health-yellow{background:#78350f;color:#fde68a}[data-theme=dark] .status-badge--health-red{background:#7f1d1d;color:#fecaca}[data-theme=dark] .status-badge--health-unknown{background:#27272a;color:#a1a1aa}[data-theme=dark] .bar-chart__seg--draft,[data-theme=dark] .legend-dot--draft{background:#52525b}[data-theme=dark] .util-row__bar-fill--nonbillable{background:#3b82f6}
