.hub{--hub-bg:#f4f6f4;--hub-surface:#ffffff;--hub-surface-2:#f8faf8;--hub-line:#e3e9e4;--hub-line-strong:#cfd8d1;--hub-ink:#101a13;--hub-body:#3f4d44;--hub-muted:#6f7d74;--hub-brand:var(--brand,#1c7a34);--hub-brand-dark:var(--brand-dark,#115222);--hub-brand-soft:#e6f3e9;--hub-nav:#0b2a15;--hub-nav-ink:#cfe0d4;--hub-danger:#b42318;--hub-danger-soft:#fee4e2;--hub-warn:#b54708;--hub-warn-soft:#fef0c7;--hub-info:#175cd3;--hub-info-soft:#e0ecff;--hub-ok:#1c7a34;--hub-ok-soft:#dff5e5;--hub-hot:#d92d20;--hub-hot-soft:#ffe4e0;--hub-radius:12px;--hub-radius-sm:8px;--hub-shadow:0 1px 2px rgba(10,43,20,0.06),0 2px 10px rgba(10,43,20,0.05);--hub-sidebar-w:236px;--hub-topbar-h:56px;--hub-tap:44px;--hub-font-head:var(--font-head,system-ui,sans-serif);--hub-font-body:var(--font-body,system-ui,sans-serif);font-family:var(--hub-font-body);color:var(--hub-ink);background:var(--hub-bg);min-height:100vh;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}.hub *,.hub :after,.hub :before{box-sizing:border-box}.hub a{color:inherit;text-decoration:none}.hub h1,.hub h2,.hub h3,.hub h4{font-family:var(--hub-font-head);margin:0;line-height:1.2;color:var(--hub-ink)}.hub h1{font-size:1.45rem;font-weight:800}.hub h2{font-size:1.1rem;font-weight:700}.hub h3{font-size:.95rem;font-weight:700}.hub p{margin:0}.hub input,.hub select,.hub textarea{font:inherit;color:inherit}.hub :where(button){font:inherit;color:inherit}.hub-muted{color:var(--hub-muted)}.hub-small{font-size:.85rem}.hub-xs{font-size:.78rem}.hub-strong{font-weight:700}.hub-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.hub-link{color:var(--hub-brand);font-weight:600}.hub-link:hover{text-decoration:underline}.hub-danger-text{color:var(--hub-danger)}.hub-nowrap,.hub-truncate{white-space:nowrap}.hub-truncate{overflow:hidden;text-overflow:ellipsis}.hub-shell{display:flex;min-height:100vh}.hub-sidebar{width:var(--hub-sidebar-w);flex:none;background:var(--hub-nav);color:var(--hub-nav-ink);position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;padding:14px 12px 18px}.hub-sidebar-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 16px;color:#fff;font-family:var(--hub-font-head);font-weight:800;font-size:1rem}.hub-sidebar-brand img{height:30px;background:#fff;padding:4px 6px;border-radius:7px}.hub-sidebar-brand span small{display:block;font-weight:600;font-size:.72rem;color:var(--hub-nav-ink);letter-spacing:.08em;text-transform:uppercase}.hub-nav{display:flex;flex-direction:column;gap:2px}.hub-nav-section{margin:12px 8px 4px;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7f9a88}.hub-nav .hub-nav-item,.hub-nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--hub-nav-ink);font-family:var(--hub-font-head);font-weight:600;font-size:.92rem;min-height:40px}.hub-nav a:hover{background:rgba(255,255,255,.07);color:#fff}.hub-nav a.active{background:rgba(52,199,89,.18);color:#fff}.hub-nav .hub-nav-item.disabled{color:#587a64;cursor:default}.hub-nav .hub-nav-item.disabled small{margin-left:auto;font-size:.66rem;font-weight:700;border:1px solid #3c5a48;border-radius:999px;padding:1px 7px}.hub-nav svg{width:18px;height:18px;flex:none}.hub-nav-badge{margin-left:auto;background:var(--leaf-bright,#34c759);color:#06200f;font-size:.7rem;font-weight:800;border-radius:999px;padding:1px 7px}.hub-sidebar-foot{margin-top:auto;padding:12px 8px 0;border-top:1px solid rgba(255,255,255,.1)}.hub-user{display:flex;gap:10px}.hub-avatar,.hub-user{align-items:center;color:#fff}.hub-avatar{width:34px;height:34px;border-radius:50%;background:#2e6b42;display:inline-flex;justify-content:center;font-weight:800;font-size:.8rem;flex:none;font-family:var(--hub-font-head)}.hub-avatar.sm{width:26px;height:26px;font-size:.68rem}.hub-user-meta{min-width:0}.hub-user-meta strong{display:block;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-user-meta span{font-size:.74rem;color:var(--hub-nav-ink)}.hub-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.hub-topbar{height:var(--hub-topbar-h);background:var(--hub-surface);border-bottom:1px solid var(--hub-line);display:flex;align-items:center;gap:12px;padding:0 20px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.hub-topbar-brand{display:none;align-items:center;gap:8px;font-family:var(--hub-font-head);font-weight:800}.hub-topbar-brand img{height:26px}.hub-search{flex:1 1;max-width:520px;position:relative}.hub-search input{width:100%;height:38px;padding:0 12px 0 36px;border:1.5px solid var(--hub-line);border-radius:10px;background:var(--hub-surface-2)}.hub-search input:focus{outline:none;border-color:var(--hub-brand);background:#fff}.hub-search svg{position:absolute;left:11px;top:10px;width:18px;height:18px;color:var(--hub-muted)}.hub-topbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.hub-content{padding:22px 24px 90px;max-width:1400px;width:100%}.hub-content.narrow{max-width:860px}.hub-bottomnav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--hub-surface);border-top:1px solid var(--hub-line);padding:6px max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.hub-bottomnav a{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;font-size:.68rem;font-weight:700;color:var(--hub-muted);font-family:var(--hub-font-head);min-height:var(--hub-tap);border-radius:10px}.hub-bottomnav a.active{color:var(--hub-brand)}.hub-bottomnav a svg{width:22px;height:22px}.hub-bottomnav a.primary span{background:var(--hub-brand);color:#fff;border-radius:999px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;margin-top:-18px;box-shadow:0 6px 16px rgba(28,122,52,.35)}.hub-bottomnav a.primary span svg{width:24px;height:24px}.hub-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}.hub-page-head .hub-sub{color:var(--hub-muted);margin-top:4px;font-size:.92rem}.hub-page-actions{gap:8px}.hub-breadcrumb,.hub-page-actions{display:flex;flex-wrap:wrap;align-items:center}.hub-breadcrumb{font-size:.85rem;color:var(--hub-muted);margin-bottom:8px;gap:6px}.hub-breadcrumb a:hover{color:var(--hub-brand)}.hub-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 15px;border-radius:10px;border:1.5px solid var(--hub-line-strong);background:var(--hub-surface);color:var(--hub-ink);font-family:var(--hub-font-head);font-weight:700;font-size:.9rem;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.hub-btn:hover{background:var(--hub-surface-2);border-color:var(--hub-muted)}.hub-btn:disabled{opacity:.55;cursor:not-allowed}.hub-btn.primary{background:var(--hub-brand);border-color:var(--hub-brand);color:#fff}.hub-btn.primary:hover{background:var(--hub-brand-dark);border-color:var(--hub-brand-dark)}.hub-btn.danger{color:var(--hub-danger);border-color:#f2b8b2}.hub-btn.danger:hover{background:var(--hub-danger-soft)}.hub-btn.ghost{border-color:transparent;background:transparent}.hub-btn.ghost:hover{background:var(--hub-surface-2)}.hub-btn.sm{min-height:32px;padding:4px 11px;font-size:.82rem;border-radius:8px}.hub-btn.block{width:100%}.hub-btn svg{width:17px;height:17px}.hub-btn.hot{background:var(--hub-hot-soft);border-color:#f9b8b0;color:var(--hub-hot)}.hub-btn.hot.on{background:var(--hub-hot);border-color:var(--hub-hot);color:#fff}.hub-icon-btn{width:40px;height:40px;padding:0;border-radius:10px}.hub-card{background:var(--hub-surface);border:1px solid var(--hub-line);border-radius:var(--hub-radius);box-shadow:var(--hub-shadow)}.hub-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--hub-line)}.hub-card-head h2,.hub-card-head h3{display:flex;align-items:center;gap:8px}.hub-card-body{padding:16px}.hub-card-body.tight{padding:8px 0}.hub-card+.hub-card{margin-top:16px}.hub-grid{display:grid;grid-gap:16px;gap:16px}.hub-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.hub-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.hub-grid.main-side{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start}.hub-stack{display:flex;flex-direction:column;gap:12px}.hub-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hub-row.between{justify-content:space-between}.hub-row.end{justify-content:flex-end}.hub-count{font-size:.8rem;font-weight:700;color:var(--hub-muted);background:var(--hub-surface-2);border:1px solid var(--hub-line);border-radius:999px;padding:1px 9px}.hub-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px}.hub-stat{background:var(--hub-surface);border:1px solid var(--hub-line);border-radius:var(--hub-radius);padding:12px 14px;box-shadow:var(--hub-shadow);display:block}.hub-stat:hover{border-color:var(--hub-brand)}.hub-stat .n{font-family:var(--hub-font-head);font-size:1.6rem;font-weight:800;line-height:1.1}.hub-stat .l{font-size:.8rem;color:var(--hub-muted);font-weight:600;margin-top:2px}.hub-stat.warn .n{color:var(--hub-warn)}.hub-stat.danger .n{color:var(--hub-danger)}.hub-stat.hot .n{color:var(--hub-hot)}.hub-stat.ok .n{color:var(--hub-ok)}.hub-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:700;font-family:var(--hub-font-head);background:var(--hub-surface-2);color:var(--hub-body);border:1px solid var(--hub-line);white-space:nowrap}.hub-badge.lead{background:#e0ecff;color:#175cd3;border-color:#c7dbff}.hub-badge.appointment_set{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}.hub-badge.proposal_sent{background:#fef0c7;color:#93370d;border-color:#fde68a}.hub-badge.follow_up{background:#ffe8d1;color:#b54708;border-color:#fed7aa}.hub-badge.proposal_signed{background:#dff5e5;color:#0f5a25;border-color:#bbe8c8}.hub-badge.production{background:#d1fae5;color:#065f46;border-color:#a7f3d0}.hub-badge.invoiced{background:#e6f0ff;color:#1e40af;border-color:#c7d7fe}.hub-badge.paid_in_full{background:var(--hub-brand);color:#fff;border-color:var(--hub-brand)}.hub-badge.lost{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}.hub-badge.hot{background:var(--hub-hot-soft);color:var(--hub-hot);border-color:#f9b8b0}.hub-badge.danger{background:var(--hub-danger-soft);color:var(--hub-danger);border-color:#f9b8b0}.hub-badge.warn{background:var(--hub-warn-soft);color:var(--hub-warn);border-color:#fde68a}.hub-badge.ok{background:var(--hub-ok-soft);color:var(--hub-ok);border-color:#bbe8c8}.hub-badge.info{background:var(--hub-info-soft);color:var(--hub-info);border-color:#c7dbff}.hub-badge.muted{color:var(--hub-muted)}.hub-badge.priority-urgent{background:var(--hub-danger-soft);color:var(--hub-danger)}.hub-badge.priority-high{background:var(--hub-warn-soft);color:var(--hub-warn)}.hub-dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}.hub-form{display:grid;grid-gap:14px;gap:14px}.hub-form-row{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.hub-form-row.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.hub-form-row.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.hub-field{display:flex;flex-direction:column;gap:5px;min-width:0}.hub-field label,.hub-label{font-size:.8rem;font-weight:700;color:var(--hub-body);font-family:var(--hub-font-head)}.hub-field label small{font-weight:500;color:var(--hub-muted)}.hub-input,.hub-select,.hub-textarea{width:100%;min-height:var(--hub-tap);padding:9px 12px;border:1.5px solid var(--hub-line-strong);border-radius:10px;background:#fff;font-size:16px}.hub-input:focus,.hub-select:focus,.hub-textarea:focus{outline:none;border-color:var(--hub-brand);box-shadow:0 0 0 3px rgba(28,122,52,.12)}.hub-textarea{min-height:88px;resize:vertical}.hub-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236f7d74' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}.hub-check{display:inline-flex;align-items:center;gap:8px;min-height:var(--hub-tap);padding:0 12px;border:1.5px solid var(--hub-line-strong);border-radius:10px;background:#fff;cursor:pointer;font-weight:600;font-size:.92rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hub-check input{width:18px;height:18px;accent-color:var(--hub-brand);margin:0}.hub-check:has(input:checked){border-color:var(--hub-brand);background:var(--hub-brand-soft)}.hub-chips{display:flex;gap:8px;flex-wrap:wrap}.hub-help{font-size:.8rem;color:var(--hub-muted)}.hub-form-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding-top:4px}.hub-inline-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.hub-inline-form .hub-field{flex:1 1;min-width:140px}.hub-fieldset{border:1px solid var(--hub-line);border-radius:var(--hub-radius);padding:14px 16px 16px;margin:0}.hub-fieldset legend{font-family:var(--hub-font-head);font-weight:700;font-size:.85rem;padding:0 6px;color:var(--hub-body)}.hub-alert{border-radius:10px;padding:11px 14px;font-size:.9rem;border:1px solid;display:flex;gap:10px;align-items:flex-start}.hub-alert.error{background:var(--hub-danger-soft);border-color:#f9b8b0;color:#7a271a}.hub-alert.warn{background:var(--hub-warn-soft);border-color:#fde68a;color:#7a3b0b}.hub-alert.info{background:var(--hub-info-soft);border-color:#c7dbff;color:#123b8a}.hub-alert.ok{background:var(--hub-ok-soft);border-color:#bbe8c8;color:#0f5a25}.hub-alert strong{font-family:var(--hub-font-head)}.hub-alert ul{margin:6px 0 0;padding-left:18px}.hub-table-wrap{overflow-x:auto}.hub-table{width:100%;border-collapse:collapse;font-size:.9rem}.hub-table th{text-align:left;padding:10px 14px;background:var(--hub-surface-2);color:var(--hub-muted);font-family:var(--hub-font-head);font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.hub-table td,.hub-table th{border-bottom:1px solid var(--hub-line)}.hub-table td{padding:11px 14px;vertical-align:middle}.hub-table tr:last-child td{border-bottom:none}.hub-table tr.clickable:hover td{background:var(--hub-surface-2)}.hub-table .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hub-list{list-style:none;margin:0;padding:0}.hub-list li{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--hub-line);min-height:52px}.hub-list li:last-child{border-bottom:none}.hub-list li.clickable:hover{background:var(--hub-surface-2)}.hub-list .grow{flex:1 1;min-width:0}.hub-list .title{font-weight:700;font-family:var(--hub-font-head);overflow-wrap:anywhere}.hub-list .meta{font-size:.82rem;color:var(--hub-muted);overflow-wrap:anywhere}.hub-list .meta b{color:var(--hub-body);font-weight:600}.hub-list .side{text-align:right;font-size:.82rem;color:var(--hub-muted);flex:none}.hub-list.compact li{padding:8px 14px;min-height:40px}.hub-kv{display:grid;grid-template-columns:minmax(110px,36%) 1fr;grid-gap:6px 12px;gap:6px 12px;font-size:.9rem}.hub-kv dt{color:var(--hub-muted)}.hub-kv dd{margin:0;font-weight:600;overflow-wrap:anywhere}.hub-empty{padding:30px 20px;text-align:center;color:var(--hub-muted);font-size:.92rem;border:1px dashed var(--hub-line-strong);border-radius:var(--hub-radius);background:var(--hub-surface)}.hub-empty strong{display:block;color:var(--hub-body);font-family:var(--hub-font-head);margin-bottom:4px}.hub-tabs{display:flex;gap:2px;border-bottom:1px solid var(--hub-line);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.hub-tabs::-webkit-scrollbar{display:none}.hub-tabs a{padding:10px 14px;font-family:var(--hub-font-head);font-weight:700;font-size:.88rem;color:var(--hub-muted);border-bottom:3px solid transparent;white-space:nowrap;min-height:var(--hub-tap);display:inline-flex;align-items:center;gap:6px}.hub-tabs a.active{color:var(--hub-brand);border-bottom-color:var(--hub-brand)}.hub-tabs a:hover{color:var(--hub-ink)}.hub-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}.hub-filters .hub-field{min-width:140px}.hub-filters .hub-input,.hub-filters .hub-select{min-height:38px;padding:6px 10px;font-size:14px}.hub-pills{display:flex;gap:6px;flex-wrap:wrap}.hub-pill{display:inline-flex;align-items:center;min-height:34px;padding:4px 12px;border-radius:999px;border:1.5px solid var(--hub-line-strong);background:#fff;font-weight:700;font-size:.82rem;font-family:var(--hub-font-head);color:var(--hub-body)}.hub-pill.active{background:var(--hub-brand);border-color:var(--hub-brand);color:#fff}.hub-feed{list-style:none;margin:0;padding:0 0 0 4px}.hub-feed li{position:relative;padding:0 0 16px 24px}.hub-feed li:before{content:"";position:absolute;left:5px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--hub-brand);border:2px solid #fff;box-shadow:0 0 0 1.5px var(--hub-line-strong)}.hub-feed li:after{content:"";position:absolute;left:9px;top:18px;bottom:-2px;width:1.5px;background:var(--hub-line)}.hub-feed li:last-child:after{display:none}.hub-feed li.system:before{background:var(--hub-muted)}.hub-feed li.hot:before{background:var(--hub-hot)}.hub-feed .when{font-size:.76rem;color:var(--hub-muted)}.hub-feed .what{font-size:.9rem;overflow-wrap:anywhere}.hub-feed .who{font-weight:600}.hub-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;align-items:flex-start;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.hub-col{flex:0 0 272px;background:#eaefeb;border-radius:var(--hub-radius);padding:8px;scroll-snap-align:start;min-height:120px;transition:background .12s}.hub-col.over{background:#d7ebdc;outline:2px dashed var(--hub-brand)}.hub-col-head{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 10px;font-family:var(--hub-font-head);font-weight:800;font-size:.85rem}.hub-col-head .sum{font-size:.72rem;color:var(--hub-muted);font-weight:600}.hub-col-cards{display:flex;flex-direction:column;gap:8px}.hub-kcard{display:block;background:#fff;border:1px solid var(--hub-line);border-radius:10px;padding:10px 12px;box-shadow:var(--hub-shadow);cursor:-webkit-grab;cursor:grab}.hub-kcard:active{cursor:-webkit-grabbing;cursor:grabbing}.hub-kcard.dragging{opacity:.5}.hub-kcard.locked{cursor:pointer}.hub-kcard .name{font-family:var(--hub-font-head);font-weight:700;font-size:.92rem;display:flex;align-items:center;gap:6px;justify-content:space-between}.hub-kcard .addr{font-size:.8rem;color:var(--hub-muted);margin-top:2px;overflow-wrap:anywhere}.hub-kcard .line{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:.8rem}.hub-kcard .next{margin-top:8px;font-size:.8rem;padding:6px 8px;border-radius:7px;background:var(--hub-surface-2);color:var(--hub-body);overflow-wrap:anywhere}.hub-kcard .next.overdue{background:var(--hub-danger-soft);color:#7a271a}.hub-kcard .next.today{background:var(--hub-warn-soft);color:#7a3b0b}.hub-kcard .next.none{background:#fff7ed;color:#9a3412;border:1px dashed #fdba74}.hub-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--hub-nav)}.hub-login-card{background:#fff;border-radius:18px;padding:34px 32px;width:100%;max-width:400px;box-shadow:0 24px 60px rgba(0,0,0,.3)}.hub-login-card img{height:40px;margin-bottom:14px}.hub-login-card h1{font-size:1.4rem;margin-bottom:4px}.hub-login-card p{color:var(--hub-muted);margin-bottom:18px;font-size:.92rem}.hub-login-card .hub-form{gap:12px}.hub-flash{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:var(--hub-ink);color:#fff;padding:10px 16px;border-radius:10px;font-weight:600;font-size:.9rem;z-index:50;box-shadow:var(--hub-shadow)}.hub-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.hub-quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:8px;gap:8px}.hub-quick-actions a,.hub-quick-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:64px;padding:8px;border:1.5px solid var(--hub-line-strong);border-radius:10px;background:#fff;font-family:var(--hub-font-head);font-weight:700;font-size:.82rem;color:var(--hub-brand-dark);cursor:pointer}.hub-quick-actions a:hover,.hub-quick-actions button:hover{background:var(--hub-brand-soft);border-color:var(--hub-brand)}.hub-quick-actions svg{width:20px;height:20px}.hub-attention li{align-items:flex-start}.hub-attention .sev{flex:none;width:10px;height:10px;border-radius:50%;margin-top:6px}.hub-attention .sev.red{background:var(--hub-danger)}.hub-attention .sev.yellow{background:#f59e0b}details.hub-details summary{cursor:pointer;font-weight:700;font-family:var(--hub-font-head);font-size:.88rem;color:var(--hub-brand);list-style:none;min-height:36px;display:flex;align-items:center}details.hub-details summary::-webkit-details-marker{display:none}.hub-progress{height:8px;background:var(--hub-line);border-radius:999px;overflow:hidden}.hub-progress>span{display:block;height:100%;background:var(--hub-brand)}.hub-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media (max-width:1100px){.hub-grid.cols-3,.hub-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-grid.main-side{grid-template-columns:1fr}}@media (max-width:860px){.hub-sidebar{display:none}.hub-topbar{padding:0 14px;gap:10px}.hub-bottomnav,.hub-topbar-brand{display:flex}.hub-content{padding:16px 14px 96px}.hub-form-row,.hub-form-row.cols-3,.hub-form-row.cols-4,.hub-grid.cols-2,.hub-grid.cols-3,.hub-grid.cols-4{grid-template-columns:1fr}.hub-form-row.keep-2{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-hidden-mobile{display:none!important}.hub-table-wrap.cards-on-mobile table{display:none}.hub h1{font-size:1.3rem}.hub-col{flex-basis:84vw}.hub-page-head{margin-bottom:14px}.hub-flash{bottom:96px;width:calc(100% - 28px);text-align:center}.hub-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-kv{grid-template-columns:1fr;gap:2px 0}.hub-kv dt{margin-top:8px;font-size:.78rem}}@media (min-width:861px){.hub-mobile-cards{display:none}.hub-hidden-desktop{display:none!important}}.hub-bell{position:relative;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;color:var(--hub-body);flex:none}.hub-bell:hover{background:var(--hub-surface-2);color:var(--hub-ink)}.hub-bell svg{width:20px;height:20px}.hub-bell-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--hub-danger);color:#fff;font-size:.66rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;font-family:var(--hub-font-head);line-height:1}.hub-notif{align-items:flex-start}.hub-notif.unread{background:#f3faf5}.hub-notif .dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--hub-brand);margin-top:8px}.hub-notif.read .dot{background:transparent;border:1.5px solid var(--hub-line-strong)}.hub-linklike{background:none;border:0;padding:0;margin:0;text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%;display:block}.hub-linklike:hover .title{color:var(--hub-brand)}.hub-checklist li{align-items:flex-start}.hub-checklist .check{flex:none;width:36px;height:36px;padding:0;border-radius:9px}.hub-checklist .check.done{background:var(--hub-brand);border-color:var(--hub-brand);color:#fff}.hub-checklist li.done .title{color:var(--hub-muted);text-decoration:line-through}.hub-checklist .note-form{display:flex;gap:6px;margin-top:6px}.hub-checklist .note-form .hub-input{min-height:34px;padding:4px 10px;font-size:14px}.hub-proposal .version{font-family:var(--hub-font-head);font-weight:800;font-size:1.05rem;min-width:44px}.hub-proposal .docs{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.hub-file{font-size:.9rem}.hub-file::-webkit-file-upload-button{font:inherit;font-weight:700;font-family:var(--hub-font-head);border:1.5px solid var(--hub-line-strong);background:#fff;border-radius:8px;padding:6px 10px;margin-right:10px;cursor:pointer}.hub-file::file-selector-button{font:inherit;font-weight:700;font-family:var(--hub-font-head);border:1.5px solid var(--hub-line-strong);background:#fff;border-radius:8px;padding:6px 10px;margin-right:10px;cursor:pointer}.hub-sync-ok{color:var(--hub-ok);font-weight:600}.hub-tabs-wrap{position:relative;margin-bottom:16px}.hub-tabs-wrap .hub-tabs{margin-bottom:0}.hub-tabs-wrap:after{content:"";position:absolute;right:0;top:0;bottom:3px;width:28px;pointer-events:none;background:linear-gradient(to right,rgba(255,255,255,0),var(--hub-bg,#fff))}.hub-readiness{list-style:none;margin:0;padding:0}.hub-readiness li{display:flex;gap:10px;align-items:flex-start;padding:9px 16px;border-top:1px solid var(--hub-line)}.hub-readiness li:first-child{border-top:0}.hub-readiness .mark{flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;margin-top:1px}.hub-readiness .mark.ok{background:#dcf3e3;color:#14663a}.hub-readiness .mark.no{background:#fde2e1;color:#9c2b25}.hub-readiness .title{font-weight:600}.hub-readiness .meta{color:var(--hub-muted);font-size:.82rem}.hub-jobs{display:grid;grid-gap:12px;gap:12px}.hub-jobcard{display:block;border:1px solid var(--hub-line);border-radius:14px;padding:14px 16px;background:var(--hub-surface)}.hub-jobcard:hover{border-color:var(--hub-line-strong)}.hub-jobcard.today{border-color:var(--hub-brand);border-left-width:5px}.hub-jobcard .n{font-family:var(--hub-font-head);font-weight:800;font-size:1.05rem;color:var(--hub-ink)}.hub-jobcard .addr{font-weight:600;margin-top:2px;overflow-wrap:anywhere}.hub-jobcard .meta{color:var(--hub-muted);font-size:.85rem;margin-top:4px}.hub-bigbtn{min-height:56px;font-size:1rem;width:100%;justify-content:center}.hub-actions-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px}.hub-actions-row .hub-btn{white-space:normal}.hub-week-wrap{overflow-x:auto}.hub-week{width:100%;min-width:960px;border-collapse:collapse;table-layout:fixed}.hub-week td,.hub-week th{border:1px solid var(--hub-line);vertical-align:top;padding:6px;font-size:.8rem}.hub-week th{background:var(--hub-surface-2);font-family:var(--hub-font-head);font-size:.78rem;text-align:left}.hub-week th.crew{width:132px}.hub-week td.today{background:#f3faf5}.hub-week .slot{display:block;border-radius:8px;padding:5px 7px;margin-bottom:4px;background:#e8f3ec;border-left:3px solid var(--hub-brand)}.hub-week .slot.tentative{background:#fef6e0;border-left-color:#f59e0b}.hub-week .slot.completed{background:var(--hub-surface-2);border-left-color:var(--hub-line-strong);color:var(--hub-muted)}.hub-week .slot b{display:block;font-family:var(--hub-font-head);font-size:.78rem}.hub-week .slot span{display:block;color:var(--hub-muted);font-size:.74rem;overflow-wrap:anywhere}.hub-daylist{display:grid;grid-gap:12px;gap:12px}.hub-daylist .day-head{display:flex;align-items:baseline;gap:8px}.hub-daylist .day-head h3{margin:0}.hub-scope{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px 20px;gap:12px 20px}.hub-scope .group{min-width:0}.hub-scope .group h4{margin:0 0 6px;font-family:var(--hub-font-head);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--hub-muted)}.hub-checklist .check{width:44px;height:44px}.hub-sevdot{flex:none;width:10px;height:10px;border-radius:50%;display:inline-block}.hub-sevdot.red{background:var(--hub-danger)}.hub-sevdot.yellow{background:#f59e0b}@media (max-width:860px){.hub-week-wrap{display:none}.hub-scope{grid-template-columns:1fr}.hub-filters.stack-mobile{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}}@media (min-width:861px){.hub-daylist-wrap{display:none}}.hub-count.danger{background:var(--hub-danger-soft);border-color:#f5c2bf;color:var(--hub-danger)}