:root{--bg: #0f172a;--bg-2: #0b1324;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--primary: #4f46e5;--primary-d: #4338ca;--primary-g: linear-gradient(135deg, #4f46e5, #6366f1);--accent: #14b8a6;--accent-2: #0ea5e9;--danger: #dc2626;--amber: #f59e0b;--success: #22c55e;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 10px 15px -3px rgba(15, 23, 42, .1), 0 4px 6px -4px rgba(15, 23, 42, .1);--shadow-lg: 0 25px 50px -12px rgba(15, 23, 42, .25);--sidebar-w: 248px;--transition: .18s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--surface-2);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--primary);text-decoration:none;transition:color var(--transition)}a:hover{text-decoration:none;color:var(--primary-d)}.full-center{display:grid;place-items:center;height:100vh;color:var(--muted)}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .32s ease-out both}.shell{display:flex;min-height:100vh;background:var(--surface-2)}.sidebar{width:var(--sidebar-w);background:var(--bg);background-image:linear-gradient(to bottom,rgba(255,255,255,.03) 0%,transparent 40%);color:#cbd5e1;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:1px solid rgba(255,255,255,.06)}.brand{display:flex;align-items:center;gap:12px;padding:22px 22px 14px;color:#fff;font-weight:700}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--primary-g);color:#fff;font-weight:800;font-size:15px;box-shadow:0 2px 8px #4f46e573;flex-shrink:0}.brand-mark.lg{width:68px;height:68px;font-size:32px;border-radius:18px;margin:0 auto 8px;box-shadow:0 10px 30px -5px #4f46e573}.brand-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.brand-name{font-size:19px;letter-spacing:-.2px;line-height:1.15}.brand-workspace{font-size:11px;font-weight:600;letter-spacing:.02em;color:#94a3b8!important;text-transform:none}.sidebar-workspace{display:none;padding:0 12px 12px}.sidebar-workspace .workspace-switch{width:100%}.workspace-switch{display:inline-flex;padding:3px;gap:2px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border);box-shadow:inset 0 1px #fff9}.workspace-opt{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer;font:inherit;font-size:13px;font-weight:600;color:var(--muted);padding:6px 12px;border-radius:999px;transition:background .15s ease,color .15s ease,box-shadow .15s ease;white-space:nowrap}.workspace-opt:hover{color:var(--text)}.workspace-opt.on{background:#fff;color:var(--primary);box-shadow:0 1px 3px #0f172a1a}.workspace-flag{font-size:10px;font-weight:800;letter-spacing:.04em;opacity:.75}.workspace-opt.on .workspace-flag{opacity:1}.topbar-workspace{display:flex;align-items:center;justify-content:center;flex:1 1 auto;min-width:0;padding:0 12px}.shell.workspace-funds .brand-mark{box-shadow:0 2px 8px #0ea5e966;background:linear-gradient(135deg,#0ea5e9,#6366f1)}.shell.workspace-trade .brand-mark{box-shadow:0 2px 8px #4f46e573}.sidebar-close{display:none;margin-left:auto;background:#ffffff0f;border:none;color:#cbd5e1;width:32px;height:32px;border-radius:8px;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition)}.sidebar-close:hover{background:#ffffff24;color:#fff}.sidebar nav{display:flex;flex-direction:column;gap:3px;padding:8px 12px;flex:1}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;color:#a5b4c8;font-size:14.5px;font-weight:500;transition:all var(--transition)}.nav-item:hover{background:#ffffff12;color:#fff;text-decoration:none}.nav-item.active{background:#4f46e538;color:#fff;box-shadow:inset 0 1px #ffffff0f}.nav-icon{width:20px;height:20px;flex-shrink:0;opacity:.85}.nav-group{display:flex;flex-direction:column;gap:3px}.nav-group+.nav-group{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06)}.nav-group-label{padding:2px 14px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b7a91}.inline-select.sm{padding:3px 6px;font-size:12px;border-radius:8px}.checklist{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.checklist-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:4px}.checklist-list li{display:flex;align-items:center;gap:8px}.checklist-list li label{flex:1;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.checklist-list li .done{text-decoration:line-through;color:var(--muted)}.checklist-add{display:flex;gap:8px;margin-top:6px}.checklist-add input{flex:1}.sidebar-foot{padding:16px 18px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:12px;background:#00000026}.who-name{color:#fff;font-size:14px;font-weight:600}.who-role{color:#64748b;font-size:12px;text-transform:capitalize}.sidebar-foot .spacer,.who{flex:1}.sm-avatar{width:28px;height:28px;border-radius:999px;background:var(--primary-g);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:13px 24px;background:#fffffff5;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hamburger{display:none;background:none;border:none;width:32px;height:32px;padding:4px;color:var(--muted);cursor:pointer}.hamburger svg{width:22px;height:22px}.spacer{flex:1}.content{padding:28px;max-width:1240px;width:100%;margin:0 auto}.user-menu{position:relative}.user-pill{display:flex;align-items:center;gap:9px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border)}.user-pill-btn{cursor:pointer;font:inherit;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.user-pill-btn:hover,.user-pill-btn.open{border-color:#c7d2fe;background:#fff;box-shadow:0 1px 3px #0f172a0f}.user-pill .avatar{width:26px;height:26px;border-radius:999px;background:var(--primary-g);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-email{font-size:13px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-caret{font-size:10px;color:var(--muted);margin-right:6px;line-height:1}.user-dropdown{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px -8px #0f172a2e;padding:6px;z-index:40;display:flex;flex-direction:column;gap:2px}.user-dropdown-head{padding:10px 12px 8px;border-bottom:1px solid var(--border);margin-bottom:4px}.user-dropdown-head .who-name{color:var(--text);font-size:13.5px;font-weight:600}.user-dropdown-head .who-role{color:var(--muted);font-size:12px;text-transform:capitalize}.user-dropdown button{display:block;width:100%;text-align:left;background:none;border:none;padding:9px 12px;border-radius:8px;font:inherit;font-size:13.5px;color:var(--text);cursor:pointer}.user-dropdown button:hover{background:var(--surface-3)}.user-dropdown button.danger{color:var(--danger)}.user-dropdown-sep{height:1px;background:var(--border);margin:4px 6px}.topbar-lang{margin-right:4px}.sidebar-foot-compact{padding:14px 18px}.sidebar-foot-compact .foot-actions{display:none}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{color:var(--primary)}.data-table .th-inner{display:inline-flex;align-items:center;gap:6px}.data-table .sort-ind{font-size:10px;opacity:.35;font-weight:600}.data-table .sort-ind.on{opacity:1;color:var(--primary)}.data-table .col-action{width:88px;text-align:right;white-space:nowrap}.data-table tr.clickable{cursor:pointer}.data-table tr.clickable:hover td{background:#4f46e50a}@media (max-width: 860px){.topbar-workspace{display:none}.sidebar-workspace{display:block}.workspace-opt{padding:7px 10px;flex:1;justify-content:center}}@media (max-width: 520px){.user-email{display:none}.user-pill{padding:3px}.user-caret{margin-right:4px}.topbar-search-hint{display:none}}.notif-bell{position:relative}.notif-btn{position:relative;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);color:var(--muted);cursor:pointer}.notif-btn:hover,.notif-btn.open{color:var(--text);border-color:#c7d2fe;background:#fff}.notif-dot{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;line-height:1}.notif-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,92vw);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px -8px #0f172a2e;z-index:50;overflow:hidden}.notif-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border)}.notif-list{max-height:360px;overflow-y:auto}.notif-item{display:block;width:100%;text-align:left;border:none;background:none;cursor:pointer;padding:10px 12px;border-bottom:1px solid var(--border);font:inherit}.notif-item:hover{background:var(--surface-3)}.notif-item.unread{background:#eef2ff}.notif-title{font-weight:600;font-size:13.5px;margin-bottom:2px}.notif-body{margin-bottom:2px}.notif-empty{padding:24px 12px;text-align:center}.cmdk-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0f172a73;display:grid;place-items:start center;padding:12vh 16px 16px}.cmdk{width:min(560px,100%);background:#fff;border-radius:14px;border:1px solid var(--border);box-shadow:0 24px 48px -12px #0f172a59;overflow:hidden}.cmdk-input-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.cmdk-input-row input{flex:1;border:none;outline:none;font:inherit;font-size:15px;background:transparent}.cmdk-icon{color:var(--muted);font-size:14px}.cmdk-kbd{font-size:11px;padding:2px 6px;border-radius:6px;border:1px solid var(--border);color:var(--muted);background:var(--surface-3)}.cmdk-list{max-height:360px;overflow-y:auto;padding:6px}.cmdk-group{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 10px 4px}.cmdk-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;border:none;background:none;padding:9px 10px;border-radius:8px;cursor:pointer;font:inherit}.cmdk-item:hover,.cmdk-item.active{background:#eef2ff}.cmdk-item-label{font-size:14px;font-weight:500}.cmdk-item-hint{font-size:12px;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-empty{padding:28px;text-align:center}.cmdk-foot{display:flex;gap:14px;padding:8px 14px;border-top:1px solid var(--border);background:var(--surface-3)}.bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:12px}.bulk-bar select{height:36px;border-radius:8px;min-width:140px}.col-check{width:36px;text-align:center}.table tr.row-selected td{background:#4f46e50f}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.activity-list li{padding:8px 0;border-bottom:1px solid var(--border)}.activity-list li:last-child{border-bottom:none}.activity-action{font-weight:600;font-size:13.5px;margin-right:8px}.activity-detail{font-size:13px}.activity-meta{display:flex;gap:6px;margin-top:3px}.btn.xs{padding:2px 8px;font-size:12px;height:auto}.page-title{font-size:26px;margin:0;letter-spacing:-.3px;font-weight:700}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.breadcrumb{color:var(--muted);font-size:13px;margin-bottom:4px}.breadcrumb a:hover{text-decoration:underline}.title-row{display:flex;align-items:center;gap:12px}.head-actions{display:flex;gap:8px}.line-list{list-style:none;margin:0;padding:0}.line-list li{transition:all var(--transition)}.line-list li.clickable{cursor:pointer;border-radius:6px}.line-list li.clickable:hover{background:var(--surface-3);transform:translate(2px)}.line-list li.clickable:active{transform:scale(.995)}.muted{color:var(--muted)}.sm{font-size:12.5px}.strong{font-weight:600}.toolbar{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;align-items:center}.toolbar select,.toolbar .search input{height:40px;border-radius:9px;min-width:160px;max-width:280px;flex:1 1 160px}.search input{width:260px}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;background:#fff;color:var(--text);transition:border-color var(--transition),box-shadow var(--transition)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}textarea{resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;border-radius:10px;border:1px solid transparent;background:var(--surface);cursor:pointer;font:inherit;font-weight:600;transition:all var(--transition);position:relative;overflow:hidden}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.primary{background:var(--primary-g);color:#fff;border:none;box-shadow:0 1px 3px #4f46e54d}.btn.primary:hover{filter:brightness(1.05);box-shadow:0 4px 12px #4f46e561}.btn.ghost{background:transparent;border-color:var(--border);font-weight:500}.btn.ghost:hover{background:var(--surface-3);border-color:#cbd5e1}.btn.danger{color:var(--danger)}.btn.danger.ghost{border-color:#fecaca}.btn.danger.ghost:hover{background:#fef2f2}.btn.sm{padding:7px 12px;font-size:13px;font-weight:500;border-radius:8px}.btn.block{width:100%}.icon-btn{background:none;border:none;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);border-radius:8px;transition:all var(--transition)}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.badge{display:inline-flex;align-items:center;padding:1px 10px;border-radius:999px;font-size:11.5px;font-weight:600;text-transform:capitalize;letter-spacing:.2px;border:1px solid transparent}.badge.gray{background:#f1f5f9;color:#475569}.badge.blue{background:#e0e7ff;color:#3730a3}.badge.green{background:#dcfce7;color:#166534}.badge.amber{background:#fef3c7;color:#854d0e}.badge.red{background:#fee2e2;color:#991b1b}.alert{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:14px;border:1px solid transparent}.alert.error{background:#fef2f2;color:#991b1b;border-color:#fecaca}.alert.success{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.foot-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch}.multiselect{border:1px solid var(--border);border-radius:8px;max-height:150px;overflow:auto;padding:4px;background:#fff}.ms-opt{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:14px}.ms-opt:hover{background:var(--surface-2)}.ms-opt.on{background:#eff6ff}.ms-opt input{width:auto}.commission-preview{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;margin:4px 0 14px;font-size:14px}.inline-add{display:flex;gap:8px;margin-top:10px}.inline-add input{flex:1}.btn.ghost.danger,.btn.sm.danger{color:var(--danger)}.provider-block{border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:14px}.provider-block h4{margin:0 0 10px;display:flex;gap:8px;align-items:center}.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin-bottom:14px}.phase-stepper{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.phase-step{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:150px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface);cursor:pointer;font:inherit;text-align:left;transition:all var(--transition)}.phase-step:hover{background:var(--surface-3);transform:translateY(-1px)}.phase-step-dot{width:9px;height:9px;border-radius:50%;background:#cbd5e1;flex-shrink:0}.phase-step.phase-active .phase-step-dot{background:var(--primary)}.phase-step.phase-done .phase-step-dot{background:#16a34a}.phase-step.phase-skipped .phase-step-dot{background:#94a3b8}.phase-step-label{flex:1;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phase-step.phase-done{opacity:.85}@media (max-width: 720px){.phase-stepper{flex-direction:column}.phase-step{min-width:0}}.print-modal{position:relative;max-height:92vh;overflow:auto;border-radius:10px}.print-modal-bar{position:sticky;top:0;z-index:5;display:flex;justify-content:flex-end;gap:8px;padding:10px 14px;background:#1f2937}@media print{.modal-backdrop{position:static;background:none;padding:0;display:block}.print-modal{max-height:none;overflow:visible;box-shadow:none}}.company-select{position:relative}.company-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;font:inherit;text-align:left;cursor:pointer}.company-select-trigger:hover{border-color:#94a3b8}.company-select-caret{color:var(--muted);font-size:11px}.company-select-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px -8px #0f172a40;padding:8px;max-height:320px;display:flex;flex-direction:column}.company-select-panel input{margin-bottom:6px}.company-select-list{overflow-y:auto}.company-select-opt{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:14px}.company-select-opt:hover{background:var(--surface-2)}.company-select-opt.on{background:#eff6ff}.logo-upload{display:flex;align-items:center;gap:12px;margin-bottom:12px}.logo-upload img{width:64px;height:64px;object-fit:contain;border:1px solid var(--border);border-radius:8px;background:#fff;padding:4px}.logo-upload-placeholder{width:64px;height:64px;border:1px dashed var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;text-align:center}.assistant-page{display:flex;flex-direction:column;height:calc(100vh - 120px)}.assistant-layout{flex:1;min-height:0;display:flex;gap:14px}.chat-rail{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;border-right:1px solid var(--border);padding-right:12px}.chat-new{justify-content:center}.convo-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.convo-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13.5px}.convo-item:hover{background:var(--surface-3)}.convo-item.active{background:#4f46e51f;color:var(--primary)}.convo-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convo-actions{display:none;gap:2px}.convo-item:hover .convo-actions{display:flex}.icon-btn.xs{width:22px;height:22px;font-size:12px;padding:0}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column}.compaction-note{text-align:center;font-size:11.5px;color:var(--muted);font-style:italic}.compaction-divider{display:flex;align-items:center;text-align:center;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin:4px 0}.compaction-divider:before,.compaction-divider:after{content:"";flex:1;border-top:1px solid var(--border)}.compaction-divider span{padding:0 10px}.pending-box{border:1px solid var(--amber, #f59e0b);background:#fffbeb;border-radius:10px;padding:10px 12px;margin-top:8px}.pending-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:13.5px}.pending-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.pending-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}.pending-summary{flex:1;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.pending-actions{display:flex;gap:4px;flex-shrink:0}.restore-box{border-top:1px solid var(--border);padding-top:8px;margin-top:4px}.restore-list{display:flex;flex-direction:column;gap:2px;margin-top:4px;max-height:22vh;overflow-y:auto}.restore-item{display:flex;align-items:center;gap:6px;font-size:12px;padding:3px 6px}.restore-item .restore-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.restore-item.undone{opacity:.5}.bubble-images{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.bubble-images img{max-width:160px;max-height:160px;border-radius:8px;border:1px solid var(--border)}.speak-btn{display:block;margin-top:6px;background:none;border:none;cursor:pointer;font-size:13px;opacity:.7;padding:0}.speak-btn:hover{opacity:1}.attach-previews{display:flex;gap:6px;flex-wrap:wrap;padding:6px 2px}.attach-thumb{position:relative}.attach-thumb img{width:54px;height:54px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}.attach-remove{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;border:none;background:var(--text);color:#fff;cursor:pointer;font-size:12px;line-height:1}.icon-btn.recording{color:#dc2626;animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.chat-main{position:relative}.chat-main.dragover{outline:2px dashed var(--primary);outline-offset:-6px;border-radius:12px}.drop-hint{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#4f46e50f;color:var(--primary);font-weight:600;border-radius:12px;pointer-events:none}.attach-file{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:5px 8px;border:1px solid var(--border);border-radius:8px;background:#fff}.attach-file-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attach-remove.inline{position:static;width:16px;height:16px}.bubble-files{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.bubble-file{font-size:12px;opacity:.85;background:#0000000d;padding:2px 6px;border-radius:6px}.chat{flex:1;overflow-y:auto;padding:8px 2px;display:flex;flex-direction:column;gap:10px}.chat-empty{margin:auto;text-align:center;max-width:460px}.suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}.chip{border:1px solid var(--border);background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;cursor:pointer}.chip:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.chip:disabled{opacity:.5;cursor:not-allowed}.bubble-row{display:flex}.bubble-row.user{justify-content:flex-end}.bubble{max-width:75%;padding:10px 14px;border-radius:14px;white-space:pre-wrap;line-height:1.45;font-size:14px}.bubble.user{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.bubble.assistant{background:#fff;border:1px solid var(--border);border-bottom-left-radius:4px}.bubble.typing{color:var(--muted)}.tool-note{margin-top:6px;font-size:11px;color:var(--muted);border-top:1px dashed var(--border);padding-top:4px}.chat-input{display:flex;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.chat-input textarea{flex:1;resize:none;max-height:120px}@media (max-width: 720px){.assistant-page{height:calc(100vh - 150px)}.bubble{max-width:88%}.tool-grid{grid-template-columns:1fr}.assistant-layout{flex-direction:column;gap:8px}.chat-rail{width:auto;border-right:none;border-bottom:1px solid var(--border);padding-right:0;padding-bottom:8px;max-height:30vh}}.viewer{min-height:300px}.viewer-pdf{width:100%;height:70vh;border:1px solid var(--border);border-radius:8px}.viewer-img{max-width:100%;border-radius:8px}.viewer-doc{line-height:1.6}.viewer-doc img{max-width:100%}.viewer-sheet{overflow:auto;max-height:70vh}.viewer-sheet table{border-collapse:collapse;font-size:13px}.viewer-sheet td,.viewer-sheet th{border:1px solid var(--border);padding:4px 8px;white-space:nowrap}.sheet-tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.chip.on{background:var(--primary);color:#fff;border-color:var(--primary)}.modal.viewer-modal{max-width:900px}.empty{padding:36px 20px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;gap:10px}.empty svg{width:28px;height:28px;opacity:.45}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;padding:13px 16px;background:var(--surface-3);color:#475569;font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.table td{padding:13px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr{transition:background var(--transition),transform .12s ease}.table tbody tr:hover{background:linear-gradient(90deg,#fafcff,#fff)}.table tbody tr:active{transform:scale(.995)}.table tr:last-child td{border-bottom:none}.row-actions{text-align:right}.soon{color:#b45309;font-weight:600}.section-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:4px 0 12px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.stat-grid.cols-3{grid-template-columns:repeat(3,1fr)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 20px 18px;box-shadow:var(--shadow);transition:all var(--transition);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(79,70,229,.05),transparent);opacity:0;transition:opacity var(--transition)}.stat-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:0 18px 25px -8px #0f172a1f;border-color:#cbd5e1}.stat-card:hover:before{opacity:1}.stat-value{font-size:32px;font-weight:700;line-height:1.1;background:linear-gradient(180deg,#0f172a,#334155);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.stat-label{color:var(--muted);font-size:13.5px;margin-top:6px;font-weight:500}.dash-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dash-cols-3{grid-template-columns:repeat(3,1fr)}.dash-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.dash-quick-links{display:flex;gap:8px;flex-wrap:wrap}.dash-alert{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;margin-bottom:18px;font-size:14px}.dash-alert-warn{background:#fffbeb;border-color:#fde68a}.dash-split{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-bottom:20px}.dash-schedule-panel .panel-title{margin:0}.country-bars{display:flex;flex-direction:column;gap:12px}.country-bar-row{display:grid;grid-template-columns:80px 1fr 36px;gap:10px;align-items:center}.country-bar-label{font-size:13px;font-weight:500}.country-bar-track{height:10px;background:var(--surface-3);border-radius:999px;overflow:hidden}.country-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#6366f1)}.country-bar-count{font-size:13px;font-weight:600;text-align:right;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);margin-bottom:20px;transition:box-shadow var(--transition),transform .12s ease}.panel:hover{box-shadow:var(--shadow-md)}.panel-title{font-size:15.5px;margin:0 0 14px;font-weight:600}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-head h2,.panel-head h4{margin:0;font-size:15.5px;font-weight:600}.line-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--border)}.line-list li:last-child{border-bottom:none}.ll-main{display:flex;flex-direction:column;min-width:0}.ll-title{font-weight:500}.ll-meta{display:flex;align-items:center;gap:10px;white-space:nowrap}.due{font-size:13px;color:var(--muted);font-weight:500}.due.overdue{color:var(--danger);font-weight:700}.due.soon{color:#c2410c;font-weight:700}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.kv{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:transform .16s cubic-bezier(.32,.72,0,1),box-shadow var(--transition)}.kv:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.kv span{display:block;color:var(--muted);font-size:12px;font-weight:500}.kv b{font-size:15.5px;font-weight:600}.description{background:linear-gradient(145deg,var(--surface),var(--surface-3));border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:20px;line-height:1.6}.kanban{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;align-items:stretch;height:calc(100vh - 240px);min-height:420px;max-height:880px}.kcol{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;min-height:0;transition:background .2s ease,outline-color .15s ease}.kcol.droppable{outline:2px dashed var(--primary);outline-offset:-4px;background:linear-gradient(180deg,rgba(79,70,229,.06),transparent)}.kcol-head{font-weight:600;font-size:13.5px;padding:4px 6px 10px;display:flex;gap:8px;align-items:center;flex-shrink:0;color:#475569}.kcol-head .count{background:#e2e8f0;color:#475569;border-radius:999px;padding:1px 9px;font-size:11.5px;font-weight:600;margin-left:auto}.kcol-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:2px}.kcard{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 11px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow);transition:transform .16s cubic-bezier(.32,.72,0,1),box-shadow .16s cubic-bezier(.32,.72,0,1),border-color .12s ease,opacity .12s ease;-webkit-user-select:none;user-select:none}.kcard:hover{border-color:#94a3b8;transform:translateY(-1px);box-shadow:var(--shadow-md)}.kcard:active{cursor:grabbing}.kcard.dragging{opacity:.55;box-shadow:0 15px 25px -5px #0f172a33;transform:scale(.98);border-color:var(--primary)}.kcard-top{display:flex;align-items:flex-start;gap:6px}.kcard-title{font-weight:600;margin-bottom:7px;line-height:1.35;flex:1;min-width:0;font-size:13px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.kdrag{flex-shrink:0;touch-action:none;cursor:grab;background:none;border:none;padding:2px;margin:-2px -2px 0 0;color:#cbd5e1;border-radius:6px;line-height:0;display:inline-flex;align-items:center}.kdrag:hover{color:var(--muted);background:var(--surface-3)}.kdrag:active{cursor:grabbing}.kcard-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:11.5px;margin-bottom:8px}.kcard-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.kchip{display:inline-flex;align-items:center;max-width:100%;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kchip.project-chip{background:#eef2ff;color:#4338ca;max-width:58%}.kchip.muted-chip{background:#f1f5f9;color:#64748b;font-weight:500}.kchip.due{background:#f8fafc;color:var(--muted);border:1px solid var(--border)}.kchip.due.overdue{background:#fef2f2;color:var(--danger);border-color:#fecaca}.kchip.due.soon{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.k-assignee{display:inline-flex;align-items:center;gap:5px;min-width:0;font-size:11.5px;color:var(--muted);font-weight:500}.k-assignee-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:72px}.k-avatar{width:20px;height:20px;border-radius:999px;flex-shrink:0;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;font-size:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.kempty{color:var(--muted);text-align:center;padding:22px 10px;font-size:13px;opacity:.7}.toolbar .filter-count{margin-left:auto;white-space:nowrap}.toolbar .chip{height:36px}.login-wrap{min-height:100vh;position:relative;display:grid;place-items:center;overflow:hidden;padding:20px;background:#0b1324}.login-bg-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.95) brightness(.75)}.login-bg-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(140deg,#0b1324b8,#0f172aad 42%,#0b1324c7);z-index:1}.login-bg-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;opacity:.3;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2790%27 height=%2790%27%3E%3Cg fill-rule=%27evenodd%27%3E%3Cpath fill=%27%23fff%27 fill-opacity=%270.06%27 d=%27M0 90L90 0V90H0V0z%27/%3E%3C/g%3E%3C/svg%27");background-size:90px 90px;pointer-events:none}.login-card{position:relative;z-index:10;background:#fffffffa;border-radius:18px;padding:38px 34px;width:100%;max-width:400px;box-shadow:0 30px 80px -15px #00000080,0 10px 20px -8px #00000040;border:1px solid rgba(255,255,255,.6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-brand{text-align:center;margin-bottom:26px}.login-brand .brand-mark.lg{box-shadow:0 10px 30px -6px #4f46e573}.login-brand h1{margin:14px 0 4px;font-size:26px;font-weight:700;letter-spacing:-.5px}.login-brand p{color:var(--muted);font-size:14px}.login-card .field{margin-bottom:15px}.field{display:block;margin-bottom:14px}.field-label{display:block;font-size:13px;font-weight:500;color:var(--muted);margin-bottom:5px}.field-error{display:block;color:var(--danger);font-size:12px;margin-top:4px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.files-block{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172aa6;display:grid;place-items:center;padding:16px;z-index:10000;animation:fadeIn .18s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:16px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:modalEnter .2s cubic-bezier(.32,.72,0,1) both;border:1px solid var(--border)}@keyframes modalEnter{0%{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:17px 22px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:17px;font-weight:600}.modal-body{padding:22px;overflow:auto}.modal-foot{padding:15px 22px;border-top:1px solid var(--border)}.modal-actions{display:flex;align-items:center;gap:10px}.backdrop{display:none}@media (max-width: 860px){.stat-grid,.stat-grid.cols-3,.detail-grid{grid-template-columns:repeat(2,1fr)}.dash-cols,.dash-cols-3,.dash-split,.grid-3{grid-template-columns:1fr}.kanban{display:flex;grid-template-columns:none;overflow-x:auto;gap:12px;padding-bottom:6px;height:calc(100vh - 220px);min-height:380px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.kanban .kcol{flex:0 0 82%;max-width:340px;scroll-snap-align:start}}@media (min-width: 721px) and (max-width: 980px){:root{--sidebar-w: 72px}.sidebar .brand-name,.sidebar .brand-workspace,.sidebar .nav-label,.sidebar .nav-group-label,.sidebar .who,.sidebar .foot-actions,.sidebar-workspace{display:none!important}.brand{justify-content:center;padding:22px 0 18px}.brand-text{display:none}.nav-item{justify-content:center;padding:11px 0}.sidebar-foot{justify-content:center;padding:16px 0}.topbar-workspace{display:flex!important}}@media (max-width: 720px){.hamburger{display:block}.sidebar{position:fixed;z-index:50;left:0;top:0;transform:translate(-100%);transition:transform .26s cubic-bezier(.32,.72,0,1);box-shadow:0 0 0 1px #0000000f,12px 0 30px -10px #0f172a59;width:min(260px,78vw)}.sidebar.open{transform:translate(0)}.sidebar-close{display:flex}.backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:40}.content{padding:18px}.grid-2{grid-template-columns:1fr}.search input{width:100%}.login-card{padding:30px 26px}.chat-rail{max-height:none;padding-bottom:8px}.convo-list{flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:6px;padding-bottom:4px}.convo-item{flex:0 0 auto;max-width:200px}}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:min(360px,92vw);pointer-events:none}.toast{pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:10px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-left-width:4px;border-radius:10px;padding:12px 14px;font-size:14px;box-shadow:var(--shadow-md);animation:toastIn .22s cubic-bezier(.32,.72,0,1) both}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.toast .toast-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.toast .toast-msg{flex:1;line-height:1.4}.toast.success{border-left-color:#22c55e}.toast.success .toast-dot{background:#22c55e}.toast.error{border-left-color:var(--danger)}.toast.error .toast-dot{background:var(--danger)}.toast.info{border-left-color:var(--primary)}.toast.info .toast-dot{background:var(--primary)}.btn.danger-solid{background:var(--danger);color:#fff;border:none;box-shadow:0 1px 3px #dc26264d}.btn.danger-solid:hover{filter:brightness(1.05);box-shadow:0 4px 12px #dc262661}.confirm-modal{max-width:420px}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:1001;display:flex;align-items:center;justify-content:center;gap:8px;background:#7c2d12;color:#fff;font-size:13px;font-weight:600;padding:7px 12px;box-shadow:0 2px 8px #0003}.pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px;flex-wrap:wrap}.skeleton{display:inline-block;background:linear-gradient(90deg,var(--surface-3) 25%,#e9eef5 37%,var(--surface-3) 63%);background-size:400% 100%;animation:skeletonShimmer 1.4s ease infinite}@keyframes skeletonShimmer{0%{background-position:100% 0}to{background-position:0 0}}.sf-event-detail{display:flex;flex-direction:column;gap:12px}.sf-event-detail dt{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.sf-event-detail dd{margin:0;font-size:14px}.app-cal{padding:14px}.app-cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.app-cal-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.app-cal-title{margin:0 0 0 6px;font-size:17px;font-weight:700;text-transform:capitalize}.app-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.app-cal-wd{text-align:center;font-size:11.5px;font-weight:700;color:var(--muted);padding:4px 0;text-transform:uppercase;letter-spacing:.04em}.app-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.app-cal-cell{min-height:92px;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:6px;display:flex;flex-direction:column;gap:4px}.app-cal-cell.muted-month{opacity:.45;background:var(--surface-3)}.app-cal-cell.today{border-color:var(--primary);box-shadow:inset 0 0 0 1px #4f46e540}.app-cal-cell.drop-target{outline:2px dashed var(--primary);outline-offset:-3px;background:#4f46e50f}.app-cal.is-busy{opacity:.85;pointer-events:none}.app-cal-daynum{font-size:12px;font-weight:700;color:var(--muted);line-height:1}.app-cal-cell.today .app-cal-daynum{color:var(--primary)}.app-cal-events{display:flex;flex-direction:column;gap:3px;min-height:0;flex:1}.app-cal-pill{border:none;border-radius:5px;color:#fff;cursor:pointer;font:inherit;font-size:10.5px;font-weight:600;text-align:left;padding:2px 5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.app-cal-pill.draggable{cursor:grab}.app-cal-pill.draggable:active{cursor:grabbing}.app-cal-pill.dragging{opacity:.45}.app-cal-pill:hover{filter:brightness(1.08)}.app-cal-more{border:none;background:none;cursor:pointer;text-align:left;padding:0;font:inherit}.app-cal-agenda{max-height:min(70vh,720px);overflow-y:auto}.app-cal-agenda-group{margin-bottom:16px}.app-cal-agenda-date{font-size:12.5px;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:capitalize}.app-cal-agenda-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.app-cal-agenda-item{display:flex;align-items:flex-start;gap:10px;width:100%;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:10px 12px;cursor:pointer;font:inherit;text-align:left}.app-cal-agenda-item:hover{border-color:#c7d2fe;background:#f8fafc}.app-cal-dot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex-shrink:0}.app-cal-agenda-main{display:flex;flex-direction:column;gap:2px;min-width:0}@media (max-width: 860px){.app-cal-cell{min-height:72px}.app-cal-pill{font-size:10px}}.timeline{padding:12px 14px 16px}.timeline-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.timeline-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.timeline-inner{padding-bottom:4px}.timeline-head,.timeline-row{display:grid;grid-template-columns:minmax(180px,220px) 1fr;gap:12px;align-items:center}.timeline-head{position:sticky;top:0;z-index:2;margin-bottom:6px;padding-bottom:4px;background:var(--surface)}.timeline-label-col{position:sticky;left:0;z-index:1;background:var(--surface);padding-right:6px}.timeline-row{width:100%;border:none;background:none;text-align:left;font:inherit;padding:8px 0;border-bottom:1px solid var(--border);cursor:pointer}.timeline-row:hover .timeline-task-name{color:var(--primary)}.timeline-row:hover .timeline-bar{filter:brightness(.97);box-shadow:0 2px 8px #0f172a1f}.timeline-group{margin-top:6px}.timeline-group-title{display:flex;align-items:center;gap:8px;width:100%;border:none;background:var(--surface-3);border-radius:8px;padding:7px 10px;margin:6px 0 2px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer;font:inherit;text-align:left}.timeline-group-title:hover{color:var(--text)}.timeline-chevron{width:12px;color:var(--primary)}.timeline-task-name{font-weight:600;font-size:13.5px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.timeline-track-col{position:relative;min-height:36px}.timeline-ruler{position:relative;height:22px;border-bottom:1px solid var(--border)}.timeline-tick{position:absolute;top:0;transform:translate(-50%);font-size:10.5px;color:var(--muted);white-space:nowrap}.timeline-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--danger);transform:translate(-50%);z-index:2;pointer-events:none;box-shadow:0 0 0 1px #dc262626}.timeline-today-line.soft{top:0;bottom:0;opacity:.55}.timeline-track{position:relative;height:30px;background:linear-gradient(90deg,transparent,rgba(148,163,184,.1),transparent),repeating-linear-gradient(90deg,transparent,transparent 24px,rgba(148,163,184,.06) 24px,rgba(148,163,184,.06) 25px);border-radius:8px;overflow:hidden}.timeline-bar{position:absolute;top:5px;height:20px;border-radius:999px;background:#c7d2fe;overflow:hidden;min-width:10px;display:flex;align-items:center;box-shadow:inset 0 0 0 1px #4338ca40;transition:filter .12s ease,box-shadow .12s ease}.timeline-bar.status-done{background:#bbf7d0;box-shadow:inset 0 0 0 1px #16a34a4d}.timeline-bar.status-blocked{background:#fecaca;box-shadow:inset 0 0 0 1px #dc26264d}.timeline-bar.status-in_progress{background:#bfdbfe}.timeline-bar.status-review{background:#fde68a}.timeline-bar-fill{position:absolute;left:0;top:0;bottom:0;background:#4f46e559;border-radius:inherit}.timeline-bar-label{position:relative;z-index:1;font-size:10px;font-weight:700;color:#312e81;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.activity-list.compact li{padding:6px 0}.activity-feed.compact{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.login-bg-poster{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;filter:blur(18px) saturate(1.1);transform:scale(1.08);opacity:.55;z-index:0}.invoice-print-wrap{display:flex;justify-content:center;padding:16px 0 40px;background:#c8ced8}.invoice{--ink: #1a202c;--muted: #4a5568;--accent: #0f3d6b;--accent-soft: #e8f1f8;--font: "Times New Roman", Times, Georgia, serif;--ui: "Segoe UI", system-ui, -apple-system, sans-serif;width:210mm;min-height:297mm;background:#fff;color:var(--ink);font-family:var(--font);font-size:10.5pt;line-height:1.28;padding:11mm 13mm 18mm;box-shadow:0 10px 36px #0003;position:relative;overflow:hidden}.invoice:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2.2mm;background:linear-gradient(180deg,#1a5f9e,#0f3d6b 55%,#c53030)}.invoice-header{display:grid;grid-template-columns:46mm 1fr;gap:5mm;align-items:center;padding-bottom:3.5mm;border-bottom:1.6pt solid var(--accent);margin-bottom:3.5mm}.invoice-logo img{display:block;width:44mm;max-width:100%;height:auto;max-height:20mm;object-fit:contain;object-position:left center}.invoice-title-block{text-align:right}.invoice h1{margin:0;font-size:17.5pt;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);line-height:1.1}.invoice .doc-badge{display:inline-block;margin-top:1.5mm;padding:.15em .55em;font-size:7.5pt;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:2px;font-family:var(--ui)}.invoice .subtitle{font-style:italic;font-size:8pt;color:#4a5568;max-width:95mm;margin:1.5mm 0 0 auto}.invoice .parties{display:grid;grid-template-columns:1fr 1fr;gap:4mm;margin-bottom:3.5mm}.invoice .box{border:1pt solid #2d3748;border-radius:1.5px;overflow:hidden;min-height:100%}.invoice .box .box-title{font-family:var(--ui);font-weight:700;font-size:8pt;text-transform:uppercase;letter-spacing:.08em;color:#fff;background:var(--accent);padding:1.4mm 2.5mm}.invoice .box.dest .box-title{background:#2c5282}.invoice .box .box-body{padding:2.2mm 2.8mm 2.5mm}.invoice .box .company{font-weight:700;font-size:11pt;margin-bottom:.8mm;color:var(--ink)}.invoice .box .addr{font-size:9pt;white-space:pre-line;color:#2d3748;line-height:1.3}.invoice .box .ids{margin-top:1.6mm;padding-top:1.4mm;border-top:.6pt solid #cbd5e0;font-size:8pt;line-height:1.35;color:#2d3748;font-family:var(--ui)}.invoice .box .legal{margin-top:1.5mm;font-size:8.5pt;font-style:italic;color:#333;line-height:1.3}.invoice .box .contact-line{margin-top:1mm;font-size:8pt;color:#2d3748;font-family:var(--ui);line-height:1.35}.invoice .meta-strip{display:grid;grid-template-columns:1.1fr 1.35fr .55fr;gap:2mm;margin-bottom:2.5mm}.invoice .meta-card{border:1pt solid #2d3748;border-radius:1.5px;overflow:hidden}.invoice .meta-card .k{font-family:var(--ui);font-size:7pt;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-soft);padding:.9mm 2mm;border-bottom:.6pt solid #cbd5e0}.invoice .meta-card .v{padding:1.4mm 2mm;font-size:9.5pt;font-weight:600;min-height:7mm;font-variant-numeric:tabular-nums}.invoice .meta-rows{border:1pt solid #2d3748;border-radius:1.5px;margin-bottom:3mm;overflow:hidden}.invoice .meta-rows .meta-row{display:grid;grid-template-columns:24mm 1fr;gap:0;font-size:9.5pt;border-bottom:.6pt solid #e2e8f0}.invoice .meta-rows .meta-row:last-child{border-bottom:none}.invoice .meta-rows .lbl{font-family:var(--ui);font-weight:700;font-size:7.5pt;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);padding:1.5mm 2mm;border-right:.6pt solid #cbd5e0;display:flex;align-items:center}.invoice .meta-rows .val{padding:1.5mm 2.5mm;align-self:center}.invoice .section-title{font-family:var(--ui);font-weight:700;font-size:8pt;text-transform:uppercase;letter-spacing:.07em;color:var(--accent);margin:0 0 1.5mm;padding-bottom:.8mm;border-bottom:1pt solid var(--accent)}.invoice .params{display:grid;grid-template-columns:40mm 1fr;gap:.8mm 2.5mm;font-size:9.5pt;margin-bottom:3mm;max-width:105mm;align-items:center}.invoice .params .lbl{font-weight:700;font-size:9pt}.invoice .params .val-box{border:1pt solid #2d3748;padding:.6mm 2mm;font-variant-numeric:tabular-nums;text-align:right;min-width:28mm;display:inline-block;background:#fafbfc}.invoice .params .val-inline{display:flex;align-items:center;gap:1.5mm}.invoice .params .unit{font-size:8.5pt;color:#4a5568}.invoice .params .plain{font-size:9.5pt}.invoice table.lines{width:100%;border-collapse:collapse;margin:0;font-size:9.5pt}.invoice .lines th,.invoice .lines td{border:1pt solid #2d3748;padding:2mm 2.2mm;vertical-align:top}.invoice .lines th{font-family:var(--ui);font-weight:700;font-size:7.5pt;text-align:center;text-transform:uppercase;letter-spacing:.05em;background:var(--accent);color:#fff}.invoice .lines .col-desc{width:50%}.invoice .lines .col-base{width:30%}.invoice .lines .col-amt{width:20%}.invoice .lines td.col-base{text-align:right;font-size:9pt;white-space:pre-line;color:#2d3748}.invoice .lines td.col-amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;font-size:10.5pt}.invoice .lines tbody tr{background:#fff}.invoice .lines tbody tr:nth-child(2n){background:#f8fafc}.invoice .total-row{display:grid;grid-template-columns:1fr 36mm;border:1pt solid #2d3748;border-top:none;font-weight:700;font-size:10.5pt;background:var(--accent-soft)}.invoice .total-row .lbl{text-align:right;padding:2.2mm 3mm;border-right:1pt solid #2d3748;font-family:var(--ui);font-size:9pt;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;justify-content:flex-end}.invoice .total-row .amt{text-align:right;padding:2.2mm;font-variant-numeric:tabular-nums;font-size:11.5pt;color:var(--ink);display:flex;align-items:center;justify-content:flex-end}.invoice .bank-block{margin-top:3.5mm;border:1pt solid #2d3748;border-radius:1.5px;overflow:hidden}.invoice .bank-block .section-title{margin:0;padding:1.4mm 2.5mm;border-bottom:none;background:var(--accent);color:#fff}.invoice .bank-inner{display:grid;grid-template-columns:1fr auto;gap:3mm;padding:2.2mm 2.8mm 2.5mm;align-items:center}.invoice .bank{display:grid;grid-template-columns:28mm 1fr;gap:.6mm 2mm;font-size:9pt}.invoice .bank .lbl{font-weight:700;font-family:var(--ui);font-size:7.5pt;text-transform:uppercase;letter-spacing:.03em;color:#4a5568;padding-top:.2em}.invoice .bank .val{font-style:normal;font-variant-numeric:tabular-nums}.invoice .transfer-box{border:1.6pt solid var(--accent);border-radius:2px;padding:2mm 3mm;text-align:center;min-width:38mm;background:#fff}.invoice .transfer-box .t-lbl{font-family:var(--ui);font-size:6.5pt;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:.8mm}.invoice .transfer-box .t-amt{font-weight:700;font-size:11pt;font-variant-numeric:tabular-nums;white-space:nowrap}.invoice .sign-row{display:grid;grid-template-columns:1fr 1fr;margin-top:5mm;font-size:9.5pt;gap:6mm}.invoice .sign-row .right{text-align:right}.invoice .sign-space{height:14mm;margin-top:1.5mm;border-bottom:.6pt dotted #a0aec0}.invoice .sign-label{font-style:italic;font-size:8pt;color:#4a5568;text-align:right;margin-top:1mm;font-family:var(--ui)}.invoice-footer{position:absolute;left:13mm;right:13mm;bottom:7mm;padding-top:2mm;border-top:.6pt solid #cbd5e0;font-family:var(--ui);font-size:7pt;line-height:1.35;color:#4a5568}.invoice-footer .legal-main{font-style:italic;margin-bottom:.6mm}.invoice-footer .company-strip{font-size:6.5pt;color:#718096}@page{size:A4;margin:0}@media print{html,body{background:#fff!important;margin:0;padding:0}.app-shell,.sidebar,.topbar,.no-print{display:none!important}.invoice-print-wrap{padding:0;display:block;background:#fff}.invoice{box-shadow:none;width:210mm;min-height:297mm;padding:11mm 13mm 18mm;margin:0;page-break-after:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.invoice-logo img,.invoice .box .box-title,.invoice .lines th,.invoice .bank-block .section-title,.invoice .meta-card .k,.invoice .meta-rows .lbl,.invoice .total-row,.invoice .doc-badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media screen and (max-width: 900px){.invoice{transform-origin:top center;transform:scale(.62);margin-bottom:-110mm}}
