:root{--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--color-bg: #eef2f6;--color-bg-elevated: #ffffff;--color-bg-muted: #f8fafc;--color-bg-sidebar: #0f172a;--color-bg-sidebar-hover: #1e293b;--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #64748b;--color-text-inverse: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-soft: #eff6ff;--color-success: #16a34a;--color-success-soft: #dcfce7;--color-warning: #d97706;--color-warning-soft: #fef3c7;--color-danger: #dc2626;--color-danger-soft: #fee2e2;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 16px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-full: 999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--sidebar-width: 15.5rem;--content-max: 1440px;--topbar-height: 3.25rem}*,*:before,*:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;font-family:var(--font-sans);font-size:.9375rem;line-height:1.5;background:var(--color-bg);color:var(--color-text)}h1,h2,h3,h4,h5,h6{line-height:1.25}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button{cursor:pointer}.empty-state{color:var(--color-text-muted)}.page-title{margin:0 0 var(--space-2);font-size:1.5rem;font-weight:700;color:var(--color-text)}.page-description{margin:0 0 var(--space-6);color:var(--color-text-secondary);max-width:52rem}.page{width:100%;min-width:0}.page h2{margin:0 0 var(--space-2);font-size:1.5rem;font-weight:700;color:var(--color-text)}.app-shell{display:flex;min-height:100vh;background:var(--color-bg)}.sidebar{width:var(--sidebar-width);flex-shrink:0;display:flex;flex-direction:column;background:var(--color-bg-sidebar);color:var(--color-text-inverse);padding:var(--space-5) var(--space-4);position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar__brand{margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid rgba(255,255,255,.08)}.sidebar__brand-title{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.01em;color:#fff}.sidebar__brand-subtitle{margin:var(--space-1) 0 0;font-size:.78rem;color:#94a3b8}.sidebar__nav{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.sidebar__link{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:.7rem .85rem;border:none;border-radius:var(--radius-sm);background:transparent;color:#cbd5e1;font:inherit;font-weight:500;text-align:left;text-decoration:none;cursor:pointer;transition:background-color .15s ease,color .15s ease}.sidebar__link:hover{background:var(--color-bg-sidebar-hover);color:#fff}.sidebar__link--active{background:#2563eb33;color:#fff;box-shadow:inset 3px 0 0 var(--color-primary)}.sidebar__footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid rgba(255,255,255,.08);font-size:.75rem;color:#64748b}.app-shell__main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:flex-end;min-height:var(--topbar-height);padding:var(--space-3) var(--space-6);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:10}.app-main{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.app-main--wide{max-width:none}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}.page-header__main h2{margin:0}.page-header__meta{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:.9rem}.page-header__actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.card-header__actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.card-subtitle{margin:var(--space-1) 0 0;color:var(--color-text-muted)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:var(--space-3);margin-bottom:var(--space-6)}.summary-card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-1)}.summary-card span{color:var(--color-text-muted);font-size:.8125rem;font-weight:500}.summary-card strong{font-size:1.375rem;font-weight:700;color:var(--color-primary)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}@media(max-width:900px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;padding:var(--space-4)}.sidebar__nav{flex-direction:row;flex-wrap:wrap}.sidebar__footer{display:none}.app-main{padding:var(--space-4)}}@media(max-width:640px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card-header{flex-direction:column}}.card,.section-block,.info-card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card--highlight{border-color:#bfdbfe;background:linear-gradient(180deg,#f8fbff,#fff)}.section-block,.info-card{width:100%;min-width:0}.section-block h3,.info-card h3{margin:0 0 var(--space-4);font-size:1.05rem;font-weight:700;color:var(--color-text)}.section-block__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.section-block__header h3{margin-bottom:0}.status-panel{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);padding:.45rem .85rem;border-radius:var(--radius-full);background:var(--color-primary-soft);color:#1e40af;font-size:.8125rem;border:1px solid #bfdbfe}.status-panel strong{font-weight:600}.status-panel--ok{background:var(--color-success-soft);color:#166534;border-color:#bbf7d0}.status-panel--degraded,.status-panel--error{background:var(--color-danger-soft);color:#991b1b;border-color:#fecaca}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.55rem 1rem;border:1px solid transparent;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;line-height:1.25;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--sm{padding:.4rem .75rem;font-size:.8125rem}.btn--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--secondary{background:var(--color-bg-elevated);color:var(--color-text-secondary);border-color:var(--color-border-strong)}.btn--secondary:hover:not(:disabled){background:var(--color-bg-muted);color:var(--color-text)}.btn--ghost{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#bfdbfe}.btn--ghost:hover:not(:disabled){background:#dbeafe}.btn--danger{background:var(--color-bg-elevated);color:var(--color-danger);border-color:#fecaca}.btn--danger:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.link-button,.back-button{background:transparent;border:none;color:var(--color-primary);padding:0;font-weight:600;text-decoration:none;cursor:pointer}.back-button{margin-bottom:var(--space-4)}.inn-form{display:flex;flex-direction:column;gap:var(--space-2)}.inn-form label{font-weight:600;font-size:.875rem;color:var(--color-text-secondary)}.inn-form__row{display:flex;gap:var(--space-3);flex-wrap:wrap}.field-input,.inn-form input,.solution-form input,.solution-form textarea,.eis-panel__row input[type=date]{flex:1;min-width:12rem;padding:.65rem .85rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease}.field-input:focus,.inn-form input:focus,.solution-form input:focus,.solution-form textarea:focus,.eis-panel__row input[type=date]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}.message{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-4);border:1px solid transparent}.message--error{background:var(--color-danger-soft);color:#991b1b;border-color:#fecaca}.message--success{background:var(--color-success-soft);color:#166534;border-color:#bbf7d0}.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;background:#e2e8f0;color:#334155}.badge--active,.badge--active.monitoring{background:var(--color-success-soft);color:#166534}.badge--not_monitored{background:#e2e8f0;color:#475569}.badge--paused,.badge--manual{background:var(--color-warning-soft);color:#92400e}.badge--urgent{background:var(--color-danger-soft);color:#991b1b}.status-badge{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-badge--purchased{background:var(--color-success-soft);color:#166534}.status-badge--planned{background:var(--color-primary-soft);color:#1d4ed8}.status-badge--renewal_planned{background:var(--color-warning-soft);color:#92400e}.status-badge--in_progress{background:#fef3c7;color:#b45309}.solution-map-summary{margin:0 0 var(--space-4);font-size:.875rem;color:var(--color-text-muted)}.new-data-indicator{color:var(--color-primary);font-size:1.1rem;line-height:1}.row--new-data td:first-child{font-weight:600}.info-list,.simple-list{list-style:none;padding:0;margin:0}.info-list li,.simple-list li{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:.9rem}.info-list li:last-child,.simple-list li:last-child{border-bottom:none}.info-list li span{color:var(--color-text-muted)}.solution-form{margin-bottom:var(--space-4);padding:var(--space-4);border:1px solid #bfdbfe;border-radius:var(--radius-md);background:var(--color-primary-soft)}.solution-form h4{margin:0 0 var(--space-4);color:var(--color-text)}.solution-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-3)}.solution-form__full{grid-column:1 / -1}.solution-form__checkbox{display:flex;flex-direction:row;align-items:center;gap:var(--space-2);font-size:.875rem;color:var(--color-text-secondary)}.solution-form label{display:flex;flex-direction:column;gap:var(--space-2);font-size:.875rem;color:var(--color-text-secondary)}.solution-form__actions,.table-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:flex-start}.data-table .table-actions{flex-direction:column;gap:.35rem}.data-table .table-actions .btn--sm{padding:.35rem .55rem;font-size:.75rem}.solution-name-cell{display:flex;align-items:flex-start;gap:var(--space-2);flex-wrap:wrap;min-width:0}.data-table .solution-name-cell{display:block}.data-table .solution-name-cell>span:first-child{display:block;word-break:break-word;overflow-wrap:anywhere}.data-table .solution-name-cell .badge{display:inline-block;margin-top:.25rem}.eis-panel__hint{color:var(--color-text-muted);font-size:.875rem;margin-bottom:var(--space-3)}.eis-panel__form{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.eis-panel__row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.eis-panel__actions{margin-top:var(--space-2)}.plan-row--expanded{background:var(--color-bg-muted)}.plan-positions{padding:var(--space-3) var(--space-2) var(--space-4)}.plan-positions__title{margin:0 0 var(--space-3);font-size:.9375rem;font-weight:600;color:var(--color-text-secondary)}.ib-toggle{display:inline-flex;align-items:center;justify-content:center;margin:0}.ib-toggle input{width:1.05rem;height:1.05rem;margin:0;cursor:pointer;accent-color:var(--color-primary)}.recommendation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.recommendations-section__hint{margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:.9rem}.recommendation-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-bg-muted)}.recommendation-card--urgent{border-color:#fecaca;background:#fef2f2}.recommendation-card--high{border-color:#fde68a;background:#fffbeb}.recommendation-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-2)}.recommendation-card__badges{display:flex;gap:var(--space-2);flex-wrap:wrap}.recommendation-card__message{margin:0 0 var(--space-2);color:var(--color-text-secondary)}.recommendation-card__action{margin:0;font-size:.875rem;font-weight:600;color:var(--color-primary)}.procurement-ai-limits{margin:0 0 var(--space-4);font-size:.8125rem;color:var(--color-text-muted)}.procurement-ai-limits--disabled{color:var(--color-warning)}.procurement-ai-panel{padding:var(--space-3) 0}.procurement-ai-panel__actions{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:flex-start;margin-bottom:var(--space-3)}.ai-prompt-preview-controls{flex:1 1 100%;width:100%}.ai-prompt-preview-controls__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ai-prompt-preview-controls--compact .ai-prompts-preview{margin-top:var(--space-3)}.ai-prompts-preview--inline{margin-top:0}.procurement-ai-panel__result{padding:var(--space-4);border:1px solid #bfdbfe;border-radius:var(--radius-md);background:var(--color-primary-soft);font-size:.9rem}.procurement-ai-panel__result p{margin:0 0 var(--space-2)}.procurement-ai-panel__cache-note{font-size:.8125rem;color:var(--color-success);font-weight:600}.procurement-ai-panel__meta{color:var(--color-text-muted);font-size:.8125rem}.ai-prompt-picker{margin-bottom:var(--space-3)}.ai-prompt-picker label{display:block;margin-bottom:var(--space-1);font-size:.8125rem;color:var(--color-text-muted)}.ai-prompt-picker select{width:100%;max-width:420px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;font-size:.875rem}.ai-prompt-picker__hint{margin:var(--space-2) 0 0;font-size:.8125rem;color:var(--color-text-muted)}.competitor-list{list-style:none;margin:0;padding:0;font-size:.8125rem;line-height:1.45}.competitor-list li{padding:.15rem 0}.competitor-list__item--winner{font-weight:600;color:var(--color-success)}@media(max-width:900px){.info-grid,.solution-form__grid{grid-template-columns:1fr}.eis-panel__row{flex-direction:column;align-items:stretch}}.procurement-ai-panel__multiline{white-space:pre-line}.presale-assistant__badge{font-size:.75rem;color:var(--color-text-muted);background:var(--color-surface-muted, #f3f4f6);padding:.2rem .5rem;border-radius:var(--radius-sm)}.presale-assistant__summary{margin:0 0 var(--space-4);padding:var(--space-4);border-left:4px solid var(--color-primary);background:var(--color-primary-soft);line-height:1.55}.presale-assistant__context{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-4);font-size:.875rem;color:var(--color-text-muted)}.presale-assistant__new-data{color:var(--color-primary);font-weight:600}.presale-assistant__block{margin-bottom:var(--space-4)}.presale-assistant__block h4{margin:0 0 var(--space-2);font-size:.95rem}.presale-assistant__portfolio,.presale-assistant__actions{list-style:none;margin:0;padding:0}.presale-assistant__portfolio li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:.875rem}.presale-assistant__action{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);background:#fff}.presale-assistant__action--urgent{border-color:#fca5a5;background:#fef2f2}.presale-assistant__action--high{border-color:#fcd34d;background:#fffbeb}.presale-assistant__action-head{display:flex;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.presale-assistant__hint{margin:var(--space-2) 0;font-size:.875rem;color:var(--color-text-muted)}.presale-ai-history,.presale-ai-history__changes{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.presale-ai-history h5,.presale-ai-history__changes h5{margin:0 0 var(--space-3)}.presale-ai-history__list,.presale-ai-history__change-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.presale-ai-history__list li{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted, #f9fafb)}.presale-ai-history__meta{display:flex;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2);font-size:.875rem;color:var(--color-text-muted)}.presale-ai-history__change-list li{padding-left:var(--space-3);border-left:3px solid var(--color-primary)}@media(max-width:640px){.summary-grid{grid-template-columns:1fr}}.procurement-number-link{background:transparent;border:none;padding:0;color:var(--color-primary);font-weight:600;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.procurement-number-link:hover{color:var(--color-primary-dark, #1d4ed8)}.procurement-detail-modal{border:none;padding:0;max-width:min(920px,calc(100vw - 2rem));width:100%;background:transparent}.procurement-detail-modal::backdrop{background:#0f172a8c}.procurement-detail-modal__panel{background:var(--color-bg-elevated, #fff);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 24px 48px #0f172a2e;max-height:calc(100vh - 2rem);display:flex;flex-direction:column}.procurement-detail-modal__header{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.procurement-detail-modal__header h3{margin:0;font-size:1.125rem}.procurement-detail-modal__eyebrow{margin:0 0 var(--space-1);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.procurement-detail-modal__subtitle{margin:var(--space-2) 0 0;color:var(--color-text-muted)}.procurement-detail-modal__body{overflow:auto;padding:var(--space-4) var(--space-5) var(--space-5)}.procurement-detail__section{margin-bottom:var(--space-5)}.procurement-detail__section h4{margin:0 0 var(--space-3)}.procurement-detail__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-5);margin:0}.procurement-detail__grid--eis{grid-template-columns:1fr}.procurement-detail__row{display:grid;gap:var(--space-1)}.procurement-detail__row dt{font-size:.8125rem;color:var(--color-text-muted)}.procurement-detail__row dd{margin:0;word-break:break-word}.procurement-detail__description{margin-top:var(--space-4)}.procurement-detail__description p{margin:var(--space-2) 0 0;white-space:pre-wrap}.procurement-detail__link{margin:var(--space-3) 0 0}.procurement-detail__live-note{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:#eff6ff;color:#1d4ed8;font-size:.875rem}.procurement-detail__raw{margin-top:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-muted, #f9fafb)}.procurement-detail__raw summary{cursor:pointer;font-weight:600}.procurement-detail__raw pre{margin:var(--space-3) 0 0;max-height:320px;overflow:auto;font-size:.8125rem;white-space:pre-wrap;word-break:break-word}@media(max-width:720px){.procurement-detail__grid{grid-template-columns:1fr}}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated)}.data-table{width:100%;border-collapse:collapse;table-layout:auto;font-size:.875rem}.data-table th,.data-table td{padding:.65rem .75rem;border-bottom:1px solid var(--color-border);vertical-align:top;text-align:left}.data-table thead th{position:sticky;top:0;z-index:1;background:var(--color-bg-muted);color:var(--color-text-secondary);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;vertical-align:middle}.data-table tbody tr:hover{background:#f8fafc}.data-table tbody tr:last-child td{border-bottom:none}.data-table td{word-break:break-word;overflow-wrap:break-word;color:var(--color-text)}.data-table--compact th,.data-table--compact td{padding:.5rem .6rem}.data-table--wide,.data-table--layout-fixed:not(.data-table--resizable){table-layout:fixed;width:100%}.data-table--wide{min-width:72rem}.data-table--nested-wide{min-width:54rem}.data-table--nested-wide th,.data-table--nested-wide td,.data-table--wide th,.data-table--wide td,.data-table--layout-fixed th,.data-table--layout-fixed td{max-width:0}.col-check{width:2.75rem}.col-num{width:4.5rem}.col-date{width:6.25rem}.col-amount{width:7.5rem}.col-link{width:4.75rem}.col-ib{width:2.75rem;text-align:center}.col-actions,.col-status{width:8.5rem}.col-expand{width:2.75rem}.col-source{width:5.5rem}.col-product{width:8rem}.col-category{width:7rem}.data-table col.col-title{width:auto}.data-table col.col-title-primary{width:22%}.data-table col.col-title-secondary{width:14%}.data-table .col-ib,.data-table td.col-ib,.data-table th.col-ib{text-align:center}.data-table td.col-title,.data-table th.col-title,.data-table td.col-title-primary,.data-table th.col-title-primary,.data-table td.col-title-secondary,.data-table th.col-title-secondary{max-width:none;width:auto;min-width:0;word-break:break-word;white-space:normal;overflow-wrap:break-word}.data-table td.col-status,.data-table th.col-status{max-width:none;white-space:normal}.data-table td.col-nowrap,.data-table th.col-nowrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-table td.col-ib,.data-table th.col-ib{overflow:visible;max-width:none}.data-table .table-actions{max-width:none;overflow:visible}.table-actions{min-width:0}.resizable-table{width:100%}.resizable-table__hint{margin:0 0 .5rem;font-size:.75rem;color:var(--color-text-muted)}.data-table--resizable{table-layout:fixed;width:auto}.data-table--resizable.data-table--fill{min-width:100%}.data-table--resizable th,.data-table--resizable td{max-width:none;box-sizing:border-box}.data-table--resizable thead th{position:sticky;top:0;z-index:2;white-space:normal;overflow:hidden;padding-right:.85rem;box-sizing:border-box}.resizable-th__label{display:block;overflow:hidden;text-overflow:ellipsis;line-height:1.35;word-break:break-word}.col-resize-handle{position:absolute;top:0;right:0;width:8px;height:100%;margin:0;padding:0;border:none;background:transparent;cursor:col-resize;touch-action:none}.col-resize-handle:hover{background:#2563eb33}body.col-resize-active{cursor:col-resize!important;-webkit-user-select:none;user-select:none}.cell-wrap{white-space:normal!important;word-break:break-word;overflow-wrap:break-word}.data-table--resizable .cell-wrap{width:100%}.data-table--resizable .solution-name-cell{display:block;width:100%}.data-table--resizable .solution-name-cell>span:first-child{display:block;width:100%;white-space:normal;word-break:break-word;overflow-wrap:break-word}.customer-card-page{--customer-card-tabs-height: 3rem}.customer-card-tabs{position:sticky;top:var(--topbar-height);z-index:8;margin:0 0 var(--space-5);background:color-mix(in srgb,var(--color-bg) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border)}.customer-card-tabs__track{display:flex;flex-wrap:wrap;gap:0;align-items:stretch}.customer-card-tabs__tab{display:inline-flex;align-items:center;gap:.45rem;padding:.85rem 1rem;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--color-text-secondary);font:inherit;font-size:.875rem;font-weight:600;line-height:1.2;white-space:nowrap;text-decoration:none;cursor:pointer;transition:color .15s ease,border-color .15s ease,background-color .15s ease}.customer-card-tabs__tab:hover{color:var(--color-primary);background:#2563eb0a}.customer-card-tabs__tab--active{color:#1d4ed8;border-bottom-color:var(--color-primary);background:#2563eb0f}.customer-card-tabs__count{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;padding:.05rem .35rem;border-radius:var(--radius-full);background:#e2e8f0;color:#334155;font-size:.72rem;font-weight:700}.customer-card-tabs__tab--active .customer-card-tabs__count{background:#dbeafe;color:#1d4ed8}.customer-card-tab-panel{min-height:12rem}.summary-card--jump{cursor:pointer;text-align:left;width:100%;font:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.summary-card--jump:hover{border-color:#93c5fd;box-shadow:var(--shadow-sm),0 0 0 1px #bfdbfe;transform:translateY(-1px)}.summary-card--jump:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb33}.recent-customers{margin-bottom:var(--space-5);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated)}.recent-customers--compact{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.recent-customers__title{margin:0 0 var(--space-3);font-size:.95rem;font-weight:700;color:var(--color-text)}.recent-customers__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.recent-customers__link{display:inline-flex;flex-direction:column;gap:.1rem;padding:.55rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-muted);color:inherit;text-decoration:none;min-width:10rem;max-width:16rem;transition:border-color .15s ease,background-color .15s ease}.recent-customers__link:hover{border-color:#93c5fd;background:var(--color-primary-soft)}.recent-customers__link strong{font-size:.875rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-customers__link span{font-size:.75rem;color:var(--color-text-muted)}.customers-search{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.customers-search label{font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.customers-search__input{max-width:28rem;padding:.65rem .85rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:#fff;font:inherit}.customers-search__meta{margin:0;font-size:.8125rem;color:var(--color-text-muted)}@media(max-width:900px){.customer-card-tabs{top:0}.customer-card-tabs__track{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}}.dev-portal__hero{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem}.dev-portal__release{flex-shrink:0;max-width:320px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:1rem 1.25rem}.dev-portal__release-version{display:block;font-size:1.1rem;font-weight:700;color:#1e3a8a}.dev-portal__release-label{display:inline-block;margin:.25rem 0 .5rem;padding:.15rem .5rem;border-radius:999px;background:#2563eb;color:#fff;font-size:.75rem;font-weight:600}.dev-portal__release time{display:block;color:#64748b;font-size:.85rem;margin-bottom:.5rem}.dev-portal__release p{margin:0;font-size:.9rem;color:#334155;line-height:1.45}.dev-portal__section{margin-bottom:1.5rem}.dev-portal__app-nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.65rem}.dev-portal__app-nav-link{display:block;padding:.75rem .9rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease}.dev-portal__app-nav-link:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.dev-portal__app-nav-title{display:block;font-weight:600;font-size:.9rem;color:var(--color-primary)}.dev-portal__app-nav-hint{display:block;margin-top:.2rem;font-size:.78rem;color:var(--color-text-muted)}.dev-portal__scenario-list{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.5rem;line-height:1.45;color:var(--color-text)}.dev-portal__section-title{margin:0 0 .35rem;color:#1e3a8a}.dev-portal__hint{margin:0 0 1rem;color:#64748b;font-size:.9rem}.dev-portal__hint code,.dev-portal__meta code,.dev-portal__endpoints code,.dev-portal__update code{font-size:.82rem;background:#f1f5f9;padding:.1rem .35rem;border-radius:4px}.dev-portal__scenario{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.5rem}.dev-portal__scenario li{padding-left:.25rem;line-height:1.45}.dev-portal__section--dfd{overflow-x:auto}.dfd__description{margin:0 0 1rem;color:#475569;font-size:.95rem}.dfd__legend{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;list-style:none;margin:0 0 1.25rem;padding:.75rem 1rem;background:#faf5ff;border:1px solid #e9d5ff;border-radius:8px;font-size:.85rem;color:#5b21b6}.dfd__legend li{display:flex;align-items:center;gap:.5rem}.dfd-legend-swatch{width:1.25rem;height:1.25rem;border-radius:4px;flex-shrink:0}.dfd-legend-swatch--entity{background:linear-gradient(135deg,#6d28d9,#7c3aed)}.dfd-legend-swatch--process{background:#ddd6fe;border:1px solid #a78bfa;border-radius:999px}.dfd-legend-swatch--store{background:#fff;border:2px solid #7c3aed;border-right:none;border-radius:0;width:1.5rem}.dfd__canvas{display:flex;flex-direction:column;gap:.5rem;min-width:min(100%,720px);padding:1rem;background:linear-gradient(180deg,#faf5ff,#fff);border:1px solid #e9d5ff;border-radius:12px}.dfd-section{display:flex;flex-direction:column;gap:.65rem;padding:.75rem 0;border-bottom:1px dashed #e9d5ff}.dfd-section:last-child{border-bottom:none;padding-bottom:0}.dfd-section__caption{margin:0;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#7c3aed}.dfd-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem .35rem}.dfd-branches{display:flex;flex-direction:column;gap:.75rem}.dfd-node{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:7.5rem;max-width:11rem;padding:.65rem .85rem;box-shadow:0 2px 8px #5b21b61f}.dfd-node__code{font-size:.72rem;font-weight:700;opacity:.85;margin-bottom:.15rem}.dfd-node__title{font-size:.88rem;font-weight:700;line-height:1.25}.dfd-node__subtitle{font-size:.72rem;opacity:.8;margin-top:.2rem}.dfd-node--entity{background:linear-gradient(135deg,#6d28d9,#7c3aed);color:#fff;border-radius:6px;min-height:3rem}.dfd-node--process{background:#ede9fe;color:#4c1d95;border:2px solid #a78bfa;border-radius:999px;min-height:4.25rem}.dfd-node--store{flex-direction:row;align-items:stretch;padding:0;background:#fff;border:2px solid #7c3aed;border-right:none;border-radius:0;min-height:3.5rem;box-shadow:2px 2px 6px #5b21b61a}.dfd-node--store .dfd-node__code{display:flex;align-items:center;justify-content:center;min-width:2rem;padding:.5rem;background:#f5f3ff;border-right:2px solid #7c3aed;color:#5b21b6;margin-bottom:0}.dfd-node__store-body{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:.5rem .85rem .5rem .65rem;text-align:left}.dfd-arrow{display:flex;flex-direction:column;align-items:center;gap:.15rem;min-width:4.5rem;color:#6d28d9}.dfd-arrow--vertical{min-width:auto;width:100%;padding:.15rem 0}.dfd-arrow__label{font-size:.72rem;font-weight:600;text-align:center;line-height:1.2;max-width:7rem}.dfd-arrow__line{position:relative;display:block;width:2.5rem;height:2px;background:#a78bfa}.dfd-arrow__line:after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);border:5px solid transparent;border-left-color:#a78bfa}.dfd-arrow--vertical .dfd-arrow__line{width:2px;height:1.25rem}.dfd-arrow--vertical .dfd-arrow__line:after{right:auto;left:50%;top:auto;bottom:-1px;transform:translate(-50%);border:5px solid transparent;border-top-color:#a78bfa;border-left-color:transparent}.interactions__description{margin:0 0 1rem;color:#475569;font-size:.95rem}.interactions__chain h4{margin:0 0 .75rem;color:#1e3a8a;font-size:.95rem}.interactions__chain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.interactions__chain-list li{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;padding:.5rem .65rem;background:#f8fafc;border-radius:6px;border-left:3px solid #2563eb;font-size:.88rem}.interactions__chain-order{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;border-radius:999px;background:#2563eb;color:#fff;font-size:.75rem;font-weight:700}.interactions__chain-action{color:#64748b;font-size:.85rem}.interactions__legend{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;list-style:none;margin:1rem 0;padding:.65rem 1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:.82rem;color:#475569}.interactions__legend li{display:flex;align-items:center;gap:.45rem}.interactions-legend-swatch{width:.85rem;height:.85rem;border-radius:3px;flex-shrink:0}.interactions-legend-swatch--triggers{background:#fed7aa;border:1px solid #ea580c}.interactions-legend-swatch--reads{background:#dbeafe;border:1px solid #2563eb}.interactions-legend-swatch--writes{background:#ede9fe;border:1px solid #7c3aed}.interactions-legend-swatch--triggered{background:#e2e8f0;border:1px solid #64748b}.interactions__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.interactions__card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1rem 1.15rem}.interactions__card-header h4{margin:.35rem 0 0;color:#1e3a8a;font-size:1rem}.interactions__layer{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase}.interactions__layer--frontend{background:#dbeafe;color:#1e40af}.interactions__layer--backend{background:#dcfce7;color:#166534}.interactions__role{margin:.5rem 0 .75rem;color:#475569;font-size:.88rem;line-height:1.4}.interactions__blocks{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.interaction-block{padding:.55rem .65rem;border-radius:6px;font-size:.8rem}.interaction-block h5{margin:0 0 .35rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}.interaction-block ul{list-style:none;margin:0;padding:0}.interaction-block li{display:flex;flex-direction:column;gap:.1rem;padding:.35rem 0;border-bottom:1px solid rgba(0,0,0,.06)}.interaction-block li:last-child{border-bottom:none}.interaction-block li strong{color:#1e293b;font-size:.82rem}.interaction-block li span{color:#64748b;font-size:.78rem;line-height:1.35}.interaction-block__empty{margin:0;color:#94a3b8}.interaction-block--triggeredBy{background:#f1f5f9;border-left:3px solid #64748b}.interaction-block--triggers{background:#fff7ed;border-left:3px solid #ea580c}.interaction-block--readsFrom{background:#eff6ff;border-left:3px solid #2563eb}.interaction-block--writesTo{background:#f5f3ff;border-left:3px solid #7c3aed}.dev-portal__layers{display:flex;flex-direction:column;gap:.5rem}.dev-portal__layer{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.25rem;border-radius:8px;border:1px solid #e2e8f0}.dev-portal__layer--frontend{background:#eff6ff;border-color:#bfdbfe}.dev-portal__layer--backend{background:#f0fdf4;border-color:#bbf7d0}.dev-portal__layer--db{background:#faf5ff;border-color:#e9d5ff}.dev-portal__layer-note{font-size:.85rem;color:#64748b}.dev-portal__layer-arrow{text-align:center;color:#94a3b8;font-size:.85rem;font-weight:600}.dev-portal__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.dev-portal__card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1rem 1.25rem}.dev-portal__card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.dev-portal__card-header h4{margin:0;color:#1e3a8a;font-size:1rem}.dev-portal__card-desc{margin:0 0 .75rem;color:#475569;font-size:.9rem;line-height:1.45}.dev-portal__badge{flex-shrink:0;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}.dev-portal__badge--ready{background:#dcfce7;color:#166534}.dev-portal__badge--partial{background:#fef9c3;color:#854d0e}.dev-portal__badge--planned{background:#e2e8f0;color:#475569}.dev-portal__meta{margin:0 0 .75rem;font-size:.85rem}.dev-portal__meta div{display:grid;grid-template-columns:110px 1fr;gap:.5rem;padding:.35rem 0;border-bottom:1px solid #f1f5f9}.dev-portal__meta div:last-child{border-bottom:none}.dev-portal__meta dt{color:#64748b;font-weight:600}.dev-portal__meta dd{margin:0;color:#334155;word-break:break-word}.dev-portal__endpoints{font-size:.85rem}.dev-portal__endpoints strong{display:block;margin-bottom:.35rem;color:#475569}.dev-portal__endpoints ul{margin:0;padding-left:1.1rem}.dev-portal__endpoints li{margin-bottom:.25rem}.dev-portal__connections{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.dev-portal__connection-group h4{margin:0 0 .75rem;color:#1e3a8a;font-size:.95rem}.dev-portal__connection-group ul{list-style:none;margin:0;padding:0}.dev-portal__connection-group li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem;padding:.5rem 0;border-bottom:1px solid #f1f5f9;font-size:.88rem}.dev-portal__connection-group li:last-child{border-bottom:none}.dev-portal__conn-arrow{color:#94a3b8}.dev-portal__conn-label{width:100%;color:#64748b;font-size:.82rem;padding-left:0}.dev-portal__links{list-style:none;margin:0;padding:0}.dev-portal__links li{display:flex;flex-direction:column;gap:.15rem;padding:.65rem 0;border-bottom:1px solid #f1f5f9}.dev-portal__links li:last-child{border-bottom:none}.dev-portal__links a{color:#2563eb;font-weight:600;text-decoration:none}.dev-portal__links a:hover{text-decoration:underline}.dev-portal__links span{color:#64748b;font-size:.85rem}.dev-portal__update ol{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem;color:#475569;font-size:.9rem}@media(max-width:768px){.app-header{flex-direction:column}.status-panel{white-space:normal}.dev-portal__hero{flex-direction:column}.dev-portal__release{max-width:none}.dev-portal__meta div{grid-template-columns:1fr;gap:.15rem}.dfd-row{flex-direction:column;align-items:stretch}.dfd-node{max-width:none}.dfd-arrow{width:100%;min-width:auto}.dfd-arrow__line{width:2px;height:1rem}.dfd-arrow__line:after{right:auto;left:50%;top:auto;bottom:-1px;transform:translate(-50%);border:5px solid transparent;border-top-color:#a78bfa;border-left-color:transparent}.interaction-block{grid-column:1 / -1}.interactions__blocks{grid-template-columns:1fr}}.vmap__intro{margin:0 0 1.25rem;color:var(--color-text-muted);font-size:.95rem;line-height:1.5}.vmap-scenario{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--space-3)}.vmap-scenario li{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3);background:var(--color-bg-muted);border-radius:var(--radius-md);border:1px solid var(--color-border)}.vmap-scenario__num{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--color-primary);color:#fff;font-size:.8rem;font-weight:700}.vmap-scenario li strong{display:block;color:var(--color-text);font-size:.9rem}.vmap-scenario li span:last-child{display:block;color:var(--color-text-muted);font-size:.82rem;margin-top:.15rem}.vmap-layout{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media(min-width:960px){.vmap-layout{grid-template-columns:1fr 280px}.vmap-layout--with-detail{grid-template-columns:1fr 300px}}.vmap-canvas{display:flex;flex-direction:column;gap:0;background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);overflow-x:auto}.vmap-zone{padding:var(--space-3) 0;position:relative}.vmap-zone--user{background:linear-gradient(90deg,#ede9fe,#faf5ff);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-2)}.vmap-zone--ui{background:#eff6ff;border-radius:var(--radius-md);padding:var(--space-3)}.vmap-zone--logic{background:#f0fdf4;border-radius:var(--radius-md);padding:var(--space-3)}.vmap-zone--storage{background:#fef3c7;border-radius:var(--radius-md);padding:var(--space-3)}.vmap-zone--external{background:#fce7f3;border-radius:var(--radius-md);padding:var(--space-3);margin-top:var(--space-3)}.vmap-zone__header h4{margin:0;font-size:.95rem;color:var(--color-text)}.vmap-zone__header p{margin:.2rem 0 .75rem;font-size:.78rem;color:var(--color-text-muted)}.vmap-zone__nodes{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.vmap-zone__flow{text-align:center;padding:.35rem 0;color:var(--color-text-muted);font-size:1.1rem}.vmap-node{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:5.5rem;max-width:7.5rem;padding:.65rem .5rem;border:2px solid var(--color-border);border-radius:var(--radius-md);background:#fff;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease;box-shadow:var(--shadow-sm)}.vmap-node:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary)}.vmap-node--selected{border-color:var(--color-primary);background:#eff6ff;box-shadow:0 0 0 3px #2563eb33}.vmap-node--linked{border-color:#16a34a;background:#f0fdf4}.vmap-node--dimmed{opacity:.35}.vmap-node__icon{font-size:1.35rem;line-height:1}.vmap-node__label{font-size:.72rem;font-weight:600;text-align:center;line-height:1.25;color:var(--color-text)}.vmap-detail{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);position:sticky;top:calc(var(--topbar-height) + var(--space-4));max-height:calc(100vh - var(--topbar-height) - 2rem);overflow-y:auto}.vmap-detail--placeholder{display:flex;align-items:center;justify-content:center;min-height:12rem;color:var(--color-text-muted);text-align:center;font-size:.9rem}.vmap-detail__header{display:flex;gap:var(--space-3);align-items:flex-start;margin-bottom:var(--space-3)}.vmap-detail__icon{font-size:1.75rem}.vmap-detail__header h4{margin:0;font-size:1rem}.vmap-detail__zone{font-size:.75rem;color:var(--color-text-muted)}.vmap-detail__close{margin-left:auto;background:transparent;border:none;font-size:1.25rem;line-height:1;color:var(--color-text-muted);cursor:pointer;padding:0}.vmap-detail__desc{margin:0 0 var(--space-3);font-size:.9rem;line-height:1.5;color:var(--color-text)}.vmap-detail__hint{margin:0 0 var(--space-3);font-size:.85rem;padding:var(--space-2) var(--space-3);background:var(--color-bg-muted);border-radius:var(--radius-sm)}.vmap-detail__links h5{margin:0 0 .5rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.vmap-detail__links ul{list-style:none;margin:0 0 var(--space-3);padding:0}.vmap-detail__links li{padding:.4rem 0;border-bottom:1px solid var(--color-border);font-size:.85rem}.vmap-detail__links li strong{display:block;color:var(--color-primary)}.vmap-detail__links li span{color:var(--color-text-muted);font-size:.8rem}.vmap-detail__links--out li strong{color:#16a34a}.vmap-legend{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px dashed var(--color-border);font-size:.78rem;color:var(--color-text-muted)}.vmap-legend__dot{display:inline-block;width:.65rem;height:.65rem;border-radius:999px;margin-right:.35rem;vertical-align:middle}.vmap-legend__dot--selected{background:var(--color-primary)}.vmap-legend__dot--linked{background:#16a34a}.dev-portal__section--visual{padding:var(--space-5)}.dev-portal__card--simple{border-left:3px solid var(--color-primary)}.dev-portal__card-ui{margin:0;font-size:.85rem;color:var(--color-text-muted)}.dev-portal__technical{margin-top:var(--space-4)}.dev-portal__technical-toggle{width:100%;text-align:left;padding:var(--space-3) var(--space-4);background:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);font-weight:600;color:var(--color-text-muted);cursor:pointer}.dev-portal__technical-toggle:hover{background:var(--color-bg-elevated)}.dev-portal__technical-body{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.settings-page{padding-bottom:5rem}.settings-page__intro{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.settings-page__intro h2{margin:0 0 .35rem}.settings-page__subtitle{margin:0;color:var(--color-text-muted);font-size:.9rem}.settings-page__intro-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.settings-search{min-width:min(100%,18rem);padding:.55rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.9rem;background:var(--color-bg-elevated);color:var(--color-text)}.settings-search:focus{outline:2px solid var(--color-primary-soft);border-color:var(--color-primary)}.settings-quick-status{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.settings-quick-status__pill{display:inline-flex;align-items:center;padding:.3rem .7rem;border-radius:999px;background:var(--color-bg-elevated);border:1px solid var(--color-border);font-size:.8rem;color:var(--color-text-muted)}.settings-quick-status__pill--warn{border-color:#fbbf24;background:#fffbeb;color:#92400e}.settings-layout{display:grid;grid-template-columns:minmax(13rem,16rem) minmax(0,1fr);gap:var(--space-5);align-items:start}.settings-sidebar{position:sticky;top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.settings-sidebar__nav{display:flex;flex-direction:column;gap:.2rem;padding:var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md)}.settings-sidebar__link{display:block;padding:.65rem .75rem;border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:background .15s ease}.settings-sidebar__link:hover{background:var(--color-bg-muted)}.settings-sidebar__link--active{background:var(--color-primary-soft)}.settings-sidebar__link-title{display:block;font-size:.9rem;font-weight:600;color:var(--color-text)}.settings-sidebar__link--active .settings-sidebar__link-title{color:var(--color-primary)}.settings-sidebar__link-desc{display:block;margin-top:.15rem;font-size:.75rem;line-height:1.35;color:var(--color-text-muted)}.settings-sidebar__help{padding:var(--space-3);background:#f8fafc;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.82rem;color:var(--color-text-muted)}.settings-sidebar__help summary{cursor:pointer;font-weight:600;color:var(--color-text)}.settings-sidebar__help p{margin:var(--space-2) 0 0;line-height:1.45}.settings-content{min-width:0}.settings-search-banner{margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:#eff6ff;border:1px solid #bfdbfe;font-size:.88rem;color:#1e40af}.settings-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.settings-panel+.settings-panel{margin-top:var(--space-4)}.settings-panel__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,#fff,#f8fafc)}.settings-panel__header h3{margin:0 0 .35rem;font-size:1.15rem}.settings-panel__header p{margin:0;color:var(--color-text-muted);font-size:.9rem;line-height:1.45;max-width:52rem}.settings-panel__rows{display:flex;flex-direction:column}.settings-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(11rem,16rem);gap:var(--space-4);align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.settings-row:last-child{border-bottom:none}.settings-row--changed{background:#fffbeb}.settings-row__info{min-width:0}.settings-row__label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:.95rem;font-weight:600;color:var(--color-text)}.settings-row__badge{padding:.1rem .45rem;border-radius:999px;background:#fde68a;color:#92400e;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.settings-row__desc{margin:.35rem 0 0;font-size:.84rem;line-height:1.45;color:var(--color-text-muted)}.settings-row__live{margin:.35rem 0 0;font-size:.78rem;color:var(--color-primary)}.settings-row__tech{margin-top:.45rem;font-size:.75rem;color:var(--color-text-muted)}.settings-row__tech summary{cursor:pointer}.settings-row__tech code{display:inline-block;margin-top:.25rem;padding:.1rem .35rem;border-radius:var(--radius-sm);background:var(--color-bg-muted);font-size:.72rem}.settings-row__control{display:flex;justify-content:flex-end;align-items:center}.settings-row__input{width:100%;max-width:16rem;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem;background:var(--color-bg);color:var(--color-text)}.settings-row__input:focus{outline:2px solid var(--color-primary-soft);border-color:var(--color-primary)}.settings-row__input:disabled{opacity:.6;cursor:not-allowed}.settings-toggle{display:inline-flex;align-items:center;gap:.65rem;cursor:pointer;-webkit-user-select:none;user-select:none}.settings-toggle__input{position:absolute;opacity:0;width:0;height:0}.settings-toggle__track{position:relative;width:2.75rem;height:1.5rem;border-radius:999px;background:#cbd5e1;transition:background .2s ease}.settings-toggle__track:after{content:"";position:absolute;top:.15rem;left:.15rem;width:1.2rem;height:1.2rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s ease}.settings-toggle__input:checked+.settings-toggle__track{background:var(--color-primary)}.settings-toggle__input:checked+.settings-toggle__track:after{transform:translate(1.25rem)}.settings-toggle__input:focus-visible+.settings-toggle__track{outline:2px solid var(--color-primary-soft);outline-offset:2px}.settings-toggle__input:disabled+.settings-toggle__track{opacity:.55;cursor:not-allowed}.settings-toggle__text{min-width:4.5rem;font-size:.82rem;color:var(--color-text-muted)}.settings-empty{margin:0;padding:var(--space-5);color:var(--color-text-muted);text-align:center}.settings-action-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:#fffffff5;border-top:1px solid var(--color-border);box-shadow:0 -4px 20px #00000014}.settings-action-bar__buttons{display:flex;gap:var(--space-2)}.message--success{background:#dcfce7;border:1px solid #86efac;color:#166534}@media(max-width:900px){.settings-layout{grid-template-columns:1fr}.settings-sidebar{position:static}.settings-sidebar__nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr))}.settings-row{grid-template-columns:1fr;gap:var(--space-3)}.settings-row__control{justify-content:flex-start}.settings-row__input{max-width:100%}.ai-prompts-layout{grid-template-columns:1fr}}.settings-section--prompts{margin-top:var(--space-6);padding-top:var(--space-5);border-top:2px solid var(--color-border)}.ai-prompts-context-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.ai-prompts-context-tabs__btn{padding:.35rem .85rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-elevated);cursor:pointer;font-size:.85rem}.ai-prompts-context-tabs__btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.ai-prompts-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:var(--space-4);align-items:start}.ai-prompts-list{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);padding:var(--space-3)}.ai-prompts-list__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-size:.88rem}.ai-prompts-list__items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.ai-prompts-list__group-title{margin:var(--space-3) 0 var(--space-2);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.ai-prompts-list__group-title:first-of-type{margin-top:0}.ai-prompts-list__badge{display:inline-block;margin-left:.35rem;padding:.05rem .35rem;border-radius:999px;font-size:.65rem;font-weight:600;vertical-align:middle;background:var(--color-bg-muted);color:var(--color-text-muted)}.ai-prompts-list__badge--default{background:#dbeafe;color:#1d4ed8}.ai-prompts-list__badge--custom{background:#dcfce7;color:#166534}.ai-prompts-list__item--builtin{background:#f8fafc}.ai-prompts-editor__readonly-note{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);background:#fef9c3;border:1px solid #fde047;border-radius:var(--radius-sm);font-size:.84rem;color:#854d0e}.ai-prompts-editor__textarea:read-only,.settings-field__input:read-only{background:var(--color-bg-muted);cursor:default}.ai-prompts-list__item{width:100%;text-align:left;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer}.ai-prompts-list__item--active{border-color:var(--color-primary);background:var(--color-primary-soft)}.ai-prompts-list__name{display:block;font-weight:600;font-size:.88rem}.ai-prompts-list__desc{display:block;margin-top:.2rem;font-size:.78rem;color:var(--color-text-muted)}.ai-prompts-editor{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);padding:var(--space-4)}.ai-prompts-editor__field{margin-bottom:var(--space-3)}.ai-prompts-editor__field label{display:block;margin-bottom:.35rem;font-size:.82rem;font-weight:600}.ai-prompts-editor__textarea{width:100%;min-height:220px;padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:.88rem;line-height:1.45;resize:vertical}.ai-prompts-preview-controls{margin:var(--space-4) 0 var(--space-3);padding:var(--space-3);background:var(--color-bg-muted);border-radius:var(--radius-sm)}.ai-prompts-preview-controls h4{margin:0 0 var(--space-2);font-size:.9rem}.ai-prompts-preview-controls__checkbox{display:flex;align-items:center;gap:.5rem;margin-bottom:var(--space-3);font-size:.85rem}.ai-prompts-editor__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.ai-prompts-preview{border:1px solid #bfdbfe;border-radius:var(--radius-md);background:#eff6ff;padding:var(--space-4)}.ai-prompts-preview__header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);font-size:.85rem}.ai-prompts-preview__summary,.ai-prompts-preview__note{margin:0 0 var(--space-2);font-size:.84rem;color:var(--color-text-muted)}.ai-prompts-preview__block{margin-top:var(--space-3)}.ai-prompts-preview__label{display:block;margin-bottom:.35rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#1e40af}.ai-prompts-preview__code{margin:0;padding:var(--space-3);background:#fff;border:1px solid #bfdbfe;border-radius:var(--radius-sm);font-size:.8rem;line-height:1.45;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto}.settings-auto-sync{margin:var(--space-4) var(--space-5) var(--space-5);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#f8fafc}.settings-auto-sync h4{margin:0 0 var(--space-2)}.settings-auto-sync__message{margin:0 0 var(--space-3);color:var(--color-text-muted)}.settings-auto-sync__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:0}.settings-auto-sync__grid div{display:grid;gap:var(--space-1)}.settings-auto-sync__grid dt{font-size:.78rem;color:var(--color-text-muted)}.settings-auto-sync__grid dd{margin:0;font-weight:600}.settings-auto-sync__hint,.settings-auto-sync__error{margin:var(--space-3) 0 0;font-size:.875rem}.settings-auto-sync__error,.settings-auto-sync--error{color:var(--color-danger)}@media(max-width:720px){.settings-auto-sync__grid{grid-template-columns:1fr}}.ib-keywords-form{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4);padding:0 var(--space-5) var(--space-4)}.ib-keywords-form__input{flex:1 1 240px;min-width:200px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff}.ib-keywords-form__input--inline{min-width:180px}.ib-keywords-table td:first-child{min-width:220px}.settings-section--ib-keywords{margin-top:0}.ib-keywords-bulk{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4);padding:0 var(--space-5)}.ib-keywords-bulk__label{font-size:.9rem;font-weight:600}.ib-keywords-bulk__input{width:100%;min-height:72px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;resize:vertical}.ib-keywords-bulk__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.ib-keywords-bulk__hint{color:var(--color-text-muted);font-size:.85rem}.settings-panel .settings-section--prompts,.settings-panel .settings-section--ib-keywords{border-top:1px solid var(--color-border);margin-top:0;padding:var(--space-4) var(--space-5)}.dashboard-page .dashboard-summary-grid,.dashboard-assistant{margin-bottom:var(--space-6)}.dashboard-assistant__badge{font-size:.75rem;color:var(--color-text-muted);background:var(--color-surface-muted, #f3f4f6);padding:.2rem .5rem;border-radius:var(--radius-sm)}.dashboard-assistant__summary{margin:0 0 var(--space-4);padding:var(--space-4);border-left:4px solid var(--color-primary);background:var(--color-primary-soft);line-height:1.55}.dashboard-assistant__tasks{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.dashboard-assistant__task{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}.dashboard-assistant__task--urgent{border-left:4px solid var(--color-danger, #dc2626)}.dashboard-assistant__task--high{border-left:4px solid var(--color-warning, #d97706)}.dashboard-assistant__task-head{display:flex;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.dashboard-assistant__task-title{font-weight:600;margin:0 0 var(--space-2)}.dashboard-assistant__hint{color:var(--color-text-muted);margin:var(--space-2) 0}.dashboard-assistant__footer{margin-top:var(--space-4);font-size:.875rem;color:var(--color-text-muted)}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.dashboard-grid__wide{grid-column:1 / -1}.dashboard-action-list,.dashboard-note-list,.notes-list{list-style:none;margin:0;padding:0}.dashboard-action-list__button,.dashboard-note-list__button{width:100%;text-align:left;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;cursor:pointer}.dashboard-action-list__button:hover,.dashboard-note-list__button:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.dashboard-action-list__button strong,.dashboard-note-list__button strong{display:block;margin-bottom:var(--space-1)}.dashboard-action-list__button span,.dashboard-note-list__meta span{color:var(--color-text-muted);font-size:.875rem}.dashboard-note-list__meta{display:flex;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.dashboard-note-list__body{margin:var(--space-2) 0 0;color:var(--color-text-muted)}.notes-list__item{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.notes-list__meta{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:.8125rem;color:var(--color-text-muted)}.notes-list__content p{margin:var(--space-2) 0 0;white-space:pre-line}.notes-list__actions{display:flex;flex-direction:column;gap:var(--space-2);flex-shrink:0}.notes-form textarea{min-height:96px;resize:vertical}@media(max-width:960px){.dashboard-grid{grid-template-columns:1fr}.notes-list__item{flex-direction:column}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(160deg,var(--color-bg-muted) 0%,var(--color-bg) 55%)}.auth-card{width:min(100%,420px);padding:2rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.auth-card__title{margin:0 0 .25rem;font-size:1.5rem}.auth-card__subtitle{margin:0 0 1.5rem;color:var(--color-text-muted)}.auth-card__hint{margin:1.25rem 0 0;font-size:.875rem;color:var(--color-text-muted)}.auth-form{display:grid;gap:1rem}.auth-form__field{display:grid;gap:.35rem}.auth-form__field span{font-size:.875rem;font-weight:600}.auth-form__field input{width:100%;padding:.65rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit}.auth-form__submit{width:100%;margin-top:.25rem}.auth-loading{padding:3rem;text-align:center;color:var(--color-text-muted)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.topbar__auth{display:flex;align-items:center;gap:.75rem;margin-left:auto}.topbar__auth-user{font-size:.875rem;color:var(--color-text-muted)}.btn--small{padding:.35rem .75rem;font-size:.8125rem}.user-accounts{display:grid;gap:1rem}.user-accounts__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.user-accounts__toolbar-hint{font-size:.875rem;color:var(--color-text-muted)}.user-accounts__form-panel{padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-muted)}.user-accounts__form-panel h4{margin:0 0 1rem}.user-account-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.user-account-form__field{display:grid;gap:.35rem}.user-account-form__field span{font-size:.875rem;font-weight:600}.user-account-form__field input,.user-account-form__field select{width:100%;padding:.55rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit}.user-account-form__readonly{padding:.55rem 0;color:var(--color-text-muted)}.user-account-form__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.btn--danger{background:#b42318;color:#fff;border-color:#b42318}.btn--danger:hover:not(:disabled){background:#912018}.user-accounts__table-wrap{overflow-x:auto}.user-accounts__table{width:100%;border-collapse:collapse;font-size:.9rem}.user-accounts__table th,.user-accounts__table td{padding:.65rem .75rem;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.user-accounts__table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.user-accounts__meta{margin-top:.2rem;font-size:.8rem;color:var(--color-text-muted)}.user-accounts__actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.user-accounts__status{display:inline-block;padding:.2rem .5rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600}.user-accounts__status--pending{background:#fff4e5;color:#9a6700}.user-accounts__status--approved{background:#e6f4ea;color:#1e7e34}.user-accounts__status--rejected,.user-accounts__status--disabled{background:#fdecea;color:#b42318}.user-accounts__role-select{min-width:10rem;padding:.35rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit}.access-section{display:grid;gap:1.5rem}.access-section__subtitle{margin:0 0 .75rem;font-size:.95rem}.access-section__env{margin-top:1.25rem}.access-section__accounts{margin-top:0}.role-legend{margin:1rem 0 1.5rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-muted)}.role-legend__table-wrap{overflow-x:auto}.role-legend__table{width:100%;border-collapse:collapse;font-size:.875rem}.role-legend__table th,.role-legend__table td{padding:.5rem .65rem;border-bottom:1px solid var(--color-border);text-align:center}.role-legend__table th:first-child,.role-legend__table td:first-child{text-align:left}.role-legend__cell{font-weight:700}.role-legend__descriptions{margin:.75rem 0 0;padding-left:1.1rem;color:var(--color-text-muted);font-size:.875rem}.topbar__auth-role{color:var(--color-text-muted)}.read-only-banner{margin:0 0 1rem;padding:.65rem 1rem;border:1px solid #f0c674;border-radius:var(--radius-sm);background:#fff8e6;color:#7a5c00;font-size:.875rem}
