.portal-root{background:var(--bg);min-height:100dvh;color:var(--fg);font-family:var(--font-sans)}.portal-shell{grid-template-rows:56px 1fr;grid-template-columns:248px 1fr;min-height:100dvh;display:grid}.portal-rail{border-right:1px solid var(--border);background:var(--bg-panel);flex-direction:column;grid-row:1/3;min-height:0;display:flex}.portal-topbar{border-bottom:1px solid var(--border);background:rgba(var(--primary-rgb), 0);background-color:var(--bg-panel);grid-column:2;justify-content:space-between;align-items:center;padding:0 24px;display:flex}.portal-main{grid-column:2;min-width:0;padding:32px;overflow:auto}@media (max-width:880px){.portal-shell{grid-template-rows:56px auto 1fr;grid-template-columns:1fr}.portal-rail{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;grid-area:2/1;align-items:center;overflow-x:auto}.portal-nav{flex-flow:row;gap:4px;padding:8px 10px}.portal-nav-group{align-items:center;gap:4px;padding:0 4px;display:flex}.portal-nav-group-label{display:none}.portal-nav-item{white-space:nowrap}.portal-nav-spacer,.portal-rail-foot{display:none}.portal-topbar{grid-column:1}.portal-main{grid-column:1;padding:20px}}.portal-brand{border-bottom:1px solid var(--border);align-items:center;height:56px;padding:0 18px;display:flex}.portal-count{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.02em;white-space:nowrap;font-size:11px}.portal-nav-group-label{color:var(--fg-3);letter-spacing:.01em;padding:16px 12px 6px;font-size:11px;font-weight:600}.portal-nav{flex-direction:column;gap:2px;padding:12px 10px;display:flex}.portal-nav-group{padding:14px 8px 6px}.portal-nav-item{border-radius:var(--radius);color:var(--fg-2);align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex;position:relative}.portal-nav-item:hover,.portal-nav-item[data-active=true]{background:var(--bg-hover);color:var(--fg)}.portal-nav-item[data-active=true]:before{content:"";background:var(--primary);width:3px;box-shadow:0 0 10px 0 rgba(var(--primary-rgb), .7);border-radius:0 3px 3px 0;position:absolute;top:7px;bottom:7px;left:0}.portal-nav-item .ico{color:currentColor;opacity:.8;flex:none;width:16px;height:16px}.portal-nav-item[data-active=true] .ico{color:var(--primary-2);opacity:1}.portal-nav-spacer{flex:1}.portal-org{position:relative}.portal-org-trigger{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--fg);cursor:pointer;text-align:left;font:inherit;align-items:center;gap:10px;padding:10px 12px;transition:border-color .12s,background .12s;display:flex}.portal-org-trigger:hover{border-color:var(--border-strong)}.portal-org-trigger .name{font-size:13.5px;font-weight:600;line-height:1.2}.portal-org-trigger .tier{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);font-size:9.5px}.portal-org-trigger .chev{color:var(--fg-3);margin-left:auto}.portal-org-menu{z-index:40;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-md);max-height:320px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 16px 40px -16px #000000b3}.portal-org-option{border-radius:var(--radius);width:100%;color:var(--fg-2);cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:9px 10px;text-decoration:none;display:flex}.portal-org-option:hover{background:var(--bg-hover);color:var(--fg)}.portal-org-option[data-current=true]{color:var(--fg)}.portal-org-option[data-current=true] .check{color:var(--primary-2);margin-left:auto}.portal-org-avatar{border-radius:var(--radius-sm);background:var(--bg-hover);border:1px solid var(--border);width:26px;height:26px;color:var(--fg-2);flex:none;place-items:center;font-size:11px;font-weight:700;display:grid}.portal-page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.portal-h1{letter-spacing:-.02em;margin:0;font-size:26px;font-weight:700;line-height:1.1}.portal-sub{color:var(--fg-2);margin-top:6px;font-size:13.5px}.portal-grid{gap:16px;display:grid}.portal-grid.cols-2{grid-template-columns:repeat(2,1fr)}.portal-grid.cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width:880px){.portal-grid.cols-2,.portal-grid.cols-3{grid-template-columns:1fr}}.portal-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px}.portal-panel-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.portal-panel-title{letter-spacing:-.01em;font-size:14px;font-weight:650}.portal-metric{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--fg);font-size:30px;font-weight:600;line-height:1}.portal-metric-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);margin-top:10px;font-size:10px}.portal-list{flex-direction:column;display:flex}.portal-row{border-top:1px solid var(--hairline);color:inherit;flex-wrap:wrap;align-items:center;gap:16px;padding:14px 4px;text-decoration:none;display:flex}.portal-row:first-child{border-top:none}.portal-row:hover .portal-row-name{color:var(--primary-2)}.portal-row>:first-child{min-width:0}.portal-row-name{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;transition:color .12s;overflow:hidden}.portal-row-meta{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.02em;margin-top:3px;font-size:11px}.portal-row-spacer{flex:1;min-width:0}.portal-pill{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius);border:1px solid var(--border-strong);color:var(--fg-2);background:var(--bg-raised);white-space:nowrap;align-items:center;gap:6px;padding:4px 9px;font-size:10.5px;font-weight:500;display:inline-flex}.portal-pill .dot{background:var(--fg-3);border-radius:50%;width:6px;height:6px}.portal-pill[data-tone=live]{color:var(--primary-2);border-color:rgba(var(--primary-rgb), .3);background:var(--primary-soft)}.portal-pill[data-tone=live] .dot{background:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.portal-pill[data-tone=done]{color:var(--success);border-color:rgba(var(--success-rgb), .3);background:var(--success-soft)}.portal-pill[data-tone=done] .dot{background:var(--success)}.portal-pill[data-tone=warn]{color:var(--warning);border-color:rgba(var(--warning-rgb), .32);background:var(--warning-soft)}.portal-pill[data-tone=warn] .dot{background:var(--warning)}.portal-pill[data-tone=alert]{color:var(--error);border-color:rgba(var(--error-rgb), .34);background:var(--error-soft)}.portal-pill[data-tone=alert] .dot{background:var(--error)}.portal-spine{align-items:center;gap:0;padding:4px 0;display:flex;overflow-x:auto}.portal-spine-node{flex:none;align-items:center;display:flex}.portal-spine-dot{border:2px solid var(--border-strong);background:var(--bg-panel);border-radius:50%;flex:none;width:11px;height:11px}.portal-spine-node[data-state=done] .portal-spine-dot{background:var(--primary);border-color:var(--primary)}.portal-spine-node[data-state=current] .portal-spine-dot{background:var(--primary);border-color:var(--primary-2);box-shadow:0 0 0 4px var(--primary-soft)}.portal-spine-node[data-state=exception] .portal-spine-dot{background:var(--error);border-color:var(--error);box-shadow:0 0 0 4px rgba(var(--error-rgb), .18)}.portal-spine-link{background:var(--border);flex:none;width:28px;height:2px}.portal-spine-node[data-state=done]+.portal-spine-link{background:var(--primary)}.portal-spine-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);white-space:nowrap;margin-top:8px;font-size:9.5px}.portal-spine-node[data-state=current] .portal-spine-label,.portal-spine-node[data-state=done] .portal-spine-label{color:var(--fg-2)}.portal-spine-cell{flex-direction:column;flex:none;align-items:center;display:flex}.portal-btn{border-radius:var(--radius-md);font:inherit;cursor:pointer;border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--fg);justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:13.5px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,transform 80ms;display:inline-flex}.portal-btn:hover{background:var(--bg-hover)}.portal-btn:active{transform:translateY(1px)}.portal-btn--primary{background:var(--primary);border-color:var(--primary);color:var(--fg-on-primary)}.portal-btn--primary:hover{background:var(--primary-2)}.portal-btn:disabled{opacity:.55;cursor:not-allowed}.portal-btn--sm{padding:7px 12px;font-size:12.5px}.portal-field{flex-direction:column;gap:7px;display:flex}.portal-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);font-size:10px}.portal-input{border-radius:var(--radius-md);background:var(--bg-deep);border:1px solid var(--border);width:100%;color:var(--fg);font:inherit;padding:11px 13px;font-size:14px;transition:border-color .12s,box-shadow .12s}.portal-input::placeholder{color:var(--fg-4)}.portal-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.portal-empty{text-align:center;color:var(--fg-3);padding:48px 24px}.portal-empty-label{color:var(--fg-2);margin-bottom:8px;font-size:13px;font-weight:600}.portal-auth{place-items:center;min-height:100dvh;padding:24px;display:grid;position:relative}.portal-auth-card{z-index:1;width:100%;max-width:420px;position:relative}.portal-auth .sct-tech-grid{z-index:0}.portal-divider{background:var(--border);height:1px;margin:20px 0}.portal-note{color:var(--fg-3);font-size:12.5px;line-height:1.6}.portal-error{color:var(--error);font-size:13px}.portal-ok{color:var(--success);font-size:13px}.portal-page-head-action{flex:none;align-items:center;gap:10px;display:flex}.portal-thread{flex-direction:column;gap:18px;padding:4px 0 8px;display:flex}.portal-msg{flex-direction:column;gap:6px;max-width:76%;display:flex}.portal-msg[data-from=client]{align-self:flex-end;align-items:flex-end}.portal-msg[data-from=system]{align-self:center;align-items:center;max-width:100%}.portal-msg-meta{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);align-items:center;gap:10px;font-size:10px;display:flex}.portal-msg-who{color:var(--fg-2)}.portal-msg-time{color:var(--fg-4)}.portal-msg-body{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--fg);white-space:pre-wrap;word-break:break-word;padding:11px 14px;font-size:14px;line-height:1.55}.portal-msg[data-from=client] .portal-msg-body{background:var(--primary-soft);border-color:rgba(var(--primary-rgb), .28)}.portal-msg[data-from=system] .portal-msg-body{color:var(--fg-2);background:0 0;border-style:dashed;font-size:13px}.portal-inline-action{align-items:center;gap:10px;display:inline-flex}.portal-inline-action .portal-btn{padding:7px 12px;font-size:12.5px}.portal-select{border-radius:var(--radius-md);background:var(--bg-deep);border:1px solid var(--border);color:var(--fg);font:inherit;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B7280' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat;padding:11px 36px 11px 13px;font-size:14px;line-height:1.2;transition:border-color .12s,box-shadow .12s}.portal-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.portal-select:disabled{opacity:.55;cursor:not-allowed}.portal-input--full{width:100%}.portal-ctl-sm{width:140px}.portal-ctl-md{width:220px}.portal-ctl-date{width:170px}.portal-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.portal-input[type=date],.portal-input[type=datetime-local],.portal-input[type=time]{width:170px}.portal-team-invite{align-items:center;gap:10px;display:flex}.portal-team-invite .portal-input{flex:1}.portal-rail-foot{border-top:1px solid var(--border);padding:12px 16px}.portal-rail-foot .label{color:var(--fg-3);margin-bottom:4px;font-size:11px;font-weight:600}.portal-rail-foot .val{color:var(--fg-2);word-break:break-all;font-size:12px}.portal-provision-grid{grid-template-columns:2fr 1.4fr 1fr;gap:12px;display:grid}@media (max-width:720px){.portal-provision-grid{grid-template-columns:1fr}}.portal-slot-days{flex-direction:column;gap:18px;display:flex}.portal-slot-day-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-bottom:10px;font-size:10.5px}.portal-slot-grid{flex-wrap:wrap;gap:8px;display:flex}.portal-slot{font-family:var(--font-mono);border-radius:var(--radius-md);background:var(--bg-raised);border:1px solid var(--border);color:var(--fg);cursor:pointer;padding:8px 14px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s,color .12s}.portal-slot:hover{border-color:var(--primary);color:var(--primary-2);background:var(--primary-soft)}.portal-slot:disabled{opacity:.5;cursor:not-allowed}.portal-consent{border-radius:var(--radius-md);background:var(--bg-raised);border:1px solid var(--border);color:var(--fg-2);cursor:pointer;align-items:flex-start;gap:12px;padding:14px;font-size:13.5px;line-height:1.55;display:flex}.portal-consent input[type=checkbox]{accent-color:var(--primary);cursor:pointer;flex:none;width:16px;height:16px;margin-top:3px}.portal-composer{flex-direction:column;gap:12px;display:flex}.portal-composer textarea.portal-input{resize:vertical;min-height:76px;line-height:1.55}.portal-composer-actions{justify-content:flex-end;gap:10px;display:flex}.portal-btn--danger{color:var(--error);border-color:rgba(var(--error-rgb), .34);background:var(--error-soft)}.portal-btn--danger:hover{background:var(--error-soft);border-color:var(--error)}.portal-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.portal-lineitems{flex-direction:column;gap:6px;display:flex}.portal-lineitems-grid{grid-template-columns:3fr .8fr .8fr 1fr 1fr auto;align-items:center;gap:6px;display:grid}.portal-lineitems-grid .portal-input{padding:7px 9px;font-size:13px}.portal-lineitems-head{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);font-size:9.5px}@media (max-width:880px){.portal-lineitems-grid{grid-template-columns:1fr 1fr}.portal-lineitems-head{display:none}}.portal-modal-backdrop{z-index:50;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.portal-modal{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:460px;padding:22px;box-shadow:0 24px 60px #0006}.portal-modal-title{margin-bottom:6px;font-size:16px;font-weight:700}.portal-modal-sub{color:var(--fg-3);margin-bottom:16px;font-size:13px;line-height:1.5}.portal-modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.portal-crumb{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.02em;align-items:center;gap:7px;margin-bottom:12px;font-size:11px;display:flex}.portal-crumb a{color:var(--fg-3);text-decoration:none}.portal-crumb a:hover{color:var(--primary-2)}.portal-crumb .sep{color:var(--fg-4)}.portal-client-head{z-index:20;background:linear-gradient(180deg, var(--bg) 72%, #0000);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);margin:-32px -32px 0;padding:24px 32px 0;position:sticky;top:-32px}@media (max-width:880px){.portal-client-head{margin:-20px -20px 0;padding:16px 20px 0;top:-20px}}.portal-ch-top{align-items:flex-start;gap:16px;display:flex}.portal-ch-mono{border-radius:var(--radius-lg);background:linear-gradient(145deg, var(--bg-raised), var(--bg-hover));border:1px solid var(--border-strong);letter-spacing:-.02em;width:52px;height:52px;color:var(--fg);flex:none;place-items:center;font-size:20px;font-weight:800;display:grid}.portal-ch-id{flex:1;min-width:0}.portal-ch-name{letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:10px;font-size:24px;font-weight:700;line-height:1.05;display:flex}.portal-ch-slug{font-family:var(--font-mono);color:var(--fg-3);margin-top:5px;font-size:12px}.portal-ch-actions{flex-wrap:wrap;flex:none;gap:8px;display:flex}.portal-kpis{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);margin-top:16px;display:flex;overflow:hidden}.portal-kpi{border-left:1px solid var(--hairline);flex:1;min-width:0;padding:12px 16px}.portal-kpi:first-child{border-left:none}.portal-kpi .v{font-family:var(--font-mono);letter-spacing:-.02em;font-size:21px;font-weight:600;line-height:1}.portal-kpi .v.accent{color:var(--warning)}.portal-kpi .v.signal{color:var(--primary-2)}.portal-kpi .l{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-top:8px;font-size:9.5px}@media (max-width:880px){.portal-kpis{flex-wrap:wrap}.portal-kpi{flex:40%}}.portal-tabs{border-bottom:1px solid var(--border);gap:2px;margin-top:14px;padding-bottom:0;display:flex;overflow-x:auto}.portal-tab{color:var(--fg-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 14px 12px;font-size:13px;font-weight:600;transition:color .12s;display:flex}.portal-tab:hover{color:var(--fg-2)}.portal-tab[data-active=true]{color:var(--fg);border-bottom-color:var(--primary)}.portal-tab .cnt{font-family:var(--font-mono);color:var(--fg-4);background:var(--bg-raised);border:1px solid var(--border);border-radius:20px;padding:0 6px;font-size:10px}.portal-tab[data-active=true] .cnt{color:var(--primary-2);border-color:rgba(var(--primary-rgb), .3)}.portal-section{padding-top:22px}.portal-pane-grid{grid-template-columns:repeat(12,1fr);gap:16px;display:grid}.portal-pane-grid>.span-8{grid-column:span 8}.portal-pane-grid>.span-6{grid-column:span 6}.portal-pane-grid>.span-4{grid-column:span 4}.portal-pane-grid>.span-12{grid-column:span 12}@media (max-width:880px){.portal-pane-grid>[class*=span-]{grid-column:span 12}}.portal-scrim{z-index:60;opacity:0;pointer-events:none;background:#00000080;transition:opacity .2s;position:fixed;inset:0}.portal-scrim[data-open=true]{opacity:1;pointer-events:auto}.portal-drawer{background:var(--bg-panel);border-left:1px solid var(--border-strong);z-index:61;flex-direction:column;width:440px;max-width:92vw;transition:transform .24s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:0 24px 60px -16px #000000b3}.portal-drawer[data-open=true]{transform:translate(0)}.portal-drawer-head{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.portal-drawer-title{font-size:16px;font-weight:700}.portal-drawer-body{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow:auto}.portal-drawer-foot{border-top:1px solid var(--hairline);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.portal-drawer-x{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-raised);width:30px;height:30px;color:var(--fg-2);cursor:pointer;place-items:center;display:grid}.portal-drawer-x:hover{background:var(--bg-hover);color:var(--fg)}.portal-inbox{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);grid-template-columns:300px 1fr;gap:0;height:600px;display:grid;overflow:hidden}@media (max-width:880px){.portal-inbox{grid-template-columns:1fr;height:auto}}.portal-tl{border-right:1px solid var(--border);background:var(--bg-deep);min-height:0;overflow:auto}.portal-tl-head{border-bottom:1px solid var(--hairline);background:var(--bg-deep);justify-content:space-between;align-items:center;padding:12px 14px;display:flex;position:sticky;top:0}.portal-tl-head .t{font-size:12px;font-weight:650}.portal-tl-item{text-align:left;border:none;border-bottom:1px solid var(--hairline);cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;flex-direction:column;gap:4px;padding:12px 14px;display:flex;position:relative}.portal-tl-item:hover,.portal-tl-item[data-active=true]{background:var(--bg-hover)}.portal-tl-item[data-active=true]:before{content:"";background:var(--primary);width:2px;position:absolute;top:0;bottom:0;left:0}.portal-tl-subj{align-items:center;gap:7px;font-size:13px;font-weight:600;display:flex}.portal-tl-unread{background:var(--primary);width:7px;height:7px;box-shadow:0 0 0 3px var(--primary-soft);border-radius:50%;flex:none}.portal-tl-prev{color:var(--fg-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.portal-tl-when{font-family:var(--font-mono);color:var(--fg-4);font-size:10px}.portal-conv{flex-direction:column;min-width:0;min-height:0;display:flex}.portal-conv-head{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:12px;padding:13px 18px;display:flex}.portal-conv-title{font-size:14px;font-weight:650}.portal-conv-sub{font-family:var(--font-mono);color:var(--fg-3);margin-top:3px;font-size:10.5px}.portal-conv-scroll{flex:1;padding:20px 18px;overflow:auto}.portal-conv-empty{height:100%;color:var(--fg-3);text-align:center;place-items:center;padding:24px;display:grid}.portal-msg[data-side=own]{align-self:flex-end;align-items:flex-end}.portal-msg[data-side=other]{align-self:flex-start;align-items:flex-start}.portal-msg[data-side=system]{align-self:center;align-items:center;max-width:90%}.portal-msg[data-side=own] .portal-msg-body{background:var(--primary-soft);border-color:rgba(var(--primary-rgb), .28)}.portal-msg[data-side=system] .portal-msg-body{color:var(--fg-2);background:0 0;border-style:dashed;font-size:13px}
