:root{--color-bg: #eae8e4;--color-surface: #f0efeb;--color-surface-strong: #e4e1de;--color-row: #edebe7;--color-border: #dcd9d4;--color-text: #1a1714;--color-text-muted: #6e6660;--color-accent: #e07b2a;--color-accent-hover: #c4621a;--color-accent-soft: #f9f0e6;--color-success: #27935d;--color-success-soft: #e9f9f0;--color-warning: #a27215;--color-warning-soft: #fff5df;--color-danger: #c53030;--color-danger-soft: #ffeaea;--bg: var(--color-bg);--panel: var(--color-surface);--border: var(--color-border);--text: var(--color-text);--muted: var(--color-text-muted);--brand: var(--color-accent);--brand-dark: var(--color-accent-hover);--brand-soft: var(--color-accent-soft);--ok: var(--color-success);--ok-bg: var(--color-success-soft);--warn: var(--color-warning);--warn-bg: var(--color-warning-soft);--danger: var(--color-danger);--danger-bg: var(--color-danger-soft);--bg-primary: var(--color-bg);--bg-secondary: var(--color-surface);--bg-tertiary: var(--color-surface-strong);--bg-panel: var(--color-surface);--bg-sidebar: var(--color-bg);--bg-row: var(--color-row);--bg-row-hover: var(--color-surface-strong);--accent: var(--color-accent);--accent-hover: var(--color-accent-hover);--text-primary: var(--color-text);--text-muted: var(--color-text-muted);--sel-color: var(--color-accent)}[hidden]{display:none!important}*{box-sizing:border-box}:root{--topbar-h: 58px}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:350;font-size:15px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr;opacity:1;transition:opacity .14s ease}body.dashboard-route-pending .app-shell{visibility:hidden;opacity:0}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:14px 12px;display:grid;grid-template-rows:auto auto 1fr;gap:12px;position:sticky;top:0;height:100vh}.project-chip{border-radius:10px;padding:10px 6px;font-size:12px;color:var(--muted)}.project-chip strong{display:block;font-size:15px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--brand);text-shadow:0 0 18px rgba(240,138,36,.24),0 0 30px rgba(255,172,96,.16)}.project-chip strong span{color:var(--text-primary)}.side-nav{display:grid;gap:3px;align-content:start}.side-nav a{text-decoration:none;color:var(--text);font-size:15px;font-weight:350;border:1px solid transparent;border-radius:9px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;background:transparent;cursor:pointer;transition:color .15s,background .15s,border-color .15s}.side-nav a:hover{border-color:var(--border);background:#faf8f5;color:var(--text)}.side-nav a.active{border-color:var(--nav-active-border, #e8d4bc);background:var(--nav-active-bg, #fdf5ec);color:var(--nav-active-text, #c96a1a);font-weight:450}.nav-sep{height:1px;background:var(--border);margin:4px 2px}.user-card{display:flex;align-items:center;gap:9px;padding:6px 4px;border-radius:9px}.user-avatar{width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{border:none;border-radius:6px;background:transparent;color:var(--muted);font-size:12px;padding:4px 7px;cursor:pointer;white-space:nowrap;flex-shrink:0}.logout-btn:hover{color:var(--danger);background:var(--danger-bg)}.guide-topbar-btn{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.main-col{min-width:0;display:grid;grid-template-rows:auto 1fr}.topbar{height:var(--topbar-h);border-bottom:1px solid var(--border);background:var(--panel);display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}.brand-icon{width:28px;height:28px;border-radius:7px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.brand small{display:block;margin-top:1px;color:var(--muted);font-size:11px;font-weight:400}.topbar-user-card{border-left:1px solid var(--border);padding:4px 4px 4px 14px;margin-left:2px}.topbar-right{display:flex;align-items:center;gap:12px;position:fixed;top:0;--tr-right: 22px;right:var(--tr-right);height:var(--topbar-h);font-size:13px;color:var(--muted)}.container{width:100%;min-width:0;max-width:1300px;margin:0 auto;--pad-x: 24px;--pad-b: 36px;padding:22px var(--pad-x) var(--pad-b);box-sizing:border-box}body.dashboard-route-pending .container{min-height:48vh}.overview-page{display:none}.overview-page.active{display:block}.projects-page{display:none}.projects-page.active{display:block}.roadmap-page{display:none}.roadmap-page.active{display:block}.settings-page{display:none}.settings-page.active{display:block}.admin-page{display:none}.admin-page.active{display:block}main.container.container--wide{max-width:none!important;width:auto!important;margin:0!important;--pad-x: 24px;--pad-b: 36px;padding:22px var(--pad-x) var(--pad-b)!important}.container--wide .admin-page,.container--wide .admin-page>*,.container--wide .admin-page .admin-tab-panel{max-width:none!important;width:auto;box-sizing:border-box}.container--wide .admin-form-row>.files-search,.container--wide .admin-form-row>select.files-search{width:auto!important;flex:1 1 160px;min-width:140px}.container--wide .admin-form-row>select.files-search{max-width:220px}.container--wide .admin-tab-panel input.files-search[placeholder*=Поиск],.container--wide .admin-tab-panel input.files-search[id^=admin-search]{width:100%!important;max-width:none!important}.container--wide .admin-users-matrix,.container--wide .admin-members-matrix,.container--wide table.files-table{width:100%!important}.admin-hint{color:var(--muted);font-size:13px;margin:0 0 10px}.admin-client-feedback{min-height:18px;margin:6px 0 0;color:var(--ok);font-size:12px}.admin-client-feedback.is-error{color:var(--danger)}.admin-company-limits-form{max-width:960px;margin-top:20px}.admin-company-limits-grid{display:grid;grid-template-columns:minmax(0,420px);gap:18px;margin-bottom:18px}.admin-company-limits-grid label{display:flex;align-items:center;gap:8px;font-size:13px}.admin-company-limits-grid input{width:calc(3ch + 42px);height:26px;flex-shrink:0;min-width:0;box-sizing:border-box}#admin-company-limits-select{max-width:420px}.admin-form-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.admin-check{font-size:13px;color:var(--text);display:flex;align-items:center;gap:6px;white-space:nowrap}.admin-multi-select{height:auto!important;min-height:140px!important;padding:6px 8px}.admin-users-range{display:flex;align-items:center;gap:6px;white-space:nowrap}.admin-users-range-label{font-size:12px;color:var(--muted)}.admin-users-range-dash{color:var(--muted)}.admin-users-toolbar .admin-users-date{width:142px;flex:0 0 auto;min-width:0}.admin-ms-filter{position:relative}.admin-ms-filter>summary{width:200px;display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;color:var(--text)}.admin-ms-filter>summary::-webkit-details-marker{display:none}.admin-page select:not([multiple]):not([size]),#user-edit-modal select:not([multiple]):not([size]),.admin-ms-filter>summary{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:28px;background-color:#fff;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' fill='none' stroke='%23555' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.admin-ms-filter[open]>summary{border-color:var(--brand)}.admin-ms-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;min-width:200px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:6px;box-shadow:0 8px 20px #0000001f}.admin-ms-menu-scroll{max-width:320px;max-height:260px;overflow-y:auto}.admin-ms-menu-scroll .admin-pick-text{overflow-wrap:anywhere}.admin-pick-list{min-width:320px;max-width:460px;min-height:140px;max-height:180px;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:9px;padding:6px}.admin-pick-empty{color:var(--muted);font-size:12px;padding:8px;text-align:center}.admin-pick-item{display:flex;align-items:flex-start;gap:8px;padding:5px 6px;border-radius:6px;cursor:pointer}.admin-pick-item:hover{background:#faf8f5}.admin-pick-item input{margin-top:2px}.admin-pick-text{font-size:13px;color:var(--text);line-height:1.3}.admin-source-badge{display:inline-block;font-size:11px;border-radius:999px;padding:2px 8px;border:1px solid var(--border);color:var(--muted);background:#fff}.admin-source-direct{color:#2a6fba;border-color:#c8ddf4;background:#eef5fc}.admin-source-client{color:#8a5b15;border-color:#ecd7b1;background:#fff8ea}.admin-source-both{color:#2f7f4f;border-color:#bfe4cd;background:#eefaf2}.admin-users-matrix [data-col=adm],.admin-users-matrix [data-col=upr],.admin-users-matrix [data-col=ifc],.admin-users-matrix [data-col=clients],.admin-users-matrix [data-col=projects],.admin-page [data-col=matrix-hint]{display:none!important}.admin-users-toolbar{align-items:center}.admin-users-matrix th,.admin-members-matrix th{font-size:12px;white-space:nowrap}.admin-mx-cell{text-align:center;vertical-align:middle;width:44px}.admin-users-matrix th:nth-child(n+7):not(:last-child),.admin-users-matrix td:nth-child(n+7):not(:last-child){text-align:center;vertical-align:middle}.admin-mx{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;font-size:14px;font-weight:600;line-height:1}.admin-mx-ok{color:#2f7f4f}.admin-mx-warn{color:#b8860b}.admin-mx-off{color:#c5c0b8}.admin-mx-badge{display:inline-block;min-width:1.6em;padding:2px 6px;border-radius:999px;font-size:12px;font-weight:600;text-align:center}.admin-mx-badge-on{color:#1a5a96;background:#e8f2fc;border:1px solid #c8ddf4}.admin-mx-badge-off{color:var(--muted);background:#f5f3f0;border:1px solid var(--border)}.sub-badge{display:inline-block;padding:2px 7px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap;border:1px solid transparent}.sub-badge-none{color:var(--muted);background:#f5f3f0;border-color:var(--border)}.sub-badge-paid{color:#1a6b2f;background:#e6f4ea;border-color:#a8d5b5}.sub-badge-trial{color:#7a4f00;background:#fff3cd;border-color:#ffd97d}.sub-badge-partner{color:#1a4a7a;background:#daeeff;border-color:#90c4f0}.sub-badge-unpaid{color:#7a1a1a;background:#fde8e8;border-color:#f5aaaa}.sub-badge-uz{color:#4a2d7a;background:#f0e8ff;border-color:#c9a8f5}.sub-period{font-size:12px;color:var(--text);white-space:nowrap}.admin-users-scroll{overflow:auto;max-height:420px}.admin-users-scroll.is-expanded{overflow:visible;max-height:none}.admin-user-expand-cell{width:36px;text-align:center;vertical-align:middle;padding:4px 2px}.admin-user-expand-btn{border:1px solid var(--border);background:#fff;border-radius:8px;width:28px;height:28px;padding:0;cursor:pointer;font-size:12px;line-height:1;color:var(--muted);transition:transform .15s ease,color .15s ease}.admin-user-expand-btn:hover{color:var(--text);border-color:var(--brand-soft)}.admin-user-expand-btn.is-open{transform:rotate(90deg);color:var(--text)}.admin-user-expand-cell-full{background:#faf8f5;border-top:none;padding:0!important;vertical-align:top}.admin-inline-membership{padding:12px 14px 14px;border-top:1px dashed var(--border)}.admin-inline-membership-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:10px;font-size:13px}.admin-inline-membership-hint{font-size:12px;font-weight:400;color:var(--muted)}.admin-inline-membership-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}@media (max-width: 900px){.admin-inline-membership-cols{grid-template-columns:1fr}}.admin-inline-membership-col-title{font-size:12px;font-weight:600;margin-bottom:6px;color:var(--text)}.admin-inline-ms-scroll{background:#fff;border:1px solid var(--border);border-radius:8px;padding:4px 2px}.admin-inline-membership-foot{margin:10px 0 0;color:var(--muted)}.admin-mx-pop-cell{min-width:52px;width:auto}.admin-mx-pop-trigger{margin:0;padding:0;border:none;background:none;font:inherit;color:inherit;cursor:pointer;border-radius:8px;line-height:0}.admin-mx-pop-trigger:hover .admin-mx-badge{filter:brightness(.97);box-shadow:0 0 0 1px var(--brand-soft)}.admin-mx-pop-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.admin-membership-popover{display:none;position:fixed;z-index:200;width:min(360px,calc(100vw - 24px));max-height:min(380px,calc(100vh - 24px));flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px #1a17142e;overflow:hidden}.admin-membership-popover.open{display:flex}.admin-membership-popover-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);background:#faf8f5}.admin-membership-popover-head h4{margin:0;font-size:13px;font-weight:600;color:var(--text)}.admin-membership-popover-close{flex-shrink:0;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;border-radius:6px}.admin-membership-popover-close:hover{color:var(--text);background:#fff}.admin-membership-popover-search{padding:8px 10px;border-bottom:1px solid var(--border)}.admin-membership-popover-search input{width:100%}.admin-membership-popover-body{overflow-y:auto;padding:6px 4px 8px;min-height:80px}.admin-membership-popover-foot{padding:8px 10px;font-size:11px;color:var(--muted);border-top:1px solid var(--border);background:#faf8f5;line-height:1.35}.admin-membership-popover .admin-pick-item{padding:6px 8px}.admin-user-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-section-tabs{display:inline-flex;flex-wrap:wrap;gap:4px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:4px;margin:0 0 14px;max-width:100%}.admin-section-tab{border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;padding:8px 12px}.admin-section-tab:hover{color:var(--text);background:#faf8f5}.admin-section-tab.active{border-color:var(--nav-active-border, #e8d4bc);background:var(--nav-active-bg, #fdf5ec);color:var(--nav-active-text, #c96a1a);font-weight:600}.admin-tab-panel{display:none}.admin-tab-panel.active{display:block}.email-admin-head,.email-admin-test,.email-outbox-toolbar,.email-outbox-item,.email-outbox-actions{display:flex;align-items:center;gap:10px}.email-admin-head{justify-content:space-between;margin-bottom:12px}.email-admin-head h3,.email-admin-card h4{margin:0}.email-admin-test{flex-wrap:wrap;margin-bottom:14px}.email-admin-grid{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:14px}.email-admin-card{border:1px solid var(--border);border-radius:12px;background:#fffdfa;padding:12px}.email-toggle-list{display:grid;gap:8px;margin-top:10px}.email-toggle-row{display:flex;align-items:center;gap:9px;padding:8px;border:1px solid var(--border);border-radius:10px;background:#fff}.email-toggle-row small{display:block;color:var(--muted);font-size:11px}.email-users-card{margin-top:14px}.email-users-scroll{overflow:auto;max-height:420px;margin-top:10px}.email-users-table.files-table th,.email-users-table.files-table td,.email-users-table th,.email-users-table td{text-align:center;vertical-align:middle}.email-users-table.files-table th:first-child,.email-users-table.files-table td:first-child,.email-users-table th:first-child,.email-users-table td:first-child{text-align:left;min-width:220px}.email-outbox-toolbar{flex-wrap:wrap;margin:10px 0}.email-outbox-list{display:grid;gap:8px;max-height:360px;overflow:auto}.email-outbox-item{justify-content:space-between;border:1px solid var(--border);border-radius:10px;background:#fff;padding:9px}.email-outbox-meta{color:var(--muted);font-size:12px;margin-top:2px}.email-outbox-error{color:#c53030;font-size:12px;margin-top:4px}.email-status{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:3px 8px;background:#fff;color:var(--muted);font-size:11px}.email-status-sent{color:#2f7f4f;border-color:#bfe4cd;background:#eefaf2}.email-status-queued{color:#8a5b15;border-color:#ecd7b1;background:#fff8ea}.email-status-sending{color:#2a6fba;border-color:#c8ddf4;background:#eef5fc}.email-status-failed{color:#c53030;border-color:#f5c6c6;background:#fff5f5}.toolbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.2px}.sub{margin-top:4px;font-size:13px;color:var(--muted)}.btn{height:36px;border-radius:9px;border:1px solid var(--border);background:#fff;color:var(--text);font-size:13px;padding:0 14px;cursor:pointer;transition:background .12s,border-color .12s}.btn:hover{background:#faf8f5;border-color:#d6cfc6}.btn.primary{border-color:var(--brand);background:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}.btn.danger{border-color:#e53935;background:#fff;color:#e53935}.btn.danger:hover{background:#e53935;color:#fff}.search{width:320px;height:36px;border:1px solid var(--border);border-radius:9px;background:#fff;padding:0 12px;font-size:13px;margin-bottom:16px;outline:none}.search:focus{border-color:var(--brand);box-shadow:0 0 0 3px #e07b2a1f}.model-section-badge{display:inline-block;min-width:36px;padding:1px 6px;border:1px solid #b3caf5;border-radius:4px;background:#e8f0fe;color:#1a56cc;font-size:11px;font-weight:600;text-align:center;white-space:nowrap}.overview-page.active .toolbar h1{font-size:28px;font-weight:600;letter-spacing:-.5px;color:var(--text)}.overview-page.active .toolbar .sub{color:var(--muted);font-size:14px;margin-top:4px}.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}.dash-divider{grid-column:1 / -1;height:1px;background:var(--border);margin:8px 0}.dash-card--chart,.dash-card--models{grid-column:span 2}.dash-card--activity{grid-column:1 / -1}.dash-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:20px 22px;position:relative;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;box-shadow:0 1px 2px #140e0805}.dash-card:hover{border-color:#e07b2a52;transform:translateY(-1px);box-shadow:0 4px 16px #140e080a}.dash-card .dash-title{margin:0 0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);display:flex;align-items:center;gap:8px}.dash-card .dash-title:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brand);flex-shrink:0}.metric{font-size:36px;line-height:1.1;font-weight:700;letter-spacing:-1.2px;margin:6px 0 4px;color:var(--text);font-feature-settings:"tnum" 1,"lnum" 1}.metric-sub{color:var(--muted);font-size:13px;line-height:1.4;margin-top:4px}.ok-time{color:#2aa86a;font-weight:700}.ov-chart{width:100%;height:200px;display:block;margin-top:4px}.dash-card .dash-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;gap:12px}.dash-card .dash-section-title{font-size:16px;font-weight:700;letter-spacing:-.2px;color:var(--text);margin:0}.dash-card .dash-section-title:before{display:none}.dash-card .dash-section-meta{font-size:12px;color:var(--muted)}.table-mini{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}#ov-models-card .table-mini{table-layout:fixed}#ov-models-card .table-mini th:first-child,#ov-models-card .table-mini td:first-child{width:75%}.table-mini thead th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;padding:10px;border-bottom:1px solid var(--border);background:transparent;text-align:left}.table-mini tbody td{padding:9px 10px;border-bottom:1px solid #f4f1ed;color:var(--text);vertical-align:middle;font-size:14px}.table-mini tbody tr:last-child td{border-bottom:none}.table-mini tbody tr{transition:background .12s ease}.table-mini tbody tr:hover td{background:#fbf8f4}.table-mini .badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent;white-space:nowrap}.table-mini .badge:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}.ov-loading{color:var(--muted);font-size:13px;padding:24px 4px;text-align:center}.file-type-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:20px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.3px;vertical-align:middle;margin-right:6px;flex-shrink:0}.file-type-ifc{background:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9}.file-type-stp{background:#e3f2fd;color:#1565c0;border:1px solid #bbdefb}.file-type-xkt{background:#fff3e0;color:#e65100;border:1px solid #ffe0b2}.file-type-glb{background:#f3e5f5;color:#6a1b9a;border:1px solid #e1bee7}.ov-model-name{display:inline-flex;align-items:center;gap:0;white-space:normal;overflow:visible;overflow-wrap:anywhere;max-width:100%}.overview-page.active .toolbar #btn-refresh-overview{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.overview-page.active .toolbar #btn-refresh-overview:hover{border-color:var(--brand);color:var(--brand);background:#fff7f0}@media (max-width: 1280px){.dash-grid{grid-template-columns:repeat(2,1fr)}.dash-card.dash-card--chart,.dash-card.dash-card--models{grid-column:span 2}}@media (max-width: 720px){.dash-grid{grid-template-columns:minmax(0,1fr);gap:12px}.dash-card.dash-card--chart,.dash-card.dash-card--models,.dash-card.dash-card--activity{grid-column:1}.table-mini{table-layout:fixed}.table-mini thead th,.table-mini tbody td{overflow-wrap:anywhere}#ov-models-card .table-mini th:first-child,#ov-models-card .table-mini td:first-child{width:52%}#ov-models-card .table-mini .badge{padding-inline:5px;white-space:normal;overflow-wrap:anywhere;text-align:center}.metric{font-size:30px}}.roadmap-toolbar-actions{display:flex;gap:8px;flex-shrink:0}.roadmap-controls{display:grid;grid-template-columns:minmax(220px,1fr) repeat(4,minmax(140px,180px));gap:10px;margin-bottom:24px}.roadmap-controls .files-search{width:100%;min-width:0;box-sizing:border-box;margin:0}.roadmap-controls select.active{border-color:var(--brand);background:var(--brand-soft)}.roadmap-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.roadmap-section-head h3{margin:0;color:var(--text);font-size:15px;font-weight:600}.roadmap-section-head span{color:var(--muted);font-size:12px}.roadmap-modules-title{margin:24px 0 12px}.roadmap-modules-title h2{margin:0;color:var(--text);font-size:19px;font-weight:650}.roadmap-reset{border:0;padding:4px 0;background:none;color:#a85600;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.roadmap-modules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch}.roadmap-module-group{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 16px 16px}.roadmap-card-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-content:start}.roadmap-card{position:relative;width:100%;min-width:0;display:flex;flex-direction:column;text-align:left;padding:14px 16px;border:1px solid var(--border);border-left:4px solid #9b8f83;border-radius:12px;background:#fffdfa;color:var(--text);font:inherit;cursor:pointer;transition:background .12s,border-color .12s}.roadmap-card:hover{background:#fff8f0;border-top-color:#d8c2ae;border-right-color:#d8c2ae;border-bottom-color:#d8c2ae}.roadmap-card-title{margin-right:22px;font-size:16px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.roadmap-card-arrow{position:absolute;top:14px;right:16px;color:#9b8f83;font-size:19px}.roadmap-card-description{color:var(--muted);font-size:13px;line-height:1.5;margin-top:5px;overflow-wrap:anywhere;white-space:pre-wrap}.roadmap-badges{display:flex;flex-wrap:wrap;gap:6px}.roadmap-card .roadmap-badges{margin-top:auto;padding-top:16px}.roadmap-badge,.roadmap-priority{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--border);background:#f5f3f0;padding:3px 8px;color:var(--muted);font-size:11px;line-height:16px}.roadmap-status-in_progress{border-left-color:#2a6fba}.roadmap-status-next{border-left-color:var(--brand)}.roadmap-status-done{border-left-color:#2f7f4f}.roadmap-status-paused{border-left-color:#b7791f}.roadmap-badge-done{background:#e9f9f0;color:#27935d;border-color:#c8ebd8}.roadmap-badge-in_progress{background:#edf4fd;color:#2a6fba;border-color:#cadcf2}.roadmap-badge-next,.roadmap-priority-high .roadmap-priority{background:var(--brand-soft);color:#a85600;border-color:#f0cba8}.roadmap-priority-critical .roadmap-priority{color:#b42318;border-color:#f2b8b5;background:#fff1f0}.roadmap-empty,.roadmap-loading,.roadmap-error{color:var(--muted);text-align:center;padding:40px 20px}.roadmap-empty strong{color:var(--text)}.roadmap-empty p{margin:8px 0 18px;font-size:13px}.roadmap-loading,.roadmap-error{grid-column:1 / -1}.roadmap-error{color:#c53030}.roadmap-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.roadmap-detail p{margin:0;font-size:15px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.roadmap-detail .roadmap-badges{margin-top:22px;gap:8px}#roadmap-modal[role=dialog] .modal-head{align-items:flex-start;gap:20px;padding:22px 24px}#roadmap-modal[role=dialog] .modal-head h3{font-size:22px;line-height:1.35;overflow-wrap:anywhere}#roadmap-modal[role=dialog] .close{flex-shrink:0}#roadmap-modal[role=dialog] .modal-body{padding:24px}.roadmap-card:focus-visible,.roadmap-reset:focus-visible,.roadmap-controls .files-search:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.roadmap-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.roadmap-form-grid label{display:grid;gap:6px;color:var(--text);font-size:13px;font-weight:500}.roadmap-form-grid .files-search{width:100%;box-sizing:border-box;margin:0}.roadmap-form-grid textarea.files-search{height:auto;min-height:92px;padding-top:9px;resize:vertical}.roadmap-form-wide{grid-column:1 / -1}.req{color:#c53030}@media (max-width: 1250px){.roadmap-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.roadmap-controls input{grid-column:1 / -1}.roadmap-modules{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 600px){.roadmap-controls{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.roadmap-modules,.roadmap-form-grid{grid-template-columns:1fr}.roadmap-module-group,.roadmap-card{padding:12px}.roadmap-page .toolbar{flex-direction:column;align-items:flex-start;gap:12px}#roadmap-modal[role=dialog] .modal-head,#roadmap-modal[role=dialog] .modal-body{padding:20px}}.chart-placeholder{height:170px;border-radius:10px;border:1px dashed #d8d2c8;background:linear-gradient(180deg,#e07b2a12,#e07b2a05),repeating-linear-gradient(to right,transparent 0,transparent 24px,rgba(160,140,120,.09) 24px,rgba(160,140,120,.09) 25px);position:relative;overflow:hidden}.chart-placeholder:after{content:"";position:absolute;left:0;right:0;bottom:26px;height:2px;background:linear-gradient(90deg,#f5b07a,var(--brand),#f5b07a);transform:skew(-18deg);opacity:.8}.table-mini{width:100%;border-collapse:collapse;font-size:12px}.table-mini th,.table-mini td{border-bottom:1px solid var(--border);padding:7px 4px;text-align:left}.table-mini th{color:var(--muted);font-weight:500;font-size:11px}.sidebar-footer{align-self:end;padding-top:24px}.feedback-link{border:0;background:none;color:var(--muted);padding:12px 6px;font:inherit;font-size:13px;text-align:left;cursor:pointer}.feedback-link:hover{color:#c4621a;text-decoration:underline;text-underline-offset:3px}.feedback-tabs{display:flex;flex-wrap:wrap;width:fit-content;gap:4px;padding:4px;margin-bottom:16px;border:1px solid var(--border);border-radius:14px;background:#fff}.feedback-tabs .btn{border-color:transparent;background:transparent;color:var(--muted)}.feedback-tabs .btn[aria-pressed=true]{border-color:#f0cba8;background:#fdf5ec;color:#c96a1a;font-weight:600}.feedback-note{font-size:12px;color:var(--muted);margin:0 0 16px}.feedback-filters{display:grid;grid-template-columns:minmax(200px,1fr) repeat(2,minmax(160px,220px));gap:10px;margin-bottom:18px}.feedback-filters .files-search{width:100%;min-width:0;margin:0}.feedback-filters select.active{border-color:var(--brand);background:var(--brand-soft)}.feedback-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.feedback-card{min-width:0;display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:20px;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:14px;font:inherit;cursor:pointer}.feedback-card:hover{border-color:#e8d4bc;background:#fffaf5}.feedback-card .roadmap-badges{margin-top:10px}.feedback-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:11px;color:var(--muted)}.feedback-message{font-size:13px;line-height:1.6;margin-top:8px;overflow-wrap:anywhere;white-space:pre-wrap}.feedback-due{padding-top:12px;margin-top:16px;border-top:1px solid var(--border);color:var(--muted);font-size:12px}.feedback-badge{display:inline-flex;align-items:center;font-size:11px;padding:3px 8px;line-height:16px;border-radius:999px;border:1px solid var(--border);background:#f5f3f0;color:var(--muted)}.feedback-section,.feedback-status-open{background:var(--brand-soft);color:#a85600;border-color:#f0cba8}.feedback-status-in_progress{background:#edf4fd;color:#2a6fba;border-color:#cadcf2}.feedback-status-resolved{background:#e9f9f0;color:#27935d;border-color:#c8ebd8}.feedback-status-rejected{background:#ffeaea;color:#c53030;border-color:#f2b8b5}.feedback-result{border:1px solid #c8ebd8;border-radius:9px;padding:12px;background:#e9f9f0;color:#236d48;font-size:13px}.feedback-error,#attachment-error{color:#c53030;font-size:13px}.feedback-board>.feedback-note,.feedback-board>.feedback-error{grid-column:1 / -1}.feedback-image{display:block;max-width:100%;max-height:120px;object-fit:contain;margin-top:10px}.feedback-previews{display:flex;flex-wrap:wrap;gap:10px}.feedback-preview{position:relative;width:130px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.feedback-preview img{display:block;width:100%;height:90px;object-fit:contain;background:#f5f3f0}.feedback-preview button{position:absolute;right:4px;top:4px;border:1px solid var(--border);border-radius:5px;background:#fff;cursor:pointer}.feedback-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.feedback-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:none;align-items:center;justify-content:center;padding:16px}.feedback-modal.open{display:flex}.feedback-modal .backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#100e0a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.feedback-modal .box{position:relative;width:min(560px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:14px;box-shadow:0 22px 48px #1e140a2e;overflow:hidden}.feedback-modal .modal-head{display:flex;align-items:flex-start;gap:20px;padding:22px 24px;background:var(--brand-soft);border-bottom:1px solid var(--border);flex-shrink:0}.feedback-modal .modal-head h2{flex:1;margin:0;font-size:22px;line-height:1.35;font-weight:600;overflow-wrap:anywhere}.feedback-modal .close{width:30px;height:30px;flex-shrink:0;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--muted);font-size:18px;cursor:pointer}.feedback-modal form{display:contents}.feedback-modal .modal-body{padding:24px;overflow-y:auto;overscroll-behavior:contain}.feedback-modal .modal-body p{margin:0;font-size:15px;line-height:1.65}.feedback-fields{display:grid;gap:16px}.feedback-fields label{display:grid;gap:6px;font-size:13px;font-weight:500}.feedback-fields .files-search{width:100%;min-width:0;margin:0}.feedback-fields textarea.files-search{height:auto;min-height:120px;padding:10px 12px;resize:vertical;font-size:14px}.feedback-fields input[type=file]{width:100%}.feedback-modal .modal-body .hint{font-size:12px;line-height:1.5;color:var(--muted)}.feedback-modal .modal-body .feedback-error{font-size:13px;color:#c53030}.feedback-modal .modal-foot{display:flex;justify-content:flex-end;flex-shrink:0;gap:8px;padding:12px 16px;background:#fbfaf8;border-top:1px solid var(--border)}.feedback-link:focus-visible,.feedback-card:focus-visible,.feedback-modal :is(button,input,select,textarea):focus-visible{outline:2px solid var(--brand);outline-offset:3px}@media (max-width: 1250px){.feedback-board{grid-template-columns:repeat(2,minmax(0,1fr))}.feedback-filters{grid-template-columns:1fr 1fr}.feedback-filters input{grid-column:1 / -1}}@media (max-width: 600px){.feedback-board,.feedback-row{grid-template-columns:1fr}.feedback-filters{padding:12px}.feedback-modal .modal-head,.feedback-modal .modal-body{padding:20px}}.feedback-modal fieldset{border:0;margin:0;min-width:0}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(280px,1fr));gap:16px}.card{background:#fff;border:1px solid var(--border);border-radius:13px;overflow:hidden;cursor:pointer;transition:.15s}.card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #1e140a14}.img{height:156px;background-size:cover;background-position:center}.img.a{background-image:linear-gradient(145deg,#8c7060,#4a3224)}.img.b{background-image:linear-gradient(145deg,#9a7a5a,#5a3c22)}.img.c{background-image:linear-gradient(145deg,#b89878,#7a5438)}.project-cover-img{transition:background-image .25s}.project-cover-img.has-cover{background-size:contain!important;background-repeat:no-repeat;background-position:center;background-color:#ece8e2}.project-cover-gradient-1{background-image:linear-gradient(145deg,#8c7060,#4a3224)}.project-cover-gradient-2{background-image:linear-gradient(145deg,#6a8a7a,#2a5a4a)}.project-cover-gradient-3{background-image:linear-gradient(145deg,#7a7aaa,#3a3a7a)}.project-card-actions{display:flex;gap:4px;margin-left:auto}.card-action-btn{background:#ffffffd9;border:none;border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:background .15s}.card-action-btn:hover{background:#fff;box-shadow:0 2px 6px #0000001f}.card-action-btn:hover svg{stroke:var(--brand)}.card-action-del:hover svg{stroke:#e53e3e}.projects-empty{color:var(--muted);font-size:14px;padding:32px 0;text-align:center}#crop-modal{z-index:400!important}#crop-modal .box{max-width:600px}#crop-viewport{position:relative;width:100%;aspect-ratio:3 / 1;background:#1a1a1a;border-radius:8px;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}#crop-viewport:active{cursor:grabbing}#crop-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block}#crop-crosshair{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.25) 1px,transparent 1px);background-size:33.33% 33.33%;border:2px solid rgba(255,255,255,.5);border-radius:8px;box-shadow:inset 0 0 0 1px #0000004d}.crop-hint{font-size:12px;color:var(--muted);text-align:center;margin:0}#project-modal .box,#client-modal .box{max-width:480px}.cover-upload-wrap{margin-bottom:16px}.cover-upload-area{width:100%;aspect-ratio:3 / 1;border:2px dashed var(--border);border-radius:10px;cursor:pointer;overflow:hidden;transition:border-color .15s}.cover-upload-area:hover{border-color:var(--brand)}.cover-upload-inner{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:13px;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:#ece8e2}.field-label{font-size:13px;font-weight:500;color:var(--text);display:block;margin-bottom:5px}.req{color:#e53e3e}.body{padding:12px}.head{display:flex;justify-content:space-between;gap:8px;align-items:center}.name{font-size:15px;font-weight:600}.badge{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.badge.ok{background:var(--ok-bg);color:var(--ok);border-color:#c8ebd8}.badge.warn{background:var(--warn-bg);color:var(--warn);border-color:#f0dfb7}.badge.orange{background:var(--brand-soft);color:var(--brand);border-color:#f0cba8}.meta{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.45;min-height:35px}.foot{margin-top:10px;display:flex;gap:12px;color:var(--muted);font-size:12px}.back{border:none;background:none;color:var(--muted);font-size:13px;cursor:pointer;padding:0}.back:hover{color:var(--brand)}.project-title{margin:6px 0 0;font-size:22px;font-weight:700}.project-sub{margin:6px 0 0;color:var(--muted);font-size:13px}.tabs{margin-top:12px;display:flex;gap:6px}.tab{border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--muted);font-size:13px;padding:7px 12px;cursor:pointer;transition:.12s}.tab.active{color:var(--brand);border-color:#f0cba8;background:var(--brand-soft);font-weight:600}.panel{margin-top:14px;background:#fff;border:1px solid var(--border);border-radius:13px;padding:16px}.property-filters-head,.property-filter-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.property-filters-title{color:var(--text);font-size:15px;font-weight:650}.property-filters-sub{max-width:720px;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45}.property-filter-default{display:flex;align-items:center;gap:10px;margin:16px 0 8px;font-size:13px}.property-filter-default label{font-weight:600}.property-filter-default .files-search{width:min(320px,100%)}.property-filter-readonly{color:var(--muted)}.property-filter-status{min-height:18px;margin:6px 0 10px;color:var(--muted);font-size:12px}.property-filter-status.is-error{color:var(--danger)}.project-client-input-hint{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.4}.project-client-input-hint.is-error{color:var(--danger)}.property-filter-list{display:grid;gap:8px}.property-filter-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:#fbfaf8}.property-filter-name{min-width:0;font-size:13px;font-weight:600;overflow-wrap:anywhere}.property-filter-meta,.property-filter-empty{color:var(--muted);font-size:12px}.property-filter-empty{padding:18px 12px;text-align:center;border:1px dashed var(--border);border-radius:10px}.property-filter-preview{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#fbfaf8}.property-filter-preview pre{max-height:360px;margin:10px 0 0;padding:12px;overflow:auto;color:var(--text);font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;background:#fff;border:1px solid var(--border);border-radius:8px}.model-filter-select{width:100%;min-width:0;height:28px;padding:2px 26px 2px 5px;font-size:11px;border:1px solid var(--border);border-radius:7px;background:#fff}.model-filter-static{color:var(--muted);font-size:12px}.files-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.files-search{width:280px;height:34px;border:1px solid var(--border);border-radius:8px;padding:0 11px;font-family:inherit;font-weight:inherit;font-size:13px;color:inherit;background:#fff;outline:none}.files-search:focus{border-color:var(--brand);box-shadow:0 0 0 3px #e07b2a1a}.files-caption{color:var(--muted);font-size:12px;white-space:nowrap}.project-upload-limit{margin-left:auto;max-width:520px;color:var(--danger);font-size:12px;line-height:1.35;text-align:right}.files-table-wrap{overflow-x:auto;max-width:100%}.responsive-file-cards{overflow-x:hidden}.responsive-file-cards .files-table{min-width:0;table-layout:fixed;font-size:clamp(10px,1vw,13px)}.responsive-file-cards .files-table th,.responsive-file-cards .file-card-row>td{min-width:0;overflow:hidden;padding-right:clamp(2px,.55vw,8px);padding-left:clamp(2px,.55vw,8px);text-overflow:ellipsis;white-space:nowrap}.responsive-file-cards .files-table th{font-size:clamp(9px,.9vw,12px)}.responsive-file-cards .card-title .model-name-link{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.responsive-file-cards .card-section .model-section-select{width:100%;min-width:0;max-width:100%}.responsive-file-cards .card-cache .badge,.responsive-file-cards .card-cache>div{max-width:100%;overflow:visible;text-overflow:clip}.responsive-file-cards .card-cache>div{width:100%}.responsive-file-cards .card-actions .file-actions{flex-wrap:nowrap;gap:clamp(2px,.4vw,6px)}.responsive-file-cards .card-actions .tiny{min-width:0;overflow:hidden;padding-right:clamp(3px,.6vw,10px);padding-left:clamp(3px,.6vw,10px);text-overflow:ellipsis}.files-table{width:100%;border-collapse:collapse;font-size:13px}.files-table th,.files-table td{padding:9px 8px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.files-table th{color:var(--muted);font-weight:500;font-size:12px}.files-table tr:last-child td{border-bottom:none}.file-name{font-weight:600;color:var(--text)}.model-name-link{border:none;background:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:left;font-weight:600}.model-name-link:hover{color:var(--brand);text-decoration:underline}.file-version{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid #f0cba8;background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:600}.version-history-btn{cursor:pointer;font-family:inherit}.version-history-btn:hover{background:#fff3e6;border-color:#e9b57c}.file-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.proj-download-btn{text-decoration:none}.file-card-action-icon{display:none}.model-section-select{width:72px;min-width:72px}.tiny{border:1px solid var(--border);border-radius:7px;padding:5px 10px;background:#fff;font-size:12px;color:var(--muted);cursor:pointer;transition:.12s}.tiny:hover{color:var(--text);border-color:#c8c0b8}.open-direct-btn{border-color:#f0cba8;background:var(--brand-soft);color:var(--brand)}.open-direct-btn:hover{border-color:#e0b898;color:var(--brand-dark)}.kv{display:grid;gap:10px;font-size:14px}.project-properties{grid-template-columns:repeat(2,minmax(0,1fr))}.project-property{min-width:0;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fbfaf8}.project-property--wide{grid-column:1 / -1}.kv .k{margin-bottom:5px;color:var(--muted);font-size:12px;font-weight:500}.kv .v{min-width:0;color:var(--text);line-height:1.45;overflow-wrap:anywhere}.tflex-folder-modal-label{font-size:13px;font-weight:600;color:var(--text)}.tflex-folder-modal-hint{margin:0;font-size:12px;color:var(--muted);line-height:1.45}.tflex-head{margin-bottom:14px}.tflex-title{font-size:15px;font-weight:650;color:var(--text)}.tflex-sub{margin-top:4px;font-size:12px;color:var(--muted)}.tflex-tree{display:grid;gap:10px}.tflex-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:8px}.tflex-folder-actions-hint{margin:0 0 12px;padding:8px 12px;font-size:12px;line-height:1.45;color:var(--text);background:#faf6f0;border:1px solid #e8dfd4;border-radius:8px}.tflex-toolbar-left{display:flex;align-items:center;gap:8px}.tflex-delete-folder-btn{border-color:#f1c4c4;color:var(--danger)}.tflex-delete-folder-btn:hover{border-color:#e49b9b;background:var(--danger-bg)}.tflex-delete-folder-btn:disabled{opacity:.55;cursor:not-allowed}.tflex-delete-folder-btn:disabled:hover{background:transparent;border-color:#f1c4c4}.tflex-toolbar-right{display:flex;align-items:center;gap:8px}.tflex-folder-select{width:190px;height:34px;margin:0}.tflex-files-search{width:280px;margin:0}.tflex-layout{display:grid;grid-template-columns:280px 1fr;gap:12px}.tflex-folders-list{border:1px solid var(--border);border-radius:10px;background:#fbfaf8;overflow:hidden}.tflex-folder-empty{padding:14px 12px;font-size:13px;color:var(--muted);line-height:1.45}.tflex-folder-row{display:flex;align-items:stretch;border-top:1px solid #ece8e2}.tflex-folder-row:first-child{border-top:none}.tflex-folder-item{flex:1;min-width:0;border:none;background:transparent;display:flex;align-items:center;gap:8px;padding:10px 12px;text-align:left;color:var(--text);cursor:pointer}.tflex-folder-toggle{width:18px;height:18px;flex-shrink:0;border:none;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;line-height:18px;padding:0}.tflex-folder-toggle:hover{background:#e6782a1f;color:var(--brand)}.tflex-folder-toggle-spacer{display:inline-block;cursor:default}.tflex-folder-toggle-spacer:hover{background:transparent;color:var(--muted)}.tflex-folder-row-del{flex-shrink:0;width:36px;border:none;border-left:1px solid #ece8e2;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0}.tflex-folder-row-del:hover{color:var(--danger);background:#c530300f}.tflex-folder-item.active{background:var(--brand-soft);box-shadow:inset 2px 0 0 var(--brand)}.tflex-folder-item:hover{background:#f4efe9}.tflex-folder-item-name{font-size:13px;font-weight:600}.tflex-folder-item-count{margin-left:auto;font-size:11px;color:var(--muted)}.tflex-empty{padding:14px;color:var(--muted);font-size:12px}.tflex-selected-folder-line{display:flex;align-items:center;gap:8px;margin-bottom:8px}.tflex-selected-label{font-size:12px;color:var(--muted)}.tflex-selected-name{font-size:13px;font-weight:600;color:var(--brand-dark);background:var(--brand-soft);border:1px solid #f0cba8;border-radius:999px;padding:2px 10px}.tflex-folder{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fbfaf8}.tflex-folder-row{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);background:#f6f3ef}.tflex-folder-icon{font-size:14px}.tflex-folder-name{font-size:13px;font-weight:600;color:var(--text)}.tflex-folder-count{margin-left:auto;font-size:11px;color:var(--muted)}.tflex-files{display:grid;gap:0}.tflex-file-row{display:flex;align-items:center;gap:8px;padding:9px 12px;font-size:13px;color:var(--text);border-top:1px solid #ece8e2}.tflex-file-row:first-child{border-top:none}.tflex-file-icon{font-size:12px}.passport{margin-top:22px}.passport-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:4px}.passport-title{margin:0;font-size:17px;font-weight:700}.passport-sub{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.passport-section{margin-top:18px}.passport-section-title{margin:0 0 8px;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.passport-empty{color:var(--muted);font-style:italic}.passport .files-search{width:100%;min-width:0;box-sizing:border-box}.passport-label{display:block}.passport-input-row{display:flex;align-items:center;gap:8px}.passport-unit{flex:none;color:var(--muted);font-size:12px;white-space:nowrap}.passport-hint{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.4}.passport-checks{display:flex;flex-wrap:wrap;gap:8px 18px}.passport-check{display:inline-flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}.passport-actions{position:sticky;bottom:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:18px;padding:12px 0;border-top:1px solid var(--border);background:#fff}.passport-actions-note{color:var(--muted);font-size:12px}.passport-status{margin:6px 0 0;color:var(--ok);font-size:13px;font-weight:500}.passport-status.is-error{color:var(--danger)}.passport-actions .passport-status{flex-basis:100%;margin:0}.settings-section{margin-bottom:22px}.settings-section h3{font-size:15px;margin:0 0 8px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);gap:12px}.setting-row label{font-size:14px}.setting-row small{color:var(--muted);font-size:12px}.settings-features-loading{color:var(--muted);font-size:13px;padding:6px 0}.feature-row .feature-warn{display:block;margin-top:6px;color:#b54708;background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;padding:6px 8px;font-size:11.5px;line-height:1.4;max-width:560px}.switch{position:relative;display:inline-block;width:42px;height:24px;flex:0 0 auto}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background:#cbd2d9;border-radius:24px;transition:background .18s ease}.switch-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .18s ease;box-shadow:0 1px 2px #00000040}.switch input:checked+.switch-slider{background:#27935d}.switch input:checked+.switch-slider:before{transform:translate(18px)}.switch input:disabled+.switch-slider{opacity:.55;cursor:default}#upload-modal,#tflex-folder-modal,#model-modal,#assembly-create-modal,#assembly-edit-modal,#model-versions-modal,#user-edit-modal,#roadmap-modal,#project-modal,#client-modal,#crop-modal,#demo-modal,#model-make-current-modal,#app-notice-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:none;align-items:center;justify-content:center;padding:16px}#upload-modal.open,#tflex-folder-modal.open,#model-modal.open,#assembly-create-modal.open,#assembly-edit-modal.open,#model-versions-modal.open,#user-edit-modal.open,#roadmap-modal.open,#project-modal.open,#client-modal.open,#crop-modal.open,#demo-modal.open,#model-make-current-modal.open,#app-notice-modal.open{display:flex}#upload-modal .backdrop,#tflex-folder-modal .backdrop,#model-modal .backdrop,#assembly-create-modal .backdrop,#assembly-edit-modal .backdrop,#model-versions-modal .backdrop,#user-edit-modal .backdrop,#roadmap-modal .backdrop,#project-modal .backdrop,#client-modal .backdrop,#crop-modal .backdrop,#demo-modal .backdrop,#model-make-current-modal .backdrop,#app-notice-modal .backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#100e0a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#upload-modal .box,#tflex-folder-modal .box,#model-modal .box,#assembly-create-modal .box,#assembly-edit-modal .box,#model-versions-modal .box,#user-edit-modal .box,#roadmap-modal .box,#project-modal .box,#client-modal .box,#crop-modal .box,#demo-modal .box,#model-make-current-modal .box,#app-notice-modal .box{position:relative;width:min(560px,100%);background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 22px 48px #1e140a2e;overflow:hidden;max-height:90vh;display:flex;flex-direction:column}#upload-modal .modal-head,#tflex-folder-modal .modal-head,#model-modal .modal-head,#assembly-create-modal .modal-head,#assembly-edit-modal .modal-head,#model-versions-modal .modal-head,#user-edit-modal .modal-head,#roadmap-modal .modal-head,#project-modal .modal-head,#client-modal .modal-head,#crop-modal .modal-head,#model-make-current-modal .modal-head,#app-notice-modal .modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--brand-soft);flex-shrink:0}#upload-modal .modal-head h3,#tflex-folder-modal .modal-head h3,#model-modal .modal-head h3,#assembly-create-modal .modal-head h3,#assembly-edit-modal .modal-head h3,#model-versions-modal .modal-head h3,#user-edit-modal .modal-head h3,#roadmap-modal .modal-head h3,#client-modal .modal-head h3,#model-make-current-modal .modal-head h3,#app-notice-modal .modal-head h3,#project-modal .modal-head span,#client-modal .modal-head span,#crop-modal .modal-head span{margin:0;font-size:16px;font-weight:600;color:var(--text)}#upload-modal .close,#tflex-folder-modal .close,#model-modal .close,#assembly-create-modal .close,#assembly-edit-modal .close,#model-versions-modal .close,#user-edit-modal .close,#roadmap-modal .close,#project-modal .close,#client-modal .close,#crop-modal .close,#model-make-current-modal .close,#app-notice-modal .close{border:1px solid var(--border);border-radius:8px;background:#fff;width:30px;height:30px;cursor:pointer;color:var(--muted);font-size:16px;display:grid;place-items:center}#upload-modal .close:hover,#tflex-folder-modal .close:hover,#model-modal .close:hover,#assembly-create-modal .close:hover,#assembly-edit-modal .close:hover,#model-versions-modal .close:hover,#user-edit-modal .close:hover,#roadmap-modal .close:hover,#project-modal .close:hover,#client-modal .close:hover,#crop-modal .close:hover,#model-make-current-modal .close:hover,#app-notice-modal .close:hover{color:var(--text)}#upload-modal .modal-body,#tflex-folder-modal .modal-body,#model-modal .modal-body,#assembly-create-modal .modal-body,#assembly-edit-modal .modal-body,#model-versions-modal .modal-body,#user-edit-modal .modal-body,#roadmap-modal .modal-body,#project-modal .modal-body,#client-modal .modal-body,#crop-modal .modal-body,#demo-modal .modal-body,#model-make-current-modal .modal-body,#app-notice-modal .modal-body{padding:16px;display:grid;gap:12px;overflow-y:auto;overscroll-behavior:contain;flex:1}#user-edit-modal .modal-body>*,#user-edit-modal .modal-body>form>*{min-width:0}.admin-period-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px;min-width:0}.admin-period-col{flex:1 1 140px;min-width:0}#upload-modal .modal-foot,#tflex-folder-modal .modal-foot,#model-modal .modal-foot,#assembly-create-modal .modal-foot,#assembly-edit-modal .modal-foot,#model-versions-modal .modal-foot,#user-edit-modal .modal-foot,#roadmap-modal .modal-foot,#project-modal .modal-foot,#client-modal .modal-foot,#crop-modal .modal-foot,#model-make-current-modal .modal-foot,#app-notice-modal .modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:#fbfaf8;flex-shrink:0}.model-kv{display:grid;grid-template-columns:170px 1fr;gap:8px 10px;font-size:14px}.model-kv .k{color:var(--muted)}.model-kv .v{color:var(--text);font-weight:500}.m-processing-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.m-processing-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.m-processing-title{margin:0;font-size:13px;font-weight:600;color:var(--text);letter-spacing:.02em}.m-processing-refresh{flex-shrink:0;min-width:28px;height:28px;padding:0;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;font-size:15px;line-height:1}.m-processing-refresh:hover{color:var(--brand);border-color:var(--brand)}.m-processing-summary{font-size:12px;color:var(--muted);line-height:1.45;margin-bottom:10px}.proc-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;max-height:220px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:10px;background:#faf9f7}.proc-tl-item{position:relative;padding:10px 12px 10px 28px;border-bottom:1px solid var(--border);font-size:12px}.proc-tl-item:last-child{border-bottom:none}.proc-tl-item:before{content:"";position:absolute;left:11px;top:14px;width:8px;height:8px;border-radius:50%;background:var(--border);border:2px solid #faf9f7}.proc-tl-item.proc-tl-current:before{background:var(--brand);box-shadow:0 0 0 2px #e07b2a40}.proc-tl-item.proc-tl-err:before{background:var(--danger)}.proc-tl-item.proc-tl-done:before{background:var(--ok)}.proc-tl-line1{font-weight:600;color:var(--text);margin-bottom:2px}.proc-tl-meta{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.proc-tl-note{margin-top:4px;font-size:11px;color:var(--warn)}.proc-tl-errtext{margin-top:4px;font-size:11px;color:var(--danger)}.proc-tl-loading,.proc-tl-muted{padding:12px;font-size:12px;color:var(--muted);text-align:center}#model-make-current-modal,#app-notice-modal{z-index:210}#model-make-current-modal .modal-body p,#app-notice-modal .modal-body p{margin:0;line-height:1.5;overflow-wrap:anywhere}.models-page{display:none}.models-page.active{display:block}.upload-dropzone{position:relative;border:2px dashed var(--border);border-radius:12px;padding:32px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:#faf9f7}.upload-dropzone:hover,.upload-dropzone.drag-over{border-color:var(--brand);background:var(--brand-soft)}.upload-dropzone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.upload-icon{font-size:36px;margin-bottom:8px}.upload-label{font-size:14px;color:var(--muted);line-height:1.5}.upload-label small{font-size:12px}.upload-file-list{list-style:none;margin:8px 0 0;padding:0}.upload-file-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:6px 4px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text)}.upload-file-item:last-child{border-bottom:none}.upload-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-file-size{color:var(--muted);font-size:12px;margin-left:10px;white-space:nowrap}.upload-file-note{flex-basis:100%;margin-top:2px;font-size:11px;color:var(--muted)}.upload-file-note.ok{color:var(--ok)}.upload-file-note.warn{color:var(--warn)}.upload-stp-source-wrap{display:grid;gap:6px;font-size:13px;color:var(--text);font-weight:500}.upload-stp-source-select{width:100%;margin:0}.progress-bar-bg{height:8px;background:var(--border);border-radius:999px;overflow:hidden;margin-top:8px}.progress-bar{height:100%;background:var(--brand);border-radius:999px;transition:width .2s}.progress-label{font-size:13px;color:var(--muted);margin-top:4px}.upload-error{color:#c53030;font-size:13px;background:var(--danger-bg);border:1px solid #f5c6c6;padding:8px 10px;border-radius:8px;margin-top:8px}.delete-btn{border:1px solid #f5c6c6;background:#fff;color:#c53030;font-size:12px;border-radius:7px;padding:5px 9px;cursor:pointer;transition:.12s}.delete-btn:hover{background:var(--danger-bg)}.models-actions{display:flex;gap:8px;flex-shrink:0}.models-tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--border);padding-bottom:0}.models-tab{background:none;border:none;border-bottom:3px solid transparent;padding:8px 16px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;border-radius:0;margin-bottom:-1px;transition:color .15s,border-color .15s}.models-tab:hover{color:var(--text)}.models-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.assemblies-list{display:flex;flex-direction:column;gap:12px}.assemblies-list.responsive-file-cards{overflow:visible}.assembly-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title count" "description updates" "author date" "actions actions";gap:8px 12px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 18px;transition:box-shadow .15s}.assembly-card:hover{box-shadow:0 2px 10px #00000012}.global-assembly-cards .card-title{grid-area:title;font-size:15px;font-weight:600;color:var(--text)}.global-assembly-cards .card-count{grid-area:count;align-self:start;padding:3px 7px;border-radius:8px;background:#f5f1e7;font-size:11px;font-weight:600;white-space:nowrap}.global-assembly-cards .card-description{grid-area:description;font-size:12px;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}.global-assembly-cards .card-updates{grid-area:updates;justify-self:end;align-self:start}.global-assembly-cards .card-author{grid-area:author}.global-assembly-cards .card-date{grid-area:date;justify-self:end}.global-assembly-cards .card-author,.global-assembly-cards .card-date{font-size:12px;color:var(--muted);white-space:nowrap}.global-assembly-cards .card-actions{grid-area:actions;margin-top:3px;padding-top:10px;border-top:1px solid var(--border)}.global-assembly-cards .card-actions .file-actions{width:100%;flex-wrap:nowrap}.assembly-card-models{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.assembly-file-tag{background:var(--brand-soft);border:1px solid #f2c99e;color:var(--brand-dark);border-radius:6px;padding:3px 9px;font-size:11px;font-weight:500;white-space:nowrap}.assembly-model-checklist{max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;padding:6px 0;background:#faf9f7}.assembly-check-row{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:13px;cursor:pointer;transition:background .1s}.assembly-check-row:hover{background:#f4f3f1}.assembly-check-row input[type=checkbox]{flex-shrink:0}.assembly-check-meta{margin-left:auto;color:var(--muted);font-size:11px;display:flex;align-items:center;gap:4px;white-space:nowrap}.assembly-model-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px;align-items:center}.mobile-menu-toggle,.mobile-nav-backdrop{display:none}.mobile-nav-backdrop[hidden]{display:none!important}@media (max-width: 1200px){.app-shell{grid-template-columns:210px 1fr}}@media (max-width: 1100px){.app-shell{grid-template-columns:1fr}body.mobile-nav-open{overflow:hidden}.mobile-menu-toggle{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));z-index:110;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--border);border-radius:11px;background:var(--panel);color:var(--text);box-shadow:0 4px 14px #0000001f;cursor:pointer}.mobile-menu-toggle:hover{color:var(--brand-dark);border-color:#c8b8a8}.mobile-menu-toggle:focus-visible{outline:3px solid rgba(224,123,42,.28);outline-offset:2px}body.dashboard-route-pending .mobile-menu-toggle{visibility:hidden}.mobile-nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:block;background:#1a171461}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:100;width:min(286px,calc(100vw - 52px));height:100dvh;max-height:100dvh;grid-template-rows:auto auto 1fr;align-content:start;padding:calc(76px + env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));gap:4px;border-right:1px solid var(--border);border-bottom:none;box-shadow:8px 0 28px #00000024;overflow-y:auto;transform:translate(-105%);transition:transform .2s ease}.sidebar .project-chip{padding:4px 6px 2px}body.mobile-nav-open .sidebar{transform:translate(0)}.topbar{padding-left:70px}.topbar-right{--tr-right: 14px;right:var(--tr-right)}.projects-grid{grid-template-columns:repeat(2,minmax(240px,1fr))}}@media (max-width: 760px){.projects-grid{grid-template-columns:1fr}.search{width:100%}.toolbar{flex-direction:column;gap:10px}.files-search{width:100%}.model-kv{grid-template-columns:1fr;row-gap:4px}.files-toolbar{flex-wrap:wrap}.email-admin-grid{grid-template-columns:1fr}.container{--pad-x: 14px;--pad-b: 28px;padding:14px var(--pad-x) var(--pad-b)}.topbar{padding-right:14px}.files-table-wrap,.spec-table-wrap{overflow-x:auto}.files-table{min-width:560px}.tflex-layout{grid-template-columns:1fr}.tflex-files-search,.tflex-folder-select{width:100%}.tflex-toolbar-right{width:100%;flex-wrap:wrap}.property-filters-head,.property-filter-default{align-items:stretch;flex-direction:column}.property-filter-row{grid-template-columns:minmax(0,1fr) auto}.property-filter-row>div:first-child{grid-column:1 / -1}.box{padding:18px 16px!important}.cache-fab{right:12px;bottom:44px}.made-by{right:12px;bottom:6px;font-size:10px}}@media (min-width: 761px),(orientation: landscape){.responsive-file-cards .files-table .file-card-row .card-actions .file-actions{flex-direction:column;align-items:stretch}.responsive-file-cards .files-table .file-card-row .card-actions .file-actions>.tiny{display:flex;flex:none;align-items:center;justify-content:center;width:100%;height:auto;box-sizing:border-box;gap:4px;overflow:visible;white-space:normal;text-overflow:clip}.responsive-file-cards .files-table .file-card-row .card-actions .file-card-action-label{display:inline}.responsive-file-cards .files-table .file-card-row .card-actions .file-card-primary>span{display:inline}}@media (max-width: 1300px) and (orientation: landscape){.project-model-cards .card-cache>div .badge{display:inline-block;max-width:100%;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2}.responsive-file-cards .file-card-action-icon{display:block;flex:none}.responsive-file-cards .file-card-primary{display:flex;flex:1 1 auto;align-items:center;justify-content:center;gap:3px;min-width:0;padding:4px}.responsive-file-cards .file-card-primary>span{overflow:hidden;text-overflow:ellipsis}.responsive-file-cards .file-card-icon-btn{display:grid;flex:0 1 30px;place-items:center;width:30px;min-width:26px;height:30px;padding:0}.responsive-file-cards .file-card-icon-btn .file-card-action-label{display:none}}@media (max-width: 900px) and (orientation: landscape){.responsive-file-cards .file-card-primary span{display:none}.responsive-file-cards .file-card-primary{flex:0 1 30px;width:30px;min-width:26px;height:30px;padding:0}}#assembly-edit-modal .modal-body,#assembly-edit-modal .modal-body form>*{min-width:0;max-width:100%}#assembly-edit-modal .admin-form-row>.files-search{width:100%;min-width:0;max-width:100%;box-sizing:border-box}@media (max-width: 760px) and (orientation: portrait){.responsive-file-cards{overflow-x:visible}.responsive-file-cards .files-table,.responsive-file-cards .files-table tbody{display:block;width:100%;min-width:0}.responsive-file-cards .files-table thead{display:none}.responsive-file-cards .files-table tr{width:100%}.responsive-file-cards .file-card-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;column-gap:8px;row-gap:7px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:10px;box-shadow:0 2px 8px #26201b0d}.responsive-file-cards .file-card-model-row{grid-template-columns:fit-content(38px) 72px minmax(0,1fr) max-content;column-gap:4px;grid-template-areas:"title title title version" "author author date date" "type section cache size" "actions actions actions actions"}.project-model-cards .file-card-model-row.has-filter-column{grid-template-areas:"title title title version" "author author date date" "type section cache size" "filter filter filter filter" "actions actions actions actions"}.responsive-file-cards .file-card-assembly-row{grid-template-areas:"title title title count" "description description description updates" "author date date date" "actions actions actions actions"}.responsive-file-cards .file-card-assembly-row.has-filter-column{grid-template-areas:"title title title count" "description description description updates" "author date date date" "filter filter filter filter" "actions actions actions actions"}.responsive-file-cards .file-card-tflex-row{grid-template-areas:"title title title size" "author date date date" "type cache cache cache" "actions actions actions actions"}.responsive-file-cards .file-card-row>td{display:block;min-width:0;overflow:visible;padding:0;border:none;text-align:left;text-overflow:clip;white-space:normal}.responsive-file-cards .card-title{grid-area:title}.responsive-file-cards .card-title .model-name-link{width:100%;font-size:15px;line-height:1.3;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.responsive-file-cards .card-version{grid-area:version;justify-self:end;align-self:start}.responsive-file-cards .card-count{grid-area:count;justify-self:end;align-self:start}.responsive-file-cards .card-description{grid-area:description;color:var(--muted);font-size:12px;line-height:1.35;overflow-wrap:anywhere}.responsive-file-cards .card-updates{grid-area:updates;justify-self:end;align-self:start}.responsive-file-cards .card-author{grid-area:author;overflow:hidden;text-overflow:ellipsis}.responsive-file-cards .card-date{grid-area:date}.responsive-file-cards .card-author,.responsive-file-cards .card-date{color:var(--muted);font-size:12px;white-space:nowrap;line-height:1.35}.responsive-file-cards .card-date:before{content:"·";margin-right:5px}.responsive-file-cards .card-type{grid-area:type;justify-self:start;align-self:start;width:fit-content;padding:3px 5px!important;border-radius:8px;background:#edf5ff;color:#15549a;font-size:11px;font-weight:600}.responsive-file-cards .card-section{grid-area:section;align-self:start}.project-model-cards .card-filter,.project-assembly-cards .card-filter{grid-area:filter;min-width:0}.project-model-cards .card-filter .model-filter-select,.project-assembly-cards .card-filter .model-filter-select{width:100%;height:34px;padding:4px 30px 4px 9px;font-size:12px}.responsive-file-cards .card-section .model-section-select{width:auto;min-width:72px;max-width:100%;height:24px;padding:1px 22px 1px 8px!important;border-radius:8px;background-color:#f2efff;color:#4a3b8f;font-size:11px!important;font-weight:600}.responsive-file-cards .card-section .model-section-badge{display:inline-block;padding:3px 8px;border-radius:8px;background:#f2efff;color:#4a3b8f;font-size:11px;font-weight:600}.responsive-file-cards .card-cache{grid-area:cache;display:flex!important;min-width:0;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:4px}.responsive-file-cards .card-cache>div{display:flex;overflow:visible;margin-top:0!important}.responsive-file-cards .card-cache .badge{max-width:none;overflow:visible;padding:3px 7px;font-size:10px;text-overflow:clip}.responsive-file-cards .card-size,.responsive-file-cards .card-count{align-self:start;padding:3px 7px!important;border-radius:8px;background:#f5f1e7;color:var(--text);font-size:11px;font-weight:600;white-space:nowrap}.responsive-file-cards .card-size{grid-area:size}.responsive-file-cards .card-actions{grid-area:actions;margin-top:3px;padding-top:10px!important;border-top:1px solid var(--border)!important}.responsive-file-cards .card-actions .file-actions{width:100%;flex-wrap:nowrap}.responsive-file-cards .file-card-primary{display:flex;flex:1 1 auto;align-items:center;justify-content:center;gap:7px;min-width:0;height:46px;color:var(--text);font-size:13px;font-weight:600}.responsive-file-cards .file-card-icon-btn{display:grid;flex:0 0 46px;place-items:center;width:46px;height:46px;padding:0;color:inherit;text-decoration:none}.responsive-file-cards .file-card-action-icon{display:block}.responsive-file-cards .file-card-icon-btn .file-card-action-label{display:none}.responsive-file-cards .files-table td[colspan]{display:block;width:100%;box-sizing:border-box;text-align:center!important}#assembly-edit-modal .modal-body{overflow-x:hidden}#assembly-edit-modal .assembly-edit-models-table,#assembly-edit-modal .assembly-edit-models-table tbody{display:block;width:100%;min-width:0}#assembly-edit-modal .assembly-edit-models-table thead{display:none}#assembly-edit-modal .assembly-edit-models-table tbody>tr{width:100%}#assembly-edit-modal .assembly-edit-model-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name name" "version size" "actions actions";gap:9px 12px;margin-bottom:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fff}#assembly-edit-modal .assembly-edit-model-row>td{display:block;min-width:0;overflow:visible;padding:0;border:none;overflow-wrap:anywhere;white-space:normal}#assembly-edit-modal .assembly-edit-model-name{grid-area:name;font-weight:600;line-height:1.35}#assembly-edit-modal .assembly-edit-model-version{grid-area:version}#assembly-edit-modal .assembly-edit-model-size{grid-area:size;justify-self:end}#assembly-edit-modal .assembly-edit-model-version,#assembly-edit-modal .assembly-edit-model-size{color:var(--muted);font-size:12px}#assembly-edit-modal .assembly-edit-model-version .badge{max-width:100%;white-space:normal;overflow-wrap:anywhere}#assembly-edit-modal .assembly-edit-model-version:before,#assembly-edit-modal .assembly-edit-model-size:before{content:attr(data-label) ": "}#assembly-edit-modal .assembly-edit-model-actions{grid-area:actions;padding-top:9px!important;border-top:1px solid var(--border)!important}#assembly-edit-modal .assembly-edit-model-actions .assembly-remove-model-btn{width:100%;min-height:42px}#assembly-edit-modal .assembly-edit-models-table td[colspan]{display:block;width:100%;box-sizing:border-box}}@media (max-width: 340px) and (orientation: portrait){.responsive-file-cards .file-card-model-row{grid-template-areas:"title title title version" "author author date date" "type section size size" "cache cache cache cache" "actions actions actions actions"}.project-model-cards .file-card-model-row.has-filter-column{grid-template-areas:"title title title version" "author author date date" "type section size size" "cache cache cache cache" "filter filter filter filter" "actions actions actions actions"}.responsive-file-cards .file-card-model-row .card-size{justify-self:end}}@media (max-width: 760px) and (orientation: portrait){.admin-cards{overflow:visible!important;max-height:none!important}.admin-cards table,.admin-cards tbody,.admin-cards tr{display:block;width:100%;min-width:0}.admin-cards thead{display:none}.admin-cards .admin-card-row{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px 16px;margin-bottom:10px;box-shadow:0 2px 8px #26201b0d}.admin-cards .admin-card-row>td.card-actions{order:1}.admin-cards .admin-card-row>td.admin-user-expand-cell{order:2;border-bottom:none;padding-top:8px}.admin-cards .admin-card-row>td{display:flex;width:100%;box-sizing:border-box;align-items:center;justify-content:space-between;gap:12px;min-height:30px;padding:6px 0;border:none;border-bottom:1px solid var(--border);text-align:right;white-space:normal}.admin-cards .admin-card-row>td.analytics-event{width:100%;min-width:0;max-width:100%}.admin-cards .admin-card-row>td.analytics-event .analytics-event-inner{align-items:flex-end;margin-right:0;text-align:right}.admin-cards .admin-card-row>td:last-child{border-bottom:none}.admin-cards .admin-card-row>td:before{content:attr(data-label);flex:0 0 auto;max-width:62%;color:var(--muted);font-size:12px;font-weight:500;text-align:left;white-space:normal}.admin-cards .admin-card-row>td.card-title{display:block;padding:0 0 8px;border-bottom:1px solid var(--border);margin-bottom:4px;text-align:left;font-weight:600}.admin-cards .admin-card-row>td.card-title:before{content:none}.admin-cards .admin-card-row>td.card-actions{display:block;padding-top:10px;border-bottom:none;text-align:left}.admin-cards .admin-card-row>td.card-actions:before{content:none}.admin-cards .admin-card-row>td.admin-mx-cell{min-height:34px}.admin-cards td[colspan]:not(.admin-user-expand-cell-full){display:block;width:100%;box-sizing:border-box;padding:14px 0;text-align:center!important}.admin-cards td[colspan]:not(.admin-user-expand-cell-full):before{content:none}.admin-cards [hidden]{display:none!important}.admin-cards .admin-user-expand-row:not([hidden]){display:block;margin:-6px 0 10px}.admin-cards .admin-user-expand-cell-full{display:block;width:100%;box-sizing:border-box}}@media (max-width: 480px){.project-properties{grid-template-columns:1fr}.project-property--wide{grid-column:auto}.topbar{padding-left:62px;padding-right:8px}.topbar-right{gap:6px;min-width:0;--tr-right: 8px;right:var(--tr-right)}.guide-topbar-btn{height:34px;gap:4px;padding:0 8px;font-size:12px}.topbar-user-card{gap:4px;min-width:0;padding:4px 0 4px 2px;margin-left:0}.topbar-user-card .user-avatar{width:26px;height:26px;font-size:10px}.topbar-user-card .user-info{min-width:32px}.topbar-user-card .user-name{font-size:11px}.topbar-user-card .user-role{font-size:9px}.topbar-user-card .logout-btn{padding:4px 2px;font-size:10px}.side-nav a{padding:7px 8px;font-size:12px}.project-chip strong{font-size:13px}.container--wide .admin-page .admin-form-row{flex-direction:column;align-items:stretch;gap:6px;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.container--wide .admin-page .admin-form-row>.files-search,.container--wide .admin-page .admin-form-row>select.files-search{flex:0 1 auto;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box}.container--wide .admin-page .admin-form-row>div{width:100%;min-width:0}.container--wide .admin-page .admin-form-row>div>.files-search{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box}.container--wide .admin-page .admin-form-row>.admin-ms-filter,.container--wide .admin-page .admin-form-row>.admin-ms-filter>summary{width:100%}.container--wide .admin-page .admin-form-row>.admin-ms-filter>.admin-ms-menu{min-width:100%;max-width:100%}.container--wide .admin-page .admin-users-range{flex-wrap:wrap;white-space:normal}.container--wide .admin-page .admin-users-range>.admin-users-range-label{flex:1 0 100%}.container--wide .admin-page .admin-users-range>.admin-users-date{flex:1 1 0;width:auto!important;min-width:0!important}.projects-grid{gap:12px}.setting-row{flex-direction:column;align-items:flex-start;gap:4px}}@media (max-width: 360px){.guide-topbar-btn{width:34px;padding:0;gap:0;font-size:0;justify-content:center}}@property --title-h{syntax: "<length>"; inherits: true; initial-value: 0px;}@property --tabs-h{syntax: "<length>"; inherits: true; initial-value: 0px;}@media (max-width: 760px) and (orientation: portrait){#models-page,#project-detail{transition:--title-h .14s ease,--tabs-h .14s ease}#models-page{--title-h: 46px;--tabs-h: 40px}#models-page[data-cards-condensed]{--title-h: 40px;--tabs-h: 32px}#project-detail{--title-h: 36px;--tabs-h: 44px}#project-detail[data-cards-condensed]{--title-h: 27px;--tabs-h: 34px}#models-page .toolbar{display:contents}#models-page .models-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;position:sticky;top:var(--topbar-h);z-index:5;align-items:center;height:var(--title-h);padding-top:10px;margin-bottom:18px;overflow:visible;background:var(--bg)}#models-page .models-actions .btn{width:100%;min-width:0;padding:0 4px;line-height:1.1;white-space:normal;transition:background .12s,border-color .12s,height .14s ease,padding .14s ease,font-size .14s ease}#models-page[data-cards-condensed] .models-actions .btn{height:30px;padding:0 4px;font-size:12px}#project-detail .project-title{position:sticky;top:var(--topbar-h);z-index:5;display:flex;align-items:center;gap:8px;height:var(--title-h);background:var(--bg);transition:font-size .14s ease}#project-detail[data-cards-condensed] .project-title{font-size:16px}#project-detail .project-title-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#project-detail .project-title .badge{flex:none}#models-page .models-tabs,#project-detail .tabs{position:sticky;top:calc(var(--topbar-h) + var(--title-h));z-index:4;height:var(--tabs-h);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:var(--bg)}#models-page .models-tabs::-webkit-scrollbar,#project-detail .tabs::-webkit-scrollbar{display:none}#models-page .models-tabs{align-items:stretch}#project-detail .tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:4px;overflow:visible}#models-page .models-tab,#project-detail .tab{flex:none;white-space:nowrap}#models-page .models-tab{transition:color .15s,border-color .15s,padding .14s ease,font-size .14s ease}#models-page[data-cards-condensed] .models-tab{padding:4px 11px;font-size:11px}#project-detail .tab{width:100%;min-width:0;padding:4px 3px;font-size:11px;line-height:1.1;white-space:normal;overflow-wrap:anywhere}#project-detail[data-cards-condensed] .tab{padding:3px;font-size:10px}#models-page .models-tab-panel>.files-toolbar,#project-detail #tab-viewer>.files-toolbar,#project-detail #tab-assemblies>.files-toolbar{position:sticky;top:calc(var(--topbar-h) + var(--title-h) + var(--tabs-h));z-index:3;margin-top:-4px;padding-top:4px;margin-bottom:0;padding-bottom:12px;background:#fff}}.cache-fab{position:fixed;bottom:52px;right:24px;z-index:1200;display:flex;align-items:center;gap:7px;background:var(--brand);color:#fff;border:none;border-radius:999px;padding:9px 16px 9px 12px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 16px #c8641e59;transition:transform .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.cache-fab:hover{transform:translateY(-2px);box-shadow:0 6px 20px #c8641e73}.cache-fab-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:cache-spin .7s linear infinite;flex-shrink:0}@keyframes cache-spin{to{transform:rotate(360deg)}}.cache-panel{position:fixed;bottom:102px;right:24px;z-index:1200;width:320px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 32px #00000021;overflow:hidden}.cache-panel-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:#faf8f5;border-bottom:1px solid var(--border)}.cache-panel-title{font-size:13px;font-weight:650;color:var(--text)}.cache-panel-close{background:none;border:none;cursor:pointer;font-size:14px;color:var(--muted);padding:0 2px;line-height:1}.cache-panel-close:hover{color:var(--text)}.cache-panel-body{max-height:320px;overflow-y:auto;padding:8px 0}.cache-row{display:flex;align-items:center;gap:9px;padding:7px 14px;font-size:12.5px}.cache-row+.cache-row{border-top:1px solid #f3ede6}.cache-row-icon{flex-shrink:0;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px}.cache-row-icon.active{border:2px solid rgba(200,100,30,.35);border-top-color:var(--brand);animation:cache-spin .7s linear infinite}.cache-row-icon.queued{background:#f0ebe3;color:var(--muted)}.cache-row-icon.done{background:#e7f7ef;color:#2aa86a}.cache-row-icon.error{background:#fdecea;color:#d93025}.cache-row-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.cache-row-status{flex-shrink:0;font-size:11px;color:var(--muted)}.cache-row-cancel{flex-shrink:0;border:1px solid #f1b3a8;background:#fff7f5;color:#b3261e;border-radius:6px;padding:3px 7px;font-size:10.5px;line-height:1.2;cursor:pointer}.cache-row-cancel:hover{background:#fdecea;border-color:#e28a7c}.cache-section-label{padding:5px 14px 2px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.cache-row-active{align-items:flex-start}.cache-row-main{flex:1;min-width:0}.cache-row-phase{font-size:10px;color:var(--muted);margin-top:2px}.cache-progress-bar-bg{height:4px;background:#f0ebe3;border-radius:2px;margin-top:5px;overflow:hidden}.cache-progress-bar{height:100%;background:var(--brand);border-radius:2px;transition:width .3s ease;min-width:4px}.cache-progress-bar-indeterminate{transition:none;background:linear-gradient(90deg,transparent,var(--brand),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:cache-progress-sweep 1.4s linear infinite}@keyframes cache-progress-sweep{0%{background-position:-40% 0}to{background-position:140% 0}}@media (prefers-reduced-motion: reduce){.cache-progress-bar-indeterminate{animation:none;background:var(--brand);opacity:.35}}.proj-filter-bar{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:8px 12px;align-items:end;margin-bottom:16px;padding:14px 16px;background:#faf8f6;border:1px solid var(--border);border-radius:12px}.proj-filter-group{display:flex;flex-direction:column;gap:5px;min-width:0}.proj-filter-group--action{display:flex;flex-direction:column;justify-content:flex-end}.proj-filter-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.proj-filter-clear-btn{width:100%;height:36px;padding:0 12px;font-size:12px;font-weight:500;border-radius:8px;background:#fff;color:var(--brand);border:1px solid #f0cba8;white-space:nowrap;transition:background .15s,color .15s}.proj-filter-clear-btn:hover{background:var(--brand);color:#fff;border-color:var(--brand)}@media (max-width: 1200px){.proj-filter-bar{grid-template-columns:repeat(3,1fr)}.proj-filter-group--action{grid-column:auto}}@media (max-width: 760px){.proj-filter-bar{grid-template-columns:1fr 1fr;padding:10px 12px}}@media (max-width: 480px){.proj-filter-bar{grid-template-columns:1fr}}.cselect{position:relative}.cselect-btn{width:100%;height:36px;padding:0 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit;color:var(--text);background:#fff;cursor:pointer;display:flex;align-items:center;gap:6px;transition:border-color .15s,box-shadow .15s}.cselect-btn:hover{border-color:#c8b8a8}.cselect.open .cselect-btn,.cselect-btn:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #e07b2a1f}.cselect.active .cselect-btn{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.cselect-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.cselect-arrow{flex-shrink:0;color:#a09080;transition:transform .18s}.cselect.open .cselect-arrow{transform:rotate(180deg);color:var(--brand)}.cselect.active .cselect-arrow{color:var(--brand)}.cselect-panel{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;max-width:320px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #0000001c;z-index:300;overflow:hidden;max-height:260px;overflow-y:auto}.cselect-option{padding:9px 14px;font-size:13px;cursor:pointer;transition:background .1s;white-space:nowrap;color:var(--text)}.cselect-option:hover{background:#faf6f2}.cselect-option.selected{color:var(--brand);font-weight:600;background:var(--brand-soft)}.card-role-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.role-tag{display:inline-block;font-size:10px;font-weight:500;padding:2px 7px;border-radius:4px;background:var(--brand-soft);color:var(--brand);border:1px solid #f0cba8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.analytics-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.analytics-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.analytics-kpi{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:4px}.analytics-kpi-card{flex:1 1 160px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 20px;min-width:140px}.analytics-kpi-card--green{border-color:#c8ebd8;background:#f0faf4}.analytics-kpi-card--muted{border-color:#e8e0d8;background:#faf8f6}.analytics-kpi-num{font-size:28px;font-weight:700;color:var(--text);line-height:1}.analytics-kpi-label{font-size:12px;color:var(--muted);margin-top:4px}.analytics-kpi-card--green .analytics-kpi-num{color:var(--ok)}.analytics-table{width:100%;border-collapse:collapse;font-size:13px}.analytics-table th{text-align:left;padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap}.analytics-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.analytics-table tr:last-child td{border-bottom:none}.analytics-table tr:hover td{background:#faf8f5}.analytics-user-cell{display:flex;align-items:center;gap:10px}.analytics-avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.analytics-name{font-weight:500;color:var(--text)}.analytics-email{font-size:11px;color:var(--muted)}.analytics-time{white-space:nowrap}.atm-today{color:var(--ok);font-weight:500}.analytics-event{max-width:260px}.analytics-event-inner{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0;max-width:220px;margin-inline:auto;text-align:center}.analytics-event-text{display:block;width:100%;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}.analytics-section-tag{display:inline-block;font-size:10px;font-weight:500;padding:1px 6px;border-radius:4px;background:#f0f0f8;color:#6060a0;margin-top:3px}.analytics-count{text-align:center;font-variant-numeric:tabular-nums;color:var(--muted)}.analytics-badge-active{background:var(--ok-bg);color:var(--ok);border-color:#c8ebd8}.analytics-badge-idle{background:var(--warn-bg);color:var(--warn);border-color:#f0dfb7}.analytics-badge-inactive{background:#f0f0f0;color:#909090;border-color:#d8d8d8}.analytics-badge-never{background:#fce8e8;color:#c03030;border-color:#f0c0c0}.guide-cell{text-align:center;white-space:nowrap}.guide-cell-done{color:#1a6b2f;font-weight:600;font-size:12px}.guide-cell-done small{font-weight:400;color:#4a9a60}.guide-cell-none{color:var(--muted);font-size:14px}.guide-count-all{font-weight:700;color:#1a6b2f}.guide-count-part{font-weight:600;color:var(--warn)}.guide-count-none{color:#c03030}#guide-analytics-table th:nth-child(n+3),#guide-analytics-table td:nth-child(n+3){text-align:center}#analytics-table th:nth-child(n+3),#analytics-table td:nth-child(n+3){text-align:center}.made-by{position:fixed;bottom:10px;right:24px;z-index:50;font-size:15px;font-weight:400;color:#a08c7880;letter-spacing:.3px;pointer-events:none;-webkit-user-select:none;user-select:none}.made-by span{font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#c8782880}@supports (padding-top: env(safe-area-inset-top)){@media (min-width: 1101px){.sidebar{padding-top:calc(14px + env(safe-area-inset-top));padding-left:calc(12px + env(safe-area-inset-left));padding-bottom:calc(14px + env(safe-area-inset-bottom))}}@media (min-width: 1101px){.container{padding-right:calc(var(--pad-x, 24px) + env(safe-area-inset-right))}}@media (max-width: 1100px){.container{padding-left:calc(var(--pad-x, 24px) + env(safe-area-inset-left));padding-right:calc(var(--pad-x, 24px) + env(safe-area-inset-right));padding-bottom:calc(var(--pad-b, 36px) + env(safe-area-inset-bottom))}.topbar{padding-left:calc(max(12px,env(safe-area-inset-left)) + 58px)}.topbar-right{right:calc(var(--tr-right, 22px) + env(safe-area-inset-right))}}@media (max-width: 480px){.topbar{padding-left:calc(max(12px,env(safe-area-inset-left)) + 50px)}}main.container.container--wide{padding-left:calc(var(--pad-x, 24px) + env(safe-area-inset-left))!important;padding-right:calc(var(--pad-x, 24px) + env(safe-area-inset-right))!important;padding-bottom:calc(var(--pad-b, 36px) + env(safe-area-inset-bottom))!important}}@media (min-width: 768px) and (max-width: 1100px) and (pointer: coarse){.side-nav a{padding:10px 14px;font-size:14px}.search{font-size:14px;padding:10px 14px}.project-card{padding:16px}.project-card .title{font-size:15px}}@media (display-mode: standalone){.app-shell{min-height:100dvh}}.demo-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font-size:14px}.demo-bar-warn,.demo-bar-invalid{border-color:var(--warn);background:var(--warn-bg)}.demo-bar-danger,.demo-bar-expired{border-color:var(--danger);background:var(--danger-bg)}.demo-bar-text{flex:1 1 auto}.demo-bar .demo-link{color:var(--brand);font-weight:600;white-space:nowrap}.demo-bar-close{flex:0 0 auto;padding:0 6px;border:0;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}.demo-bar-close:hover{color:var(--text)}#demo-modal .box{max-width:460px}#demo-modal .modal-body h3{margin:0 0 8px}#demo-modal .modal-body p{margin:0 0 12px}.license-panel .license-row{margin-top:6px;color:var(--muted)}.license-panel-danger .license-row,.license-panel-expired .license-row{color:var(--danger)}.license-panel-warn .license-row,.license-panel-invalid .license-row{color:var(--warn)}.license-panel .demo-link{color:var(--brand)}
