:root{font-family:Segoe UI,Arial,sans-serif;color:#1f2937;background:#eef2f7;--primary:#2563eb;--danger:#dc2626;--border:#dbe3ee;--app-height:100dvh}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;height:var(--app-height,100vh);overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.mobileonly{display:none!important}
#login{height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#e8eefc,#f7f9fc)}.card{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 50px #1e293b1c;padding:28px;width:min(420px,92vw)}h1,h2,h3{margin:0 0 14px}.muted{color:#64748b;font-size:13px}.field{display:grid;gap:6px;margin:13px 0}.field input,.field select,.field textarea{padding:10px 12px;border:1px solid #cbd5e1;border-radius:8px;outline:none}.field textarea{resize:vertical;min-height:120px}.field input:focus{border-color:var(--primary)}.primary,.secondary,.danger{border:0;border-radius:8px;padding:9px 14px}.primary{background:var(--primary);color:white}.secondary{background:#e8edf5;color:#243047}.danger{background:var(--danger);color:#fff}.wide{width:100%}.error{color:#b91c1c;min-height:20px;margin-top:8px}
#app{height:var(--app-height,100vh);min-height:0;overflow:hidden;display:grid;grid-template-rows:58px minmax(0,1fr)}.topbar{display:flex;align-items:center;gap:14px;background:#fff;border-bottom:1px solid var(--border);padding:0 16px}.brand{font-weight:700;font-size:18px}.spacer{flex:1}.status{padding:7px;border:1px solid var(--border);border-radius:8px}.layout{height:100%;min-height:0;overflow:hidden;display:grid;grid-template-columns:236px 340px 1fr}.layout.adminmode .chat{grid-column:2/4}.nav{min-height:0;overflow-y:auto;background:#111827;color:#cbd5e1;padding:12px}.nav button{display:block;width:100%;text-align:left;background:transparent;color:inherit;border:0;padding:11px 12px;border-radius:8px;margin:3px 0}.nav button.active,.nav button:hover{background:#263449;color:white}.nav .badge{float:right;background:#ef4444;color:#fff;border-radius:999px;padding:1px 7px;font-size:11px}.nav-admin{margin-top:3px}.nav-admin-top{display:flex!important;align-items:center;gap:8px}.nav-admin-top .navlabel{flex:1}.navcaret{font-size:11px;transition:transform .16s ease}.nav-admin.open>.nav-admin-top .navcaret{transform:rotate(180deg)}.adminnavtree{margin:4px 0 8px 8px;padding-left:8px;border-left:1px solid #334155}.adminnavgroup{margin:4px 0}.nav .adminnavgroupbtn{display:flex;align-items:center;gap:7px;padding:8px 9px;margin:2px 0;font-size:12px;font-weight:700;color:#aebbd0}.adminnavgroupbtn .navlabel{flex:1}.adminnavgroup.open>.adminnavgroupbtn{color:#fff;background:#1e293b}.adminnavgroup.open>.adminnavgroupbtn .navcaret{transform:rotate(180deg)}.adminnavitems{display:grid;gap:1px;padding:2px 0 4px 8px}.nav .adminnavitem{padding:8px 9px;margin:1px 0;font-size:12px;color:#94a3b8}.nav .adminnavitem.active{background:#334155;color:#fff;font-weight:700}.nav .adminnavitem:hover{background:#263449;color:#fff}.listpane{height:100%;min-height:0;overflow:hidden;background:#f8fafc;border-right:1px solid var(--border);display:grid;grid-template-rows:auto minmax(0,1fr)}.panehead{padding:14px;border-bottom:1px solid var(--border);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.panehead h2{font-size:17px;margin:0;flex:1}.queuetabs{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;width:100%}.queuetabs button{flex:0 0 calc(50% - 3px);min-width:0;border:1px solid var(--border);background:#fff;color:#475569;border-radius:8px;padding:8px;white-space:normal;overflow-wrap:anywhere}.queuetabs button.active{background:#dbeafe;border-color:#7aa7ff;color:#1d4ed8;font-weight:600}.tabcount{display:inline-block;min-width:20px;margin-left:5px;padding:1px 6px;border-radius:999px;background:#e2e8f0;font-size:11px}.queuetabs button.active .tabcount{background:#fff}.requests{min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px}.request{background:#fff;border:1px solid var(--border);border-radius:10px;padding:11px;margin:6px 0}.request:hover,.request.selected{border-color:#7aa7ff;background:#f7faff}.reqtop{display:flex;justify-content:space-between;font-weight:600}.reqmeta,.preview{font-size:12px;color:#64748b;margin-top:5px}.preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.waiting{background:#f59e0b}.assignedDot{background:#2563eb}.activeDot{background:#10b981}.closed{background:#94a3b8}
.chat{min-width:0;min-height:0;height:100%;overflow:hidden;background:#fff;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.chathead{border-bottom:1px solid var(--border);padding:12px 16px;display:flex;align-items:center;gap:10px;background:#fff}.chatidentity{min-width:0;flex:1}.chathead .title{font-weight:700}.chathead .details{font-size:12px;color:#64748b}.chatactions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.messages{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:18px;background:#eef3f8}.bubble{max-width:72%;padding:9px 11px;border-radius:12px;margin:7px 0;box-shadow:0 1px 2px #00000012}.bubble.client{background:#fff;border:1px solid var(--border)}.bubble.operator{background:#dbeafe;margin-left:auto}.bubble.system{background:#fef3c7;margin:10px auto;max-width:80%;font-size:12px;text-align:center}.sender{font-size:11px;color:#64748b;margin-bottom:4px}.time{font-size:10px;color:#94a3b8;text-align:right;margin-top:5px}.attachment{margin-top:7px;border:1px dashed #9ca3af;background:#ffffffa8;padding:8px;border-radius:7px}.media{margin-top:8px}.chatimage{display:block;max-width:min(520px,100%);max-height:420px;object-fit:contain;border-radius:9px;border:1px solid #cbd5e1;background:#f8fafc;cursor:zoom-in}.mediahead{display:flex;gap:8px;align-items:center;margin-top:6px;font-size:12px}.mediahead span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-loading{display:grid;place-items:center;min-height:120px;color:#64748b;background:#f8fafc;border:1px solid #cbd5e1;border-radius:9px}.closednotice{border-top:1px solid var(--border);padding:14px 16px;background:#fff7ed;color:#9a3412;font-weight:600}.closednotice.clientclosed{background:#fef2f2;color:#991b1b}.statuspill{padding:4px 8px;border-radius:999px;background:#e2e8f0;font-size:11px}.composer{min-width:0;border-top:1px solid var(--border);padding:10px;display:grid;gap:8px;background:#fff}.composerinputrow{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.composer textarea{min-width:0;width:100%;resize:none;min-height:46px;max-height:110px;line-height:1.35;border:1px solid #cbd5e1;border-radius:12px;padding:11px 12px;outline:none}.composer textarea:focus{border-color:#7aa7ff;box-shadow:0 0 0 3px #dbeafe}.composersend{min-height:46px;min-width:112px;border-radius:12px;white-space:nowrap}.composertoolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.composertoolbar button{white-space:nowrap}.composertoolbar #closeBtn{margin-left:auto}.composerpreview{display:flex;align-items:center;gap:10px;min-width:0;padding:8px;border:1px solid #cbd5e1;border-radius:11px;background:#f8fafc}.composerpreview-thumb{width:58px;height:58px;flex:0 0 58px;border-radius:8px;object-fit:cover;border:1px solid #cbd5e1;background:#fff}.composerpreview-file{display:grid;place-items:center;font-size:26px}.composerpreview-info{min-width:0;flex:1}.composerpreview-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.composerpreview-size{font-size:11px;color:#64748b;margin-top:3px}.composerpreview-remove{flex:0 0 auto;border:0;background:#e2e8f0;color:#334155;border-radius:999px;width:32px;height:32px;padding:0;font-size:18px}.response-template-panel{border:1px solid #cbd5e1;border-radius:12px;background:#fff;box-shadow:0 10px 28px #0f172a20;overflow:hidden}.response-template-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:9px;border-bottom:1px solid var(--border);background:#f8fafc}.response-template-head input{min-width:0;width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px}.response-template-list{display:grid;gap:5px;max-height:260px;overflow-y:auto;padding:7px}.response-template-item{display:block;width:100%;text-align:left;border:1px solid var(--border);border-radius:9px;background:#fff;padding:9px 10px}.response-template-item:hover,.response-template-item:focus{border-color:#7aa7ff;background:#eff6ff}.response-template-title{font-weight:700;color:#1e293b}.response-template-body{margin-top:4px;color:#64748b;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.response-template-empty{padding:18px;text-align:center;color:#64748b}.templatepreview{max-width:520px;white-space:pre-wrap;overflow-wrap:anywhere}.empty{display:grid;place-items:center;color:#94a3b8;height:100%}
.modalback{position:fixed;inset:0;background:#0f172a70;display:grid;place-items:center;z-index:20}.modal{background:white;border-radius:12px;width:min(760px,94vw);max-height:86vh;overflow:auto;padding:20px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid var(--border);padding:9px;text-align:left;font-size:13px}.pill{padding:3px 7px;border-radius:999px;background:#e2e8f0;font-size:11px}.adminview{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:18px}.statsgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.stat{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px}.stat b{font-size:24px;display:block}.statsection{margin-top:22px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}.schedulegrid{display:grid;gap:8px;margin:12px 0}.schedulerow{display:grid;grid-template-columns:minmax(115px,1fr) 130px 24px 130px;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:#f8fafc}.schedulerow.disabled{opacity:.62}.schedulewarning{margin-top:10px;padding:10px 12px;border-radius:9px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.scheduleok{margin-top:10px;padding:10px 12px;border-radius:9px;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.statsfilters{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.statsfilters .field{margin:0;min-width:150px}.statsfilters .field.grow{flex:1;min-width:220px}.tablewrap{overflow:auto}.metricnote{margin:10px 0;color:#64748b;font-size:12px}.adminactions{display:flex;gap:6px;flex-wrap:wrap}.inactive-row{opacity:.62}.messagekey{font-family:Consolas,monospace;font-size:11px;color:#64748b}.messagepreview{max-width:430px;white-space:pre-wrap;overflow-wrap:anywhere}.statsloading{padding:24px;text-align:center;color:#64748b}.toast{position:fixed;right:18px;bottom:18px;background:#111827;color:white;padding:10px 14px;border-radius:8px;z-index:40;box-shadow:0 8px 28px #0004}
.adminview{padding:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;background:#f8fafc}.adminheader{padding:18px 18px 12px;background:#fff}.adminheader h2{margin-bottom:4px}.admintabs{display:flex;gap:7px;overflow-x:auto;overflow-y:hidden;padding:0 18px 12px;background:#fff;border-bottom:1px solid var(--border);scrollbar-width:thin}.admintabs button{flex:0 0 auto;border:1px solid var(--border);background:#f8fafc;color:#475569;border-radius:9px;padding:9px 12px;white-space:nowrap}.admintabs button:hover{background:#eef2ff;color:#1d4ed8}.admintabs button.active{background:#dbeafe;border-color:#7aa7ff;color:#1d4ed8;font-weight:700}.admingroup{flex:0 0 auto;align-self:center;padding:0 4px 0 10px;color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-left:1px solid var(--border)}.admingroup:first-child{border-left:0;padding-left:0}.bookingcalendargrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-top:14px}.bookingcalendarcard{border:1px solid var(--border);border-radius:12px;padding:14px;background:#f8fafc}.bookingcalendarcard h4{margin:0 0 3px}.slotchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.slotchip{border:1px solid #bfdbfe;background:#eff6ff;color:#1e40af;border-radius:8px;padding:5px 7px;font-size:12px}.slotchip.booked{border-color:#fecaca;background:#fef2f2;color:#991b1b}.slotchip.cancelled{opacity:.55;text-decoration:line-through}.bookingcalendarempty{padding:12px;border:1px dashed var(--border);border-radius:9px;color:#64748b;background:#fff}.bookingmoduleoff{padding:16px;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:10px}.admincontent{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:18px}.admincontent>.statsection:first-child{margin-top:0}.adminsectionhead{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}.adminsectionhead>div:first-child{flex:1;min-width:220px}.adminsectionhead h3{margin-bottom:5px}.adminempty{background:#fff;border:1px dashed var(--border);border-radius:12px;padding:30px;text-align:center;color:#64748b}.adminrefresh{margin-left:auto}.settingscards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.settingscard{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}.settingscard h3{margin-bottom:6px}
.botflow-shell{display:grid;gap:16px}.botflow-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.botflow-toolbar .field{margin:0;min-width:170px}.botflow-toolbar .flowcheck{display:flex;align-items:center;gap:7px;min-height:39px;padding:0 4px}.botflow-map{overflow:auto;padding:18px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(#f8fafc 1px,transparent 1px),linear-gradient(90deg,#f8fafc 1px,transparent 1px),#fff;background-size:24px 24px}.botflow-stage{min-width:760px}.botflow-title{display:flex;align-items:center;gap:8px;margin:3px 0 10px;font-weight:700;color:#334155}.botflow-title .pill{font-weight:400}.botflow-line{display:flex;align-items:stretch;gap:10px}.botflow-arrow{display:grid;place-items:center;flex:0 0 28px;color:#94a3b8;font-size:22px;font-weight:700}.botflow-down{height:34px;display:grid;place-items:center;color:#94a3b8;font-size:22px;font-weight:700}.botflow-node{position:relative;min-width:180px;max-width:250px;flex:1;border:1px solid var(--border);border-radius:11px;background:#fff;padding:12px;box-shadow:0 2px 7px #0f172a0d}.botflow-node.clickable{cursor:pointer;transition:.15s ease}.botflow-node.clickable:hover{border-color:#7aa7ff;box-shadow:0 5px 16px #2563eb1a;transform:translateY(-1px)}.botflow-node.message{border-left:4px solid #2563eb}.botflow-node.category{border-left:4px solid #8b5cf6}.botflow-node.queue{border-left:4px solid #0f766e}.botflow-node.system{border-left:4px solid #64748b}.botflow-node.result{border-left:4px solid #f59e0b}.botflow-node.inactive{opacity:.55;background:#f8fafc}.botflow-node h4{margin:0 0 5px;font-size:14px}.botflow-node .flowkind{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:7px}.botflow-node .flowpreview{font-size:12px;color:#475569;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.botflow-node .flowmeta{font-size:11px;color:#94a3b8;margin-top:8px}.botflow-node .flowedit{position:absolute;right:8px;top:8px;border:0;background:#eef2ff;color:#1d4ed8;border-radius:6px;padding:4px 7px;font-size:11px}.botflow-branches{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:10px}.botflow-orphans{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,250px));gap:10px;margin-top:10px}.botflow-branch{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:stretch;gap:7px;padding:9px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc}.botflow-branch .botflow-node{min-width:0;max-width:none}.botflow-statuses{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:10px}.botflow-lifecycle{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:10px}.botflow-note{padding:10px 12px;border-radius:9px;background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe;font-size:12px}.botflow-legend{display:flex;gap:12px;flex-wrap:wrap;color:#64748b;font-size:12px}.botflow-legend span{display:flex;align-items:center;gap:5px}.botflow-dot{width:9px;height:9px;border-radius:3px;background:#2563eb}.botflow-dot.category{background:#8b5cf6}.botflow-dot.queue{background:#0f766e}.botflow-dot.result{background:#f59e0b}
.botmap-graph-stage{position:relative;min-width:100%;background:transparent}.botmap-graph-stage>svg{position:absolute;inset:0;overflow:visible;pointer-events:none}.botmap-graph-stage>svg path{fill:none;stroke:#94a3b8;stroke-width:2.2}.botmap-graph-stage>svg marker path{fill:#94a3b8;stroke:none}.botmap-graph-stage>svg text{font-size:10px;fill:#475569;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.botmap-graph-node{position:absolute;width:220px;min-height:86px;border:1px solid #cbd5e1;border-left:4px solid #64748b;border-radius:10px;background:#fff;padding:0;text-align:left;box-shadow:0 3px 10px #0f172a14;color:#334155;overflow:hidden;cursor:pointer;transition:.15s ease}.botmap-graph-node:hover{border-color:#7aa7ff;box-shadow:0 6px 18px #2563eb20;transform:translateY(-1px)}.botmap-graph-node.message{border-left-color:#2563eb}.botmap-graph-node.category{border-left-color:#8b5cf6}.botmap-graph-node.support{border-left-color:#0f766e}.botmap-graph-node.result{border-left-color:#f59e0b}.botmap-graph-head{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:6px;padding:8px 9px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.botmap-graph-head i{font-style:normal;text-align:center}.botmap-graph-head b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.botmap-graph-head small{font-size:8px;color:#64748b;text-transform:uppercase}.botmap-graph-preview{display:block;min-height:38px;padding:8px 10px 4px;font-size:10px;line-height:1.35;color:#475569;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.botmap-graph-ports{display:flex;gap:4px;flex-wrap:wrap;padding:3px 8px 8px}.botmap-graph-ports em{font-style:normal;font-size:8px;padding:2px 5px;border-radius:999px;background:#eff6ff;color:#1d4ed8}

/* Universal bot flow constructor */
.flowbuilder{height:calc(100vh - 205px);min-height:560px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}.flowbuilder-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px;border-bottom:1px solid var(--border);background:#fff}.flowbuilder-top select,.flowbuilder-top input{height:36px;border:1px solid #cbd5e1;border-radius:8px;padding:0 9px;background:#fff}.flowbuilder-top .flow-grow{flex:1;min-width:170px}.flowbuilder-body{min-height:0;display:grid;grid-template-columns:190px minmax(400px,1fr) 300px}.flowpalette,.flowinspector{min-height:0;overflow:auto;background:#f8fafc}.flowpalette{border-right:1px solid var(--border);padding:10px}.flowinspector{border-left:1px solid var(--border);padding:12px}.flowpalette h4,.flowinspector h4{margin:4px 0 10px}.flowpalette-group{margin-bottom:13px}.flowpalette-title{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.06em;margin:8px 3px}.flowpalette-item{display:flex;align-items:center;gap:8px;width:100%;border:1px solid #d8e0eb;background:#fff;border-radius:8px;padding:8px;margin:5px 0;text-align:left;color:#334155}.flowpalette-item:hover{border-color:#7aa7ff;background:#eff6ff}.flowpalette-item i{font-style:normal;width:23px;text-align:center}.flowworkspace{position:relative;min-width:0;min-height:0;overflow:hidden;background-color:#f8fafc;background-image:linear-gradient(#e8edf4 1px,transparent 1px),linear-gradient(90deg,#e8edf4 1px,transparent 1px);background-size:24px 24px;touch-action:none;user-select:none}.flowviewport{position:absolute;left:0;top:0;width:5000px;height:3500px;transform-origin:0 0}.flowedge-layer{position:absolute;inset:0;width:5000px;height:3500px;overflow:visible;pointer-events:none}.flowedge{fill:none;stroke:#94a3b8;stroke-width:2.2;pointer-events:stroke;cursor:pointer}.flowedge:hover,.flowedge.selected{stroke:#2563eb;stroke-width:3.5}.flowedge-label{font-size:11px;fill:#475569;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;pointer-events:none}.flownode{position:absolute;width:220px;min-height:82px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 3px 10px #0f172a14;user-select:none}.flownode:hover{border-color:#7aa7ff}.flownode.selected{border:2px solid #2563eb;box-shadow:0 0 0 3px #bfdbfe}.flownode.readonly{opacity:.92}.flownode-head{display:flex;gap:7px;align-items:center;padding:9px 10px;border-bottom:1px solid #e2e8f0;border-radius:9px 9px 0 0;background:#f8fafc;cursor:grab}.flownode-head:active{cursor:grabbing}.flownode-icon{font-size:16px}.flownode-title{font-weight:700;font-size:13px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flownode-type{font-size:9px;color:#64748b;text-transform:uppercase}.flownode-body{padding:8px 10px 10px;font-size:11px;color:#475569;white-space:pre-wrap;overflow-wrap:anywhere;min-height:37px}.flowinput-port{position:absolute;left:-7px;top:35px;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #64748b;cursor:crosshair}.flowoutputs{display:flex;gap:5px;flex-wrap:wrap;padding:0 8px 8px}.flowoutput-port{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:2px 7px;font-size:9px;cursor:crosshair}.flowoutput-port.connecting{background:#2563eb;color:#fff}.flowworkspace-controls{position:absolute;left:10px;bottom:10px;display:flex;gap:5px;background:#ffffffde;border:1px solid var(--border);border-radius:9px;padding:5px;box-shadow:0 4px 16px #0f172a18}.flowworkspace-controls button{border:0;background:#eef2f7;border-radius:6px;padding:5px 9px}.flowzoom{min-width:54px;text-align:center;font-size:11px;align-self:center}.flowreadonly-banner{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:4;background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:999px;padding:6px 12px;font-size:11px;box-shadow:0 3px 12px #0001}.flowconnect-banner{position:absolute;top:10px;left:10px;z-index:5;background:#1d4ed8;color:#fff;border-radius:8px;padding:7px 10px;font-size:11px}.flowmarquee{position:absolute;border:1px dashed #2563eb;background:#60a5fa22;pointer-events:none;z-index:10}.flowproblems{max-height:120px;overflow:auto;border-top:1px solid var(--border);padding:8px 12px;background:#fff}.flowproblems.ok{color:#047857;background:#ecfdf5}.flowproblem{font-size:11px;margin:2px 0}.flowproblem.error{color:#b91c1c}.flowproblem.warning{color:#9a3412}.flowinspector .field{margin:8px 0}.flowinspector textarea{min-height:78px;font-family:Consolas,monospace;font-size:11px}.flowinspector input,.flowinspector select,.flowinspector textarea{width:100%;padding:7px;border:1px solid #cbd5e1;border-radius:7px}.flowinspector-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.flowversion-badge{font-size:11px;border-radius:999px;padding:4px 8px;background:#e2e8f0}.flowversion-badge.draft{background:#fef3c7;color:#92400e}.flowversion-badge.published{background:#dcfce7;color:#166534}.flowdirty{color:#b45309;font-weight:700}.flowhistory-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px;border:1px solid var(--border);border-radius:9px;margin:7px 0}.flowtest{display:grid;grid-template-columns:1fr 260px;gap:12px}.flowtest-canvas{min-height:340px;max-height:62vh;overflow:auto;background:#f8fafc;border:1px solid var(--border);border-radius:9px;padding:10px}.flowtest-step{padding:8px 10px;border-left:3px solid #2563eb;background:#fff;border-radius:7px;margin:6px 0;font-size:12px}.flowtest-controls{border:1px solid var(--border);border-radius:9px;padding:12px}.flowtest-controls button{width:100%;margin:4px 0}.flowcode{font-family:Consolas,monospace}.flow-search-results{position:absolute;top:49px;right:310px;z-index:8;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0002;max-height:240px;overflow:auto;min-width:220px}.flow-search-results button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:8px}.flow-search-results button:hover{background:#eff6ff}.flowconfig-section{margin:10px 0;padding:9px;border:1px solid var(--border);border-radius:9px;background:#fff}.flowconfig-head{display:flex;align-items:center;gap:6px;margin-bottom:7px}.flowconfig-head b{flex:1}.flowconfig-head button,.flowmini-actions button{border:0;border-radius:6px;padding:5px 8px;background:#e8edf5;color:#334155}.flowmenu-entry{border:1px solid #dbe3ee;border-radius:8px;margin:7px 0;background:#f8fafc}.flowmenu-entry summary{cursor:pointer;padding:8px;font-size:12px;font-weight:600;display:flex;gap:6px;align-items:center}.flowmenu-entry summary span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flowmenu-body{padding:0 8px 8px}.flowmenu-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.flowmenu-grid .field{margin:4px 0}.flowmini-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.flowmini-actions .danger{background:#fee2e2;color:#991b1b}.flowdepth{font-family:Consolas,monospace;color:#64748b;font-size:10px}.flowlist-row{border:1px solid #dbe3ee;border-radius:8px;padding:7px;margin:6px 0;background:#f8fafc}.flowlist-row .row{align-items:end}.flowlist-row .field{min-width:0;flex:1;margin:3px 0}.flowhint{font-size:11px;color:#64748b;margin:5px 0}.flowmenu-preview{display:grid;gap:4px;margin:7px 0}.flowmenu-preview div{padding:5px 7px;border-left:2px solid #93c5fd;background:#eff6ff;font-size:11px}

.taskworkspace{display:grid!important;grid-template-rows:auto minmax(0,1fr);padding:0!important;overflow:hidden!important}.taskworkspace .admincontent{min-height:0;overflow:auto}.taskviewtoggle{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}.taskviewtoggle button{border:0;border-radius:7px;padding:7px 10px;background:transparent;color:#475569}.taskviewtoggle button.active{background:#fff;color:#1d4ed8;box-shadow:0 1px 4px #0f172a1f;font-weight:700}.taskboard-shell{min-height:0;overflow:hidden;margin-top:14px}.taskboard{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(285px,320px);gap:12px;align-items:stretch;min-height:460px;max-height:calc(100dvh - 285px);overflow-x:auto;overflow-y:hidden;padding:2px 3px 14px;overscroll-behavior-x:contain}.task-column{display:grid;grid-template-rows:auto minmax(80px,1fr);min-height:420px;border:1px solid var(--border);border-radius:13px;background:#eef2f7;overflow:hidden}.task-column.dragover{border-color:#2563eb;box-shadow:0 0 0 3px #bfdbfe;background:#eff6ff}.task-column-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;padding:11px 12px;border-bottom:1px solid var(--border);background:#fff}.task-column-head b{flex:1}.task-column-count{display:inline-grid;place-items:center;min-width:25px;height:23px;padding:0 7px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:12px;font-weight:700}.task-column-body{min-height:80px;overflow-y:auto;padding:8px}.task-column-empty{display:grid;place-items:center;min-height:92px;color:#94a3b8;font-size:12px;border:1px dashed #cbd5e1;border-radius:10px;margin:3px}.taskcard{position:relative;background:#fff;border:1px solid var(--border);border-radius:11px;padding:11px;margin:0 0 8px;box-shadow:0 1px 3px #0f172a12;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,opacity .12s ease}.taskcard:hover{border-color:#7aa7ff;box-shadow:0 5px 16px #1e3a8a1a;transform:translateY(-1px)}.taskcard.dragging,.taskcard.saving{opacity:.5}.taskcard-title{font-weight:700;line-height:1.3;padding-right:38px;overflow-wrap:anywhere}.taskcard-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.taskcard-line{display:flex;gap:7px;align-items:flex-start;margin-top:7px;color:#64748b;font-size:12px;overflow-wrap:anywhere}.taskcard-line span:first-child{flex:0 0 auto}.taskpriority{padding:2px 7px;border-radius:999px;background:#e2e8f0;font-size:11px}.taskpriority.urgent{background:#fee2e2;color:#991b1b}.taskpriority.high{background:#ffedd5;color:#9a3412}.taskpriority.low{background:#ecfdf5;color:#047857}.taskdraghandle{position:absolute;top:7px;right:7px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:#eef2f7;color:#64748b;font-size:18px;line-height:1;cursor:grab;touch-action:none}.taskdraghandle:active{cursor:grabbing;background:#dbeafe;color:#1d4ed8}.taskdragghost{position:fixed;z-index:1000;width:min(310px,82vw);pointer-events:none;opacity:.92;transform:rotate(2deg);box-shadow:0 18px 48px #0f172a55}.taskboard-hint{margin-top:9px;color:#64748b;font-size:12px}.taskboard.drag-active{scroll-snap-type:none!important;scroll-behavior:auto!important;overscroll-behavior:none}.taskstatus-delivered{background:#d1fae5;color:#065f46}.taskstatus-done{background:#dcfce7;color:#166534}.taskstatus-cancelled{background:#e2e8f0;color:#475569}.taskstatus-in_progress{background:#dbeafe;color:#1d4ed8}.taskstatus-waiting{background:#fef3c7;color:#92400e}.taskstatus-todo{background:#f1f5f9;color:#334155}
@media(max-width:1200px){.flowbuilder-body{grid-template-columns:160px minmax(360px,1fr) 260px}.flowbuilder{height:calc(100vh - 195px)}}
@media(max-width:900px){.adminheader{padding:14px 14px 10px}.admintabs{padding:0 14px 10px}.admincontent{padding:14px}.layout{grid-template-columns:150px 280px 1fr}.brand{display:none}}
.auditfilters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end;margin:14px 0}.auditfilters .field{margin:0}.auditfilters .auditsearch{grid-column:span 2}.auditfilteractions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.auditmeta{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0;color:#64748b;font-size:12px}.pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;margin-top:14px}.pager button{min-width:38px}.pagerinfo{min-width:130px;text-align:center;font-size:13px;color:#475569}.auditobject{white-space:nowrap}.auditip{font-family:Consolas,monospace;font-size:11px}@media(max-width:760px){.auditfilters .auditsearch{grid-column:span 1}}

@media(max-width:760px){
 body{min-width:0}.topbar{min-height:58px;height:auto;padding:7px 9px;gap:6px;flex-wrap:wrap}.topbar .brand{display:none}.topbar .spacer{display:none}.topbar #connection{margin-right:auto}.topbar #userName{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar button,.topbar select{padding:7px 9px;font-size:12px}
 #app{grid-template-rows:auto minmax(0,1fr)}.layout,.layout.adminmode{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
 .nav{position:relative;z-index:8;display:flex;flex-wrap:wrap;align-items:stretch;align-content:flex-start;gap:4px;max-height:none;overflow:visible;padding:6px}.nav>button[data-view]{width:auto;flex:1 1 30%;min-width:0;margin:0;text-align:center;padding:9px 6px;white-space:nowrap}.nav-admin{position:static;width:auto;flex:1 1 46%;min-width:0;margin:0}.nav .nav-admin-top{width:100%;height:100%;margin:0;justify-content:center;white-space:nowrap}.nav .nav-admin-top .navlabel{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.adminnavtree{position:absolute;z-index:30;top:calc(100% + 4px);left:6px;right:6px;max-height:min(62vh,520px);overflow:auto;margin:0;padding:8px;border:1px solid #334155;border-radius:10px;background:#111827;box-shadow:0 18px 45px #0f172a66}
 .listpane{grid-column:1;grid-row:2;border-right:0}.chat{grid-column:1;grid-row:2;display:none}.layout.mobile-chat .listpane{display:none}.layout.mobile-chat .chat,.layout.adminmode .chat{grid-column:1;grid-row:2;display:grid}.layout.adminmode .listpane{display:none}
 #app.mobile-chat-mode{grid-template-rows:minmax(0,1fr)}#app.mobile-chat-mode .topbar,#app.mobile-chat-mode .nav{display:none}#app.mobile-chat-mode .layout{grid-template-rows:minmax(0,1fr)}#app.mobile-chat-mode .layout.mobile-chat .chat{grid-row:1}#app.mobile-chat-mode .chathead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:7px 9px;align-items:center}#app.mobile-chat-mode .chatidentity{min-width:0}#app.mobile-chat-mode .chathead .title{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}#app.mobile-chat-mode .chathead .details{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#app.mobile-chat-mode .chatactions{grid-column:1/-1;justify-content:stretch}#app.mobile-chat-mode .chatactions:empty{display:none}#app.mobile-chat-mode .chatactions>*{flex:1 1 auto;min-width:0}#app.mobile-chat-mode .mobileback{width:42px;height:42px;padding:0;font-size:20px}

 .taskworkspace .adminheader .row{align-items:flex-start}.taskworkspace .admincontent{padding:8px}.taskviewtoggle{width:100%;order:5}.taskviewtoggle button{flex:1}.taskboard{grid-auto-columns:minmax(84vw,84vw);max-height:calc(100dvh - 315px);min-height:390px;scroll-snap-type:x mandatory;scroll-padding-left:2px;gap:9px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.task-column{min-height:370px;scroll-snap-align:start}.task-column-body{padding:7px}.taskcard{padding:12px;margin-bottom:7px}.taskdraghandle{width:40px;height:40px;top:6px;right:6px}.taskcard-title{padding-right:46px}.taskboard-hint{line-height:1.4}.taskfilters .field{flex:1 1 100%;min-width:0!important}.taskfilters>button{flex:1 1 calc(50% - 6px)}
 .panehead{padding:10px}.requests{padding:5px}.request{padding:10px}.chathead{padding:9px;align-items:flex-start;flex-wrap:wrap}.chathead .details{overflow-wrap:anywhere}.mobileback{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto}.bubble{max-width:92%}.messages{padding:10px}.composer{gap:7px;padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));position:sticky;bottom:0;z-index:2;box-shadow:0 -3px 14px #0f172a12}.composerinputrow{grid-template-columns:minmax(0,1fr) auto}.composer textarea{min-height:44px;max-height:28vh;border-radius:18px}.composersend{min-width:104px;min-height:44px;border-radius:18px;padding:8px 12px}.composertoolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.composertoolbar button{width:100%;min-width:0;min-height:40px;padding:7px 5px;font-size:12px}.composertoolbar #closeBtn{grid-column:1/-1;margin:0}.mobileonly{display:inline-flex!important;align-items:center;justify-content:center}.composerpreview{padding:7px}.composerpreview-thumb{width:50px;height:50px;flex-basis:50px}.response-template-list{max-height:min(42vh,320px)}.response-template-head{grid-template-columns:minmax(0,1fr) 42px}.response-template-head button{padding:7px}.chatimage{max-height:48vh}.modal{width:96vw;max-height:92vh;padding:14px}.admincontent{padding:10px}.adminheader{padding:12px 10px 8px}.flowbuilder{height:auto;min-height:720px}.flowbuilder-body{grid-template-columns:1fr;grid-template-rows:auto minmax(440px,1fr) auto}.flowpalette,.flowinspector{max-height:280px;overflow:auto}.schedulerow{grid-template-columns:1fr 100px 20px 100px}.bookingcalendargrid{grid-template-columns:1fr}.auditfilters{grid-template-columns:1fr}.auditfilters .auditsearch{grid-column:span 1}
}
@media(min-width:761px){.mobileback{display:none!important}}

.taskcommentattachments{display:grid;gap:8px;margin-top:10px}.taskcommentimagewrap{border:1px solid #cbd5e1;border-radius:10px;padding:8px;background:#f8fafc}.taskcommentimage{display:block;max-width:min(460px,100%);max-height:360px;object-fit:contain;border-radius:8px;background:#fff;cursor:zoom-in}.taskcommentfile{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc}.taskcommentfileinfo{min-width:0;flex:1}.taskcommentfilename{font-weight:600;overflow-wrap:anywhere}.taskcommenttoolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.taskcommentpreview{display:grid;gap:7px;margin:8px 0}.taskcommentpreviewitem{display:flex;align-items:center;gap:8px;padding:7px;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc}.taskcommentpreviewthumb{width:46px;height:46px;object-fit:cover;border-radius:7px;border:1px solid #cbd5e1;background:#fff}.taskcommentpreviewicon{display:grid;place-items:center;font-size:24px}.taskcommentpreviewmeta{min-width:0;flex:1}.taskcommentpreviewname{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taskcommentremove{width:30px;height:30px;border:0;border-radius:999px;background:#e2e8f0;padding:0}.taskcommenthelp{font-size:12px;color:#64748b;margin-top:6px}.fileinput-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:.01!important}.taskcommentfilelabel{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;user-select:none}.taskcommentfilelabel:focus-within{outline:2px solid #93c5fd;outline-offset:2px}@media(max-width:760px){.taskcommenttoolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.taskcommenttoolbar button,.taskcommenttoolbar .taskcommentfilelabel{min-height:40px;padding:7px 5px;font-size:12px}.taskcommenttoolbar .taskcommentsubmit{grid-column:1/-1}.taskcommentimage{max-height:46vh}}

/* Kanban: constrain the board to the available workspace so each column body can scroll independently. */
.taskworkspace.taskboardmode .admincontent{display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden}
.taskworkspace.taskboardmode .admincontent>.statsection{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden}
.taskworkspace.taskboardmode .taskboard-shell{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:0;overflow:hidden}
.taskworkspace.taskboardmode .taskboard{grid-template-rows:minmax(0,1fr);height:100%;min-height:0;max-height:none}
.taskworkspace.taskboardmode .task-column{height:100%;min-height:0;max-height:100%}
.taskworkspace.taskboardmode .task-column-body{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.taskworkspace.taskboardmode .task-column-body::-webkit-scrollbar{width:9px}
.taskworkspace.taskboardmode .task-column-body::-webkit-scrollbar-thumb{background:#cbd5e1;border:2px solid transparent;border-radius:999px;background-clip:padding-box}
.taskworkspace.taskboardmode .task-column-body::-webkit-scrollbar-track{background:transparent}
@media(max-width:760px){
 /* mobile-task-page-scroll: filters may be taller than the viewport, so the tasks page itself must scroll to the board. */
 .taskworkspace.taskboardmode .admincontent{display:block;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;scrollbar-gutter:auto}
 .taskworkspace.taskboardmode .admincontent>.statsection{display:block;height:auto;min-height:0;overflow:visible}
 .taskworkspace.taskboardmode .taskboard-shell{display:grid;grid-template-rows:minmax(0,1fr) auto;height:clamp(480px,68dvh,680px);min-height:480px;overflow:hidden;margin-top:14px}
 .taskworkspace.taskboardmode .taskboard,.taskworkspace.taskboardmode .task-column{height:100%;min-height:0;max-height:none}
 .taskworkspace.taskboardmode .task-column-body{scrollbar-width:thin}
}

/* ---- extracted stylesheet split ---- */

.teamchatmode .chat{grid-column:2/4;display:grid;grid-template-rows:minmax(0,1fr)}
.team-chat-shell{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff}
.team-chat-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}
.team-chat-head-main{min-width:0;flex:1}
.team-chat-back{flex:0 0 auto}
.team-chat-title{display:flex;align-items:center;gap:7px;font-weight:700}
.team-chat-private-lock{font-size:12px;color:#64748b}
.team-chat-subtitle{font-size:12px;color:#64748b}
.team-chat-content{min-height:0;position:relative;display:grid;grid-template-columns:minmax(0,1fr) 270px}
.team-chat-messages{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:18px;background:#eef3f8}
.team-chat-message{max-width:76%;margin:8px 0;padding:9px 11px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 1px 2px #00000012}
.team-chat-message.mine{margin-left:auto;background:#dbeafe}
.team-chat-author{font-weight:600;font-size:12px;margin-bottom:4px}
.team-chat-body{white-space:pre-wrap;overflow-wrap:anywhere}
.team-chat-meta{font-size:10px;color:#64748b;text-align:right;margin-top:5px}
.team-chat-file{display:flex;align-items:center;gap:8px;margin-top:7px;padding:8px;border:1px dashed #94a3b8;border-radius:8px;background:#ffffffa8}
.team-chat-file button{border:0;background:transparent;color:#1d4ed8;padding:0;text-align:left;overflow-wrap:anywhere;cursor:pointer}
.team-chat-image{display:block;max-width:min(520px,100%);max-height:420px;object-fit:contain;margin-top:8px;border-radius:9px;border:1px solid #cbd5e1;background:#f8fafc;cursor:zoom-in}
.team-chat-image-loading{display:grid;place-items:center;min-height:120px;margin-top:8px;border:1px solid #cbd5e1;border-radius:9px;background:#f8fafc;color:#64748b}
.team-chat-composer{border-top:1px solid var(--border);padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.team-chat-composer textarea{width:100%;min-height:44px;max-height:120px;resize:vertical;border:1px solid #cbd5e1;border-radius:8px;padding:9px}
.team-chat-actions{display:flex;align-items:end;gap:7px;flex-wrap:wrap}
.team-chat-file-label{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#e8edf5;padding:9px 12px;cursor:pointer}
.team-chat-file-label input{display:none}
.team-chat-picked{grid-column:1/3;font-size:12px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-chat-load{display:block;margin:0 auto 14px}
.team-chat-empty{display:grid;place-items:center;height:100%;color:#64748b;text-align:center;padding:24px}
.team-chat-settings-list{display:grid;gap:7px;margin-top:14px}
.team-chat-access-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;border:1px solid var(--border);border-radius:9px}
.team-chat-access-row.inactive{opacity:.6}
.team-chat-access-name{display:block;font-weight:600}
.team-chat-access-meta{display:block;font-size:12px;color:#64748b}
.team-chat-switch{display:flex;align-items:center;gap:8px}
.team-chat-warning{padding:10px 12px;border-radius:9px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;margin:10px 0}
.team-chat-nav-admin{opacity:.9}
.team-chat-presence{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-left:1px solid var(--border);background:#fff}
.team-chat-presence-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid var(--border);background:#fff}
.team-chat-presence-title{min-width:0;flex:1;font-weight:700}
.team-chat-presence-count{font-size:11px;color:#64748b;margin-top:2px}
.team-chat-presence-list{display:grid;gap:3px;padding:8px}
.team-chat-channel,.team-chat-person{width:100%;border:0;background:transparent;color:inherit;text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border-radius:9px;cursor:pointer}
.team-chat-channel:hover,.team-chat-person:hover{background:#f1f5f9}
.team-chat-channel.active,.team-chat-person.active{background:#dbeafe;color:#1e3a8a}
.team-chat-person:disabled{cursor:default;opacity:.82}
.team-chat-person:disabled:hover{background:transparent}
.team-chat-person-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 3px #e2e8f0}
.team-chat-person-dot.online{background:#10b981;box-shadow:0 0 0 3px #d1fae5}
.team-chat-person-dot.break{background:#f59e0b;box-shadow:0 0 0 3px #fef3c7}
.team-chat-person-dot.offline{background:#94a3b8}
.team-chat-person-name{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-chat-person-meta{font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-chat-person-badge{display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:#2563eb;color:#fff;font-size:11px;font-weight:700}
.team-chat-presence-empty{padding:20px 12px;color:#64748b;text-align:center}
.team-chat-presence-toggle{white-space:nowrap}
.team-chat-presence-close{display:none}
.team-chat-divider{height:1px;background:var(--border);margin:5px 4px}
@media(max-width:850px){
 #app.team-chat-mode{grid-template-rows:minmax(0,1fr)}
 #app.team-chat-mode .topbar{display:none}
 #app.team-chat-mode .layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-height:0}
 .layout.teamchatmode .nav,.layout.teamchatmode .listpane{display:none}
 .layout.teamchatmode .chat{display:grid;grid-column:1/-1;grid-row:1;min-width:0;min-height:0;height:100%}
 .team-chat-shell{height:100%;min-height:0}
 .team-chat-message{max-width:92%}.team-chat-head{padding-left:12px;padding-top:calc(12px + env(safe-area-inset-top));gap:7px}.team-chat-subtitle{display:none}
 .team-chat-composer{grid-template-columns:minmax(0,1fr);padding-bottom:calc(10px + env(safe-area-inset-bottom))}.team-chat-actions,.team-chat-picked{grid-column:1}.team-chat-actions .primary{flex:1}
 .team-chat-content{grid-template-columns:minmax(0,1fr);overflow:hidden}
 .team-chat-presence{position:absolute;inset:0 0 0 auto;width:min(330px,90%);z-index:5;border-left:1px solid var(--border);box-shadow:-12px 0 30px #0f172a30;transform:translateX(105%);transition:transform .18s ease;background:#fff}
 .team-chat-presence.open{transform:translateX(0)}.team-chat-presence-close{display:inline-flex}.team-chat-presence-toggle{padding-left:9px;padding-right:9px}
}
@media(max-width:520px){.team-chat-settings-text{display:none}.team-chat-head-main{min-width:36px}.team-chat-presence-toggle{font-size:12px}.team-chat-title{font-size:14px}}
