@font-face{font-family:HubIT Roboto;src:url(/fonts/Roboto-variable.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{--primary:#3264cb;--primary-hover:#284fa7;--primary-ink:#1d3f91;--primary-soft:#edf1f9;--primary-ring:#8aa1d6;--text:#2f3d50;--text-muted:#5f6e82;--text-subtle:#7d8b9c;--surface:#f5f7fa;--surface-raised:#ffffff;--surface-sunken:#f8fafc;--border:#e2e8f0;--border-strong:#cfd8e3;--danger:#c2413a;--danger-soft:#fdecea;--warning:#9a6416;--warning-soft:#fff3dc;--success:#2f7d5d;--success-soft:#e5f5ee;--violet:#7344b8;--violet-soft:#f0ebff;--note:#7a5d0f;--note-soft:#fff8e1;--note-line:#f0d98a;--role-requester-bg:#f3f5f8;--role-requester-ink:#7a6234;--role-requester-avatar:#efe7d6;--role-assignee-bg:#e6edfb;--role-assignee-ink:#2f54a8;--role-engineer-bg:#e3f3eb;--role-engineer-ink:#2f7d5d;--role-admin-bg:#efe8fb;--role-admin-ink:#6a3fb0;--font:"HubIT Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:24px;--radius-sm:6px;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 2px rgb(33 50 89/6%);--shadow:0 6px 20px rgb(33 50 89/10%);--shadow-lg:0 18px 50px rgb(33 50 89/18%);--header-h:56px;--toolbar-h:52px;--sidebar-w:248px}*,:after,:before{box-sizing:border-box}body,html{margin:0;min-height:100%;font-family:var(--font);font-size:var(--fs-md);line-height:1.45;color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}svg{flex-shrink:0}small{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}button:disabled{opacity:.55;cursor:not-allowed}a,button,input,select,textarea{transition:background-color .15s,border-color .15s,box-shadow .15s,color .15s}:focus-visible{outline:3px solid var(--primary-ring);outline-offset:2px}input,select,textarea{width:100%;min-width:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);padding:9px 11px;font-size:var(--fs-md)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}input::placeholder,textarea::placeholder{color:var(--text-subtle)}input[readonly],select:disabled{background:var(--surface-sunken);color:var(--text-muted)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);margin:0}textarea{resize:vertical;line-height:1.55}label{display:block;color:var(--text-muted);font-size:var(--fs-sm)}label>.readonly-value,label>input,label>select,label>textarea{margin-top:6px}table{border-collapse:collapse;width:100%}.create-ticket,.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 16px;border-radius:var(--radius);font-weight:600;font-size:var(--fs-sm);white-space:nowrap}.create-ticket,.primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.create-ticket:hover,.primary:hover:not(:disabled){background:var(--primary-hover)}.secondary{background:var(--surface-raised);border:1px solid var(--border-strong);color:var(--text-muted);font-weight:500}.secondary.is-on,.secondary:hover{background:var(--primary-soft);border-color:var(--primary-ring);color:var(--primary-ink)}.danger-button{background:var(--danger)}.danger-button:hover:not(:disabled){background:#a3322c}.danger-text{color:var(--danger)!important}.hub-icon,.icon-button{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-raised);color:var(--text-muted)}.hub-icon.is-on,.hub-icon:hover{background:var(--primary-soft);color:var(--primary-ink);border-color:var(--primary-ring)}.hub-app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);grid-template-rows:var(--header-h) minmax(0,1fr);grid-template-areas:"header header" "filters work";min-height:100vh}.hub-app.filters-collapsed{grid-template-columns:44px minmax(0,1fr)}.portal-header{grid-area:header;position:sticky;top:0;z-index:40;gap:8px;height:var(--header-h);padding:0 16px 0 0;background:var(--surface-raised);border-bottom:1px solid var(--border)}.portal-brand,.portal-header{display:flex;align-items:center}.portal-brand{gap:10px;width:var(--sidebar-w);padding-left:20px;flex-shrink:0}.hubit-wordmark{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.6px;color:#233050}.hubit-wordmark span{color:var(--primary)}.portal-navigation{display:flex;align-self:stretch;gap:2px;flex:1 1;min-width:0}.portal-navigation button{position:relative;display:flex;align-items:center;gap:8px;padding:0 16px;color:var(--text-muted);font-size:var(--fs-md);font-weight:500}.portal-navigation button:hover{background:var(--surface)}.portal-navigation button.active{background:var(--primary-soft);color:var(--primary-ink)}.portal-navigation button.active:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--primary)}.portal-profile-wrap{position:relative}.portal-profile{display:flex;align-items:center;gap:10px;padding:4px 4px 4px 10px;border-radius:999px}.portal-profile:hover{background:var(--surface)}.portal-user-name{font-size:var(--fs-md);color:var(--text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-avatar,.mini-avatar,.portal-avatar,.preview-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--primary-soft);border:1px solid #d8dfee;color:var(--primary);font-size:var(--fs-xs);font-weight:700;flex-shrink:0}.hub-profile{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:240px;padding:8px;border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--border);box-shadow:var(--shadow)}.hub-profile b{display:block;padding:6px 10px 0}.hub-profile small{padding:0 10px 8px;color:var(--text-subtle);font-size:var(--fs-xs);border-bottom:1px solid var(--border);margin-bottom:4px}.hub-profile button{display:block;width:100%;text-align:left;padding:9px 10px;border-radius:var(--radius-sm);color:var(--text-muted)}.hub-profile button:hover{background:var(--surface);color:var(--text)}.hub-filters{grid-area:filters;position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));display:flex;flex-direction:column;padding:16px 10px;background:var(--surface-sunken);border-right:1px solid var(--border);overflow:hidden auto;z-index:20}.filters-heading{display:flex;align-items:center;justify-content:space-between;padding:0 6px 12px;color:var(--text-subtle)}.filters-heading b{font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.filters-heading button{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--radius-sm);color:var(--text-subtle)}.filters-heading button:hover{background:var(--border)}.filters-body{display:flex;flex-direction:column;gap:2px;flex:1 1}.filter-root,.plain-filter,.status-filter{display:flex;align-items:center;gap:9px;width:100%;min-height:38px;padding:8px 10px;border-radius:var(--radius);color:var(--text-muted);font-size:var(--fs-md);text-align:left}.filter-root{min-height:42px;font-weight:600}.filter-root b{flex:1 1;font-weight:600}.status-filter{padding-left:22px}.status-filter>span:nth-child(2){flex:1 1}.plain-filter{justify-content:space-between;padding-left:36px}.filter-root>span,.plain-filter>span,.status-filter>i{min-width:24px;text-align:center;font-style:normal;font-size:var(--fs-xs);color:var(--text-subtle)}.filter-root:hover,.plain-filter:hover,.status-filter:hover{background:#edf0f7}.filter-root.active,.plain-filter.active,.status-filter.active{background:#e4eaf6;color:var(--primary-ink)}.filter-root.active svg{color:var(--primary)}.filter-root.active>span,.plain-filter.active>span,.status-filter.active>i{color:var(--primary-ink);font-weight:600}.plain-filter.has-alert>span{background:var(--danger-soft);color:var(--danger);border-radius:10px;font-weight:600}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-subtle)}.status-dot.new{background:var(--violet)}.status-dot.progress{background:var(--primary)}.status-dot.waiting{background:#d99b2b}.status-dot.resolved{background:var(--success)}.filter-divider{height:1px;margin:14px 6px;background:var(--border)}.filter-foot{display:flex;align-items:center;gap:7px;margin-top:auto;padding:14px 6px 0;border-top:1px solid var(--border);color:var(--text-subtle);font-size:var(--fs-xs)}.filters-collapsed .hub-filters{padding:16px 6px}.filters-collapsed .filters-heading{justify-content:center;padding:0}.filters-collapsed .filters-body,.filters-collapsed .filters-heading b,.mobile-filter,.mobile-filters-backdrop{display:none}.hub-workspace{grid-area:work;min-width:0;display:flex;flex-direction:column}.hub-toolbar{position:sticky;top:var(--header-h);z-index:15;display:flex;align-items:center;gap:8px;min-height:var(--toolbar-h);padding:7px 12px;background:var(--surface-raised);border-bottom:1px solid var(--border)}.toolbar-search{width:300px;height:38px}.toolbar-spacer{flex:1 1}.opened-tab{display:flex;align-items:center;gap:8px;max-width:360px;height:38px;padding:0 4px 0 12px;border-radius:var(--radius);background:var(--primary-soft);color:var(--primary-ink);font-size:var(--fs-sm);font-weight:500}.opened-tab span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opened-tab button{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm)}.opened-tab button:hover{background:#dfe6f6}.hub-error{display:flex;align-items:center;gap:12px;margin:12px 16px 0;padding:10px 14px;border-radius:var(--radius);background:var(--danger-soft);color:var(--danger)}.hub-error button{font-weight:600;text-decoration:underline}.hub-main{flex:1 1;min-height:0}.dashboard,.knowledge-page,.team-page,.ticket-list{margin:16px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.dashboard,.knowledge-page,.team-page{padding:24px}.knowledge-page,.team-page{max-width:1100px}.list-caption{flex-wrap:wrap;padding:18px 20px;border-bottom:1px solid var(--border)}.list-caption,.list-caption h1{display:flex;align-items:center;gap:10px}.list-caption h1{font-size:var(--fs-2xl)}.list-caption h1 span{padding:2px 9px;border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font-size:var(--fs-sm);font-weight:500}.active-filter{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-ink);font-size:var(--fs-xs);font-weight:600}.caption-spacer{flex:1 1}.updated-label{color:var(--text-subtle);font-size:var(--fs-xs)}.ticket-columns{position:relative}.column-options{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:250px;padding:12px;display:grid;gap:4px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.column-options b{padding-bottom:4px;font-size:var(--fs-sm)}.column-options label{display:flex;align-items:center;gap:9px;padding:5px 4px;color:var(--text);font-size:var(--fs-sm)}.column-options label small{margin-left:auto}.column-options label small,.column-options p{color:var(--text-subtle);font-size:var(--fs-xs)}.column-options p{margin-top:6px}.column-reset{display:inline-flex;align-items:center;gap:6px;margin-top:4px;color:var(--primary);font-size:var(--fs-xs);font-weight:600}.advanced-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;gap:12px;padding:14px 20px;background:var(--surface-sunken);border-bottom:1px solid var(--border)}.checkbox-filter{display:flex;align-items:center;gap:8px;height:40px;color:var(--text)}.table-scroll{overflow-x:auto}.hub-table{table-layout:fixed}.hub-table th{padding:0;text-align:left;border-bottom:1px solid var(--border);background:var(--surface-sunken)}.hub-table th button{display:flex;align-items:center;gap:5px;width:100%;padding:12px;color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.hub-table th button svg{color:var(--text-subtle)}.hub-table th button svg.sorted{color:var(--primary)}.hub-table td{padding:10px 12px;border-bottom:1px solid var(--border);font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.hub-table tbody tr{cursor:pointer}.hub-table tbody tr:hover{background:#f7f9fd}.hub-table tr.priority-critical td:first-child{box-shadow:inset 4px 0 var(--danger)}.hub-table tr.priority-high td:first-child{box-shadow:inset 4px 0 #e0a23a}.hub-table tr.overdue-row{background:#fffafa}.title-cell{display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-subtle)}.hub-table td[data-column=priority],.hub-table td[data-column=status]{text-overflow:clip}.ticket-title-link{min-width:0;flex:1 1;overflow:hidden;text-overflow:ellipsis;text-align:left;color:var(--primary-ink);font-weight:600;font-size:var(--fs-md)}.ticket-title-link:hover{text-decoration:underline}.ticket-peek-button{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-subtle)}.ticket-peek-button:hover{background:var(--primary-soft);color:var(--primary)}.id-link{color:var(--text-muted);font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted-text,.no-reply{color:var(--text-subtle)}.last-reply-preview{display:grid;line-height:1.3}.last-reply-author{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted)}.last-reply-excerpt{overflow:hidden;text-overflow:ellipsis;color:var(--text-subtle);font-size:var(--fs-sm)}.overdue-text{color:var(--danger)!important;font-weight:600}.due-hint{font-size:var(--fs-xs)}.due-hint,.empty-list{color:var(--text-subtle)}.empty-list{display:grid;justify-items:center;gap:10px;padding:56px 20px;text-align:center}.empty-list h2{color:var(--text);font-size:var(--fs-lg)}.category-chip,.hub-status,.priority-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.hub-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.hub-status.new{background:var(--violet-soft);color:var(--violet)}.hub-status.progress{background:#e6ecfb;color:#2f54a8}.hub-status.waiting{background:var(--warning-soft);color:var(--warning)}.hub-status.closed,.hub-status.resolved{background:var(--success-soft);color:var(--success)}.priority-chip{background:var(--surface);color:var(--text-muted)}.priority-chip.high{background:var(--warning-soft);color:var(--warning)}.priority-chip.critical{background:var(--danger-soft);color:var(--danger)}.priority-chip.low{color:var(--text-subtle)}.category-chip{background:var(--surface);color:var(--text-muted);font-weight:500}.unread-dot{width:9px;height:9px;margin:0 3px;border-radius:50%;box-shadow:0 0 0 3px var(--primary-soft)}.unread-badge,.unread-dot{background:var(--primary);flex-shrink:0}.unread-badge{padding:2px 8px;border-radius:999px;color:#fff;font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.hub-table tr.has-unread{background:#f6f9ff}.hub-table tr.has-unread td[data-column=lastReply] .last-reply-excerpt{color:var(--text);font-weight:500}.unread-root.has-unread{color:var(--primary-ink)}.unread-root.has-unread>span{min-width:24px;padding:1px 7px;border-radius:999px;background:var(--primary);color:#fff!important;font-weight:700}.changes-banner{margin:12px 24px 0;padding:10px 14px;border-radius:var(--radius);background:var(--primary-soft);border-left:3px solid var(--primary);font-size:var(--fs-sm)}.changes-banner b{display:block;margin-bottom:4px;color:var(--primary-ink)}.changes-banner ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}.changes-banner li{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}.changes-banner small{color:var(--text-subtle);font-size:var(--fs-xs)}.new-badge{padding:1px 7px;border-radius:999px;background:var(--primary);color:#fff;font-size:var(--fs-xs);font-weight:600}.chat-message.is-new .chat-bubble{box-shadow:0 0 0 2px var(--primary-ring)}.ticket-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;height:calc(100vh - var(--header-h) - var(--toolbar-h))}.ticket-conversation{display:flex;flex-direction:column;min-height:0;background:var(--surface-raised);border-right:1px solid var(--border)}.conversation-heading{padding:16px 24px 14px;border-bottom:1px solid var(--border)}.conversation-heading small{color:var(--text-muted);font-size:var(--fs-xs);font-weight:600}.conversation-heading small span{font-weight:400;color:var(--text-subtle)}.conversation-heading h1{display:flex;align-items:center;gap:8px;margin:4px 0 10px;font-size:var(--fs-xl)}.conversation-heading h1 svg{color:var(--text-subtle)}.conversation-tags{display:flex;flex-wrap:wrap;gap:6px}.message-thread{flex:1 1;min-height:0;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:18px}.history-error,.history-loading{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius);background:var(--surface);color:var(--text-muted);font-size:var(--fs-sm)}.history-loading svg{animation:hub-spin 1s linear infinite}.history-error{background:var(--danger-soft);color:var(--danger)}.history-error button{font-weight:600;text-decoration:underline}.chat-message{display:flex;gap:12px;max-width:82%}.chat-message.engineer,.chat-message.internal{align-self:flex-end;flex-direction:row-reverse}.chat-message.requester .chat-avatar{background:#efe7d6;border-color:#e3d6b9;color:#7a6234}.chat-content{display:grid;gap:4px;min-width:0}.chat-message.engineer .chat-content,.chat-message.internal .chat-content{justify-items:end}.message-caption{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:var(--fs-xs)}.message-caption b{color:var(--text-muted)}.message-caption time{color:var(--text-subtle)}.chat-bubble{padding:12px 15px;border-radius:var(--radius-lg);background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere}.chat-message.engineer .chat-bubble{background:#e9effb}.chat-message.internal .chat-bubble{background:var(--note-soft);border:1px dashed var(--note-line)}.internal-badge{gap:4px;padding:1px 7px;border-radius:999px;background:var(--note-soft);color:var(--note);font-weight:600}.comment-actions button,.internal-badge{display:inline-flex;align-items:center;font-size:var(--fs-xs)}.comment-actions button{gap:5px;padding:2px 4px;color:var(--primary)}.comment-actions button:hover{text-decoration:underline}.comment-quote{margin:0 0 8px;padding:6px 10px;border-left:3px solid var(--primary-ring);background:rgb(255 255 255/60%);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--fs-sm)}.comment-quote div{display:flex;gap:8px;font-size:var(--fs-xs)}.comment-quote time{color:var(--text-subtle)}.comment-quote p{color:var(--text-muted);font-style:italic;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.chat-message.engineer.speaker-assignee .chat-bubble{background:var(--role-assignee-bg)}.chat-message.engineer.speaker-engineer .chat-bubble{background:var(--role-engineer-bg)}.chat-message.engineer.speaker-admin .chat-bubble{background:var(--role-admin-bg)}.chat-message.speaker-assignee .chat-avatar,.participant.assignee .participant-avatar{background:var(--role-assignee-bg);border-color:#c9d6f3;color:var(--role-assignee-ink)}.chat-message.speaker-engineer .chat-avatar,.participant.engineer .participant-avatar{background:var(--role-engineer-bg);border-color:#bfe2d0;color:var(--role-engineer-ink)}.chat-message.speaker-admin .chat-avatar,.participant.admin .participant-avatar{background:var(--role-admin-bg);border-color:#d9c9f3;color:var(--role-admin-ink)}.participant.requester .participant-avatar{background:var(--role-requester-avatar);border-color:#e3d6b9;color:var(--role-requester-ink)}.role-label{padding:1px 7px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;background:var(--surface);color:var(--text-muted)}.role-label.requester{background:var(--role-requester-avatar);color:var(--role-requester-ink)}.role-label.assignee{background:var(--role-assignee-bg);color:var(--role-assignee-ink)}.role-label.engineer{background:var(--role-engineer-bg);color:var(--role-engineer-ink)}.role-label.admin{background:var(--role-admin-bg);color:var(--role-admin-ink)}.participants{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;padding:0;list-style:none}.participant{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm)}.participant small{color:var(--text-subtle);font-size:var(--fs-xs)}.participant-avatar{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:var(--surface);font-size:11px;font-weight:700}.reply-composer{display:grid;gap:8px;padding:10px 24px 14px;border-top:1px solid var(--border);background:var(--surface-raised)}.reply-composer.is-internal{background:#fffdf5}.reply-composer textarea{min-height:64px;max-height:260px;resize:none}.reply-composer.is-internal textarea{border-color:var(--note-line);background:var(--note-soft)}.reply-tabs{display:flex;align-items:center;gap:4px}.reply-tabs button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--fs-sm);font-weight:500;white-space:nowrap}.tab-short{display:none}.reply-tabs button.active{background:var(--primary-soft);color:var(--primary-ink);font-weight:600}.reply-composer.is-internal .reply-tabs button.active{background:var(--note-soft);color:var(--note)}.tabs-spacer{flex:1 1}.template-select{width:auto;padding:5px 8px;font-size:var(--fs-sm);color:var(--text-muted)}.reply-actions{display:flex;align-items:center;gap:12px}.reply-actions .file-picker{flex:1 1;min-width:0}.reply-visibility{color:var(--text-subtle);font-size:var(--fs-xs)}.draft-quote{display:flex;align-items:flex-start;gap:8px}.draft-quote .comment-quote{flex:1 1;margin:0}.waiting-reply-hint{padding:8px 12px;border-radius:var(--radius);background:var(--warning-soft);color:var(--warning);font-size:var(--fs-sm)}.file-picker{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.file-picker>small{color:var(--text-subtle);font-size:var(--fs-xs)}.file-select-button{position:relative;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--primary);font-size:var(--fs-sm);cursor:pointer}.file-select-button:hover{background:var(--primary-soft)}.file-select-button input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}.attachment-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;width:100%}.file-tile{display:grid;gap:2px;width:116px;padding:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);font-size:var(--fs-xs);white-space:normal}.file-tile:hover{border-color:var(--primary-ring)}.file-tile>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--primary-ink)}.file-tile small{color:var(--text-subtle)}.file-tile-visual{position:relative;display:grid;place-items:center;height:70px;border-radius:var(--radius-sm);background:var(--surface);color:var(--text-subtle);overflow:hidden}.file-tile-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.file-type{display:grid;place-items:center;width:40px;height:46px;border-radius:4px;background:#e8eefc;color:var(--primary);font-weight:700}.file-type.pdf{background:var(--danger-soft);color:var(--danger)}.file-type.excel{background:var(--success-soft);color:var(--success)}.ticket-properties{min-height:0;overflow-y:auto;padding:16px;background:var(--surface-sunken)}.ticket-properties form{gap:14px;margin-top:14px}.requester-card,.ticket-properties form{display:grid;padding:16px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg)}.requester-card{gap:8px}.requester-card h3{color:var(--text-subtle);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.client-name{display:flex;align-items:center;gap:8px;font-weight:600}.requester-card p{display:flex;align-items:flex-start;gap:8px;color:var(--text-muted);font-size:var(--fs-sm)}.requester-card svg{color:var(--text-subtle);margin-top:2px}.requester-meta{color:var(--text-subtle)!important;font-size:var(--fs-xs)!important}.readonly-value{display:block;color:var(--text)}.quick-due{display:flex;flex-wrap:wrap;gap:6px;margin-top:-6px}.quick-due button{padding:4px 9px;border-radius:999px;border:1px solid var(--border);color:var(--text-muted);font-size:var(--fs-xs)}.quick-due button:hover{border-color:var(--primary-ring);color:var(--primary-ink);background:var(--primary-soft)}.unsaved-note{padding:8px 10px;border-radius:var(--radius);background:var(--warning-soft);color:var(--warning);font-size:var(--fs-xs)}.property-actions{display:flex;gap:8px}.property-actions .primary{flex:1 1}.save-properties.is-dirty{box-shadow:0 0 0 3px var(--primary-soft)}.take-ticket{height:38px;border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--primary-ink);font-weight:600;font-size:var(--fs-sm)}.take-ticket:hover{background:var(--primary-soft)}.overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:rgb(23 33 56/45%);animation:hub-fade .15s ease-out}.modal{position:relative;width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:28px;border-radius:16px;background:var(--surface-raised);box-shadow:var(--shadow-lg)}.modal>h2{margin-bottom:6px;font-size:var(--fs-xl);padding-right:36px}.modal>p{margin-bottom:14px;color:var(--text-muted)}.modal .close{position:absolute;top:18px;right:18px;border:0}.modal-symbol{display:grid;place-items:center;width:44px;height:44px;margin-bottom:14px;border-radius:var(--radius-lg);background:var(--primary-soft);color:var(--primary)}.ticket-form{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.field-hint{margin-top:-6px;color:var(--text-subtle);font-size:var(--fs-xs)}.info-box{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background:var(--primary-soft);color:var(--primary-ink)}.info-box,.login-error{border-radius:var(--radius);font-size:var(--fs-sm)}.login-error{padding:9px 12px;background:var(--danger-soft);color:var(--danger)}.ticket-preview-panel{width:min(620px,100%)}.preview-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;color:var(--text-muted);font-size:var(--fs-sm)}.preview-comments{display:grid;gap:12px}.preview-comments h3{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--text-muted)}.preview-comment{display:flex;gap:10px;padding:12px;border-radius:var(--radius-lg);background:var(--surface)}.preview-comment.internal{background:var(--note-soft)}.preview-comment>div{min-width:0}.preview-comment-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:var(--fs-xs)}.preview-comment-meta time{color:var(--text-subtle)}.preview-comment p{margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere}.preview-state{gap:8px}.preview-footer,.preview-state{display:flex;align-items:center;color:var(--text-subtle)}.preview-footer{justify-content:space-between;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:var(--fs-xs)}.toast{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;align-items:center;gap:10px;max-width:min(440px,calc(100vw - 32px));padding:12px 14px;border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--border);border-left:4px solid var(--success);box-shadow:var(--shadow);animation:hub-rise .2s ease-out}.toast>svg{color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-notice{border-left-color:var(--primary)}.toast-notice>svg{color:var(--primary)}.toast-action{padding:6px 12px;border-radius:var(--radius-sm);background:var(--primary);color:#fff!important;font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.toast-action:hover{background:var(--primary-hover)}.toast-error>svg{color:var(--danger)}.toast span{flex:1 1}.toast button{color:var(--text-subtle)}.login-page,.startup-page{min-height:100vh;display:grid;place-items:center;align-content:center;gap:18px;padding:16px;background-color:#f5f8fb;background-image:radial-gradient(ellipse at 20% 10%,#e2e8f5 0,transparent 48%),radial-gradient(ellipse at 90% 95%,#edf1f8 0,transparent 50%)}.login-card{width:min(420px,100%);padding:36px 34px 28px;border-radius:18px;background:var(--surface-raised);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.login-brand,.startup-brand{display:flex;align-items:center;gap:10px;margin-bottom:26px}.startup-brand{margin:0}.login-card h1{font-size:var(--fs-2xl)}.login-card>p{margin:4px 0 22px;color:var(--text-muted)}.login-card form{display:grid;gap:14px}.login-card .primary{height:44px;font-size:var(--fs-md)}.login-note{display:flex;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid var(--border);color:var(--text-subtle);font-size:var(--fs-sm)}.startup-error,.startup-progress{display:grid;justify-items:center;gap:12px;color:var(--text-muted)}.startup-spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--primary-soft);border-top-color:var(--primary);animation:hub-spin .9s linear infinite}.team-heading{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.team-heading h1{font-size:var(--fs-2xl)}.team-heading p{color:var(--text-muted)}.team-heading label{width:200px}.kb-search{position:relative;margin-bottom:14px}.kb-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-subtle)}.kb-search input{margin:0;padding-left:36px}.knowledge-page details{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px}.knowledge-page summary{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;font-weight:600;list-style:none}.knowledge-page summary::-webkit-details-marker{display:none}.knowledge-page summary:before{content:"";width:7px;height:7px;border-right:2px solid var(--text-subtle);border-bottom:2px solid var(--text-subtle);transform:rotate(-45deg);transition:transform .15s;flex-shrink:0}.knowledge-page details[open] summary:before{transform:rotate(45deg)}.knowledge-page summary>span:first-child{flex:1 1}.knowledge-page details p{padding:0 16px 16px 33px;color:var(--text-muted);white-space:pre-wrap}.kb-actions{display:flex;gap:4px}.kb-actions button{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-subtle)}.kb-actions button:hover{background:var(--surface)}.employee-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.employee-search{width:320px}.employee-tabs{display:flex;gap:4px;padding:3px;border-radius:var(--radius);background:var(--surface)}.employee-tabs button{padding:7px 14px;border-radius:var(--radius-sm);color:var(--text-muted);font-weight:500}.employee-tabs button.active{background:var(--surface-raised);color:var(--text);box-shadow:var(--shadow-sm)}.employee-tabs span{margin-left:4px;color:var(--text-subtle);font-size:var(--fs-xs)}.employee-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:8px}.mini-avatar{width:40px;height:40px}.employee-info{display:grid;gap:1px}.employee-info small{color:var(--text-subtle);font-size:var(--fs-xs)}.employee-info .employee-workplace{color:var(--text-muted);font-size:var(--fs-sm)}.employee-status{padding:3px 9px;border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:600}.employee-status.active{background:var(--success-soft);color:var(--success)}.employee-status.inactive{background:var(--surface);color:var(--text-muted)}.employee-status.deleted{background:var(--danger-soft);color:var(--danger)}.employee-actions{display:flex;flex-wrap:wrap;gap:4px}.employee-actions button{padding:6px 10px;border-radius:var(--radius-sm);color:var(--primary);font-size:var(--fs-sm);font-weight:500}.employee-actions button:hover:not(:disabled){background:var(--primary-soft)}.employee-active-check{display:flex;align-items:center;gap:9px;color:var(--text)}.employee-notice{margin-bottom:12px;padding:9px 12px;border-radius:var(--radius);background:var(--success-soft);color:var(--success)}.employee-empty{padding:30px;text-align:center;color:var(--text-subtle)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}.metric{display:grid;gap:6px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);text-align:left;background:var(--surface-raised)}button.metric:hover{border-color:var(--primary-ring);box-shadow:var(--shadow-sm)}.metric span{color:var(--text-muted);font-size:var(--fs-sm)}.metric b{font-size:28px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric.danger b{color:var(--danger)}.dashboard-panel{padding:18px;border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:16px}.dashboard-panel h2{margin-bottom:14px;font-size:var(--fs-lg)}.dashboard-panel td,.dashboard-panel th{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-panel th{color:var(--text-muted);font-size:var(--fs-sm);font-weight:600}.trend-chart{display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:12px;height:150px}.trend-chart>div{display:grid;justify-items:center;align-content:end;gap:4px;height:100%}.trend-chart span{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted)}.trend-chart i{width:min(42px,100%);border-radius:4px 4px 0 0;background:var(--primary)}.dashboard-note,.trend-chart small{color:var(--text-subtle);font-size:var(--fs-xs)}@keyframes hub-spin{to{transform:rotate(1turn)}}@keyframes hub-fade{0%{opacity:0}}@keyframes hub-rise{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (max-width:1300px){:root{--sidebar-w:220px}.ticket-layout{grid-template-columns:minmax(0,1fr) 280px}.portal-navigation button{padding:0 12px}}@media (max-width:1050px){.portal-brand{width:auto;padding-right:12px}.portal-user-name{display:none}.ticket-layout{height:auto;grid-template-columns:1fr}.ticket-conversation{border-right:0}.message-thread{max-height:60vh}.ticket-properties{border-top:1px solid var(--border)}.employee-card{grid-template-columns:auto minmax(0,1fr) auto}.employee-actions{grid-column:1/-1}}@media (max-width:760px){.hub-app,.hub-app.filters-collapsed{grid-template-columns:minmax(0,1fr);grid-template-areas:"header" "work"}.hub-filters{position:fixed;top:var(--header-h);left:0;bottom:0;width:min(300px,86vw);height:auto;transform:translateX(-100%);transition:transform .2s ease-out;z-index:50;box-shadow:var(--shadow-lg)}.mobile-filters-open .hub-filters{transform:none}.filters-heading button{display:none}.filters-collapsed .filters-body{display:flex}.mobile-filters-backdrop{display:block;position:fixed;inset:var(--header-h) 0 0 0;z-index:45;background:rgb(23 33 56/35%)}.mobile-filter{display:inline-grid}.portal-header{padding-right:8px;gap:2px}.portal-brand{padding-left:12px;padding-right:6px}.hubit-wordmark{display:none}.portal-navigation button{padding:0 12px}.portal-navigation button span{display:none}.portal-navigation button.active:after{left:8px;right:8px}.create-ticket span{display:none}.create-ticket{width:38px;padding:0}.toolbar-search{flex:1 1;width:auto}.opened-tab{display:none}.dashboard,.knowledge-page,.team-page,.ticket-list{margin:8px;border-radius:var(--radius)}.dashboard,.knowledge-page,.team-page{padding:16px}.list-caption{padding:14px}.list-caption h1{font-size:var(--fs-xl);width:100%}.caption-spacer,.updated-label{display:none}.hub-table{min-width:0!important}.hub-table thead{display:none}.hub-table,.hub-table tbody{display:block}.hub-table tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:12px 14px;border-bottom:1px solid var(--border)}.hub-table tr.priority-critical{box-shadow:inset 4px 0 var(--danger)}.hub-table tr.priority-high{box-shadow:inset 4px 0 #e0a23a}.hub-table td{display:block;width:auto!important;padding:0;border:0;font-size:var(--fs-sm)}.hub-table td[data-column=title]{grid-column:1/-1;box-shadow:none!important}.hub-table td[data-column=title] .title-cell>svg{display:none}.hub-table td[data-column=title] .ticket-title-link{white-space:normal;font-size:var(--fs-md)}.hub-table td[data-label]:before{content:attr(data-label);display:block;color:var(--text-subtle);font-size:11px}.hub-table td[data-column=lastReply]{grid-column:1/-1}.hub-table td[data-column=updatedAt]{display:none}.message-thread{padding:14px;max-height:none}.changes-banner{margin:10px 14px 0}.conversation-heading,.reply-composer{padding-left:14px;padding-right:14px}.chat-message{max-width:100%}.reply-actions{flex-wrap:wrap}.tab-long{display:none}.tab-short{display:inline}.reply-actions .primary{width:100%}.reply-visibility{order:3}.form-grid{grid-template-columns:1fr}.modal{padding:22px 18px}.employee-search{width:100%}.employee-card{grid-template-columns:auto minmax(0,1fr)}.employee-status{justify-self:start;grid-column:2}.toast{left:12px;right:12px;bottom:12px}}