@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300;1,9..40,400&family=Cormorant+Garamond:wght@300;400;500&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-primary: #FAFAF8;--bg-secondary: #F3F1EC;--bg-tertiary: #EBE8E1;--bg-elevated: #FFFFFF;--text-primary: #1A1A18;--text-secondary: #6B6860;--text-tertiary: #9C9889;--text-inverse: #FAFAF8;--border-default: #E2DED5;--border-subtle: #EDEAE3;--border-strong: #C8C2B5;--accent: #8C7B6A;--accent-hover: #7A6B5B;--success: #5C7A5E;--warning: #B8965A;--error: #A65D5D;--info: #6B8299;--buy-color: #5C7A5E;--sell-color: #A65D5D;--hit-color: #B8965A;--fill-color: #5C7A5E;--font-sans: "DM Sans", "Suisse Intl", "Neue Haas Grotesk", system-ui, sans-serif;--font-serif: "Cormorant Garamond", "EB Garamond", Georgia, serif;--font-mono: "JetBrains Mono", "SF Mono", Consolas, monospace;--shadow-elevated: 0 2px 16px rgba(26, 26, 24, .06);--shadow-dropdown: 0 4px 24px rgba(26, 26, 24, .08);--transition: .22s cubic-bezier(.25, .1, .25, 1);--transition-slow: .4s cubic-bezier(.25, .1, .25, 1)}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}.mono{font-family:var(--font-mono)}.muted{color:var(--text-tertiary)}.overline{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.caption{font-size:13px;letter-spacing:.03em;color:var(--text-secondary)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{display:flex;align-items:center;padding:12px 32px;background:var(--bg-elevated);border-bottom:1px solid var(--border-default);flex-shrink:0}.app-header h1{font-family:var(--font-sans);font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-primary)}.app-header .subtitle{font-size:13px;color:var(--text-tertiary);margin-left:12px;letter-spacing:.02em}.header-right{margin-left:auto;display:flex;align-items:center;gap:12px}.user-info{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.main-layout{display:flex;flex:1;overflow:hidden}.left-panel{flex:1;display:flex;flex-direction:column;overflow:auto;padding:0}.right-panel{width:360px;flex-shrink:0;border-left:1px solid var(--border-default);background:var(--bg-elevated);overflow-y:auto}.role-badge{display:inline-block;padding:2px 8px;font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;border-radius:2px}.role-trader{background:var(--bg-tertiary);color:var(--text-secondary)}.role-sales{background:var(--bg-tertiary);color:var(--info)}.role-admin{background:var(--text-primary);color:var(--text-inverse)}.status-badge{display:inline-block;padding:2px 8px;font-size:10px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;border-radius:2px;background:var(--bg-tertiary);color:var(--text-secondary)}.status-new,.status-assigned{background:#ebf0f5;color:var(--info)}.status-pricing,.status-quoted,.status-quote_accepted{background:#ebf0ee;color:var(--success)}.status-hit_lifted{background:#f5f0e5;color:var(--warning)}.status-filled{background:#ebf0ee;color:var(--success)}.status-passed,.status-expired,.status-done_away,.status-canceled{background:var(--bg-secondary);color:var(--text-tertiary)}.status-rejected,.status-quote_rejected{background:#f5ebeb;color:var(--error)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 24px;font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;border:none;border-radius:2px;cursor:pointer;transition:all var(--transition)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-primary{background:var(--text-primary);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){opacity:.85}.btn-quote{background:var(--text-primary);color:var(--text-inverse)}.btn-quote:hover:not(:disabled){opacity:.85}.btn-fill{background:var(--success);color:var(--text-inverse);width:100%}.btn-fill:hover:not(:disabled){opacity:.85}.btn-pass{background:transparent;color:var(--text-secondary);border:1px solid var(--border-default)}.btn-pass:hover:not(:disabled){background:var(--bg-tertiary)}.btn-sm{padding:4px 12px;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--border-default);border-radius:2px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.btn-sm:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{border-color:var(--error);color:var(--error)}.btn-danger:hover{background:#f5ebeb}.blotter{background:var(--bg-elevated);border-bottom:1px solid var(--border-default)}.blotter-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--border-subtle)}.blotter-title{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.blotter-count{font-size:12px;color:var(--text-tertiary);font-family:var(--font-mono)}.blotter-table{width:100%;border-collapse:collapse;font-size:13px}.blotter-table th{text-align:left;padding:8px 16px;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);border-bottom:1px solid var(--border-default);white-space:nowrap}.blotter-table th.right{text-align:right}.blotter-table td{padding:10px 16px;border-bottom:1px solid var(--border-subtle);transition:background var(--transition);white-space:nowrap}.blotter-table tr:hover td{background:var(--bg-secondary)}.blotter-table tr.selected td{background:var(--bg-tertiary)}.blotter-table tr.row-terminal td{opacity:.4}.blotter-table tr.row-hit td{background:#fffbf0}.blotter-table .col-side{font-weight:500;font-size:12px;letter-spacing:.04em}.blotter-table .col-side.buy{color:var(--buy-color)}.blotter-table .col-side.sell{color:var(--sell-color)}.blotter-table .col-price{text-align:right;font-family:var(--font-mono);font-size:13px}.blotter-table .col-qty{text-align:right;font-family:var(--font-mono)}.blotter-table .col-time{color:var(--text-tertiary);font-size:12px}.blotter-table .col-timer{font-family:var(--font-mono);font-size:12px}.blotter-table .col-timer.urgent{color:var(--error);font-weight:500}.blotter-table .col-timer.warning{color:var(--warning)}.symbol-cell{display:flex;flex-direction:column;gap:1px}.sym-main{font-weight:400;color:var(--text-primary)}.sym-meta{font-size:11px;color:var(--text-tertiary)}.col-pnl.positive{color:var(--success)}.col-pnl.negative{color:var(--error)}.wire-bar-wrap{position:relative;height:20px;background:var(--bg-secondary);border-radius:2px;margin:8px 0;overflow:hidden}.wire-bar{height:100%;border-radius:2px;transition:width .3s linear}.wire-label{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--text-secondary)}.wire-label.urgent{color:var(--error);font-weight:500}.quote-panel{padding:24px}.quote-panel.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center}.quote-panel.empty .muted{font-size:13px;margin-top:8px}.quote-panel.hit-alert{border-left:3px solid var(--warning)}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.panel-title{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.quote-security{margin-bottom:16px}.quote-security .symbol{display:block;font-size:16px;font-weight:400;color:var(--text-primary);letter-spacing:.01em}.quote-security .isin{font-size:12px;font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.02em}.quote-meta-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;font-size:12px;color:var(--text-secondary)}.side-tag{font-weight:500;font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:2px}.side-tag.buy{background:#ebf0ee;color:var(--buy-color)}.side-tag.sell{background:#f5ebeb;color:var(--sell-color)}.rfq-details{margin-bottom:20px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border-subtle)}.detail-row .label{font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}.detail-row .value{font-size:14px;color:var(--text-primary)}.quote-ref{display:flex;gap:16px;font-size:12px;color:var(--text-tertiary);font-family:var(--font-mono);margin-bottom:16px;padding:8px 0;border-top:1px solid var(--border-subtle)}.quote-inputs{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.input-group label{display:block;font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:4px}.input-group input,.input-group select{width:100%;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:2px;color:var(--text-primary);font-family:var(--font-mono);font-size:15px;transition:border-color var(--transition)}.input-group input:focus,.input-group select:focus{outline:none;border-color:var(--border-strong)}.input-group input::placeholder{color:var(--text-tertiary);font-size:14px}.error{font-size:13px;color:var(--error);margin-bottom:12px}.actions{display:flex;gap:8px;margin-top:16px}.status-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 32px;background:var(--bg-elevated);border-top:1px solid var(--border-default);font-size:12px;color:var(--text-tertiary);flex-shrink:0}.status-left,.status-right{display:flex;align-items:center;gap:16px}.status-item{display:flex;align-items:center;gap:6px}.separator{color:var(--border-default)}.indicator{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.indicator.connected{background:var(--success);box-shadow:0 0 5px var(--success)}.indicator.disconnected{background:var(--error)}.status-item .ok{color:var(--success)}.status-item .bad{color:var(--error)}.inject-btn{margin-left:auto;padding:3px 10px;font-size:12px;font-family:var(--font-mono);color:var(--text-primary);background:var(--bg-elevated, #1b1f27);border:1px solid var(--border-default);border-radius:4px;cursor:pointer}.inject-btn:hover{border-color:var(--accent, #38bdf8)}.pnl-value{font-family:var(--font-mono);font-size:13px}.pnl-value.positive{color:var(--success)}.pnl-value.negative{color:var(--error)}.clock{font-family:var(--font-mono);font-size:13px;color:var(--text-primary);letter-spacing:.02em}.notifications{position:fixed;top:16px;right:16px;z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;background:var(--bg-elevated);border:1px solid var(--border-default);border-left:3px solid var(--accent);box-shadow:var(--shadow-dropdown);padding:12px 16px;min-width:280px;border-radius:2px;animation:slideIn .3s var(--transition) forwards}.toast.critical{border-left-color:var(--warning)}.toast.error{border-left-color:var(--error)}.toast-title{font-size:12px;font-weight:500;color:var(--text-primary);margin-bottom:2px}.toast-body{font-size:12px;color:var(--text-secondary)}@keyframes slideIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-secondary)}.login-box{width:380px;padding:48px 40px;background:var(--bg-elevated);border:1px solid var(--border-default);text-align:center}.login-box h1{font-family:var(--font-serif);font-size:28px;font-weight:300;letter-spacing:.04em;color:var(--text-primary);margin-bottom:4px}.login-box .subtitle{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:40px}.login-box form{display:flex;flex-direction:column;gap:16px;text-align:left}.login-box .btn{width:100%;margin-top:8px}.login-box .error{text-align:center}.admin-panel{background:var(--bg-primary);min-height:100vh;padding:32px}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.admin-header h2{font-family:var(--font-serif);font-size:28px;font-weight:300;letter-spacing:.02em;color:var(--text-primary)}.admin-tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:1px solid var(--border-default)}.tab{padding:10px 24px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-tertiary);cursor:pointer;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:all var(--transition)}.tab:hover{color:var(--text-secondary)}.tab.active{color:var(--text-primary);border-bottom-color:var(--text-primary)}.admin-section{background:var(--bg-elevated);border:1px solid var(--border-default);padding:24px;border-radius:4px}.admin-section h3{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:16px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;padding:8px 12px;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);border-bottom:1px solid var(--border-default)}.admin-table td{padding:10px 12px;border-bottom:1px solid var(--border-subtle)}.admin-table tr.inactive td{opacity:.35}.admin-table tr:hover td{background:var(--bg-secondary)}.success{color:var(--success);font-size:13px;margin-bottom:12px;padding:8px 12px;background:#ebf0ee;border-radius:2px}.form-section{margin-top:24px;padding:20px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:2px}.form-section h4{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:12px}.form-row{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}.form-row input,.form-row select{padding:8px 12px;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:2px;color:var(--text-primary);font-size:13px;min-width:140px;transition:border-color var(--transition)}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--border-strong)}.system-grid{display:flex;gap:20px}.stat-card{flex:1;padding:24px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:2px;text-align:center}.stat-value{font-family:var(--font-serif);font-size:36px;font-weight:300;color:var(--text-primary)}.stat-label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin-top:4px}.stat-detail{font-size:12px;color:var(--text-tertiary);margin-top:4px}.header-tabs{display:flex;gap:2px;margin-left:24px}.header-tab{padding:4px 14px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;border-radius:2px;transition:all var(--transition)}.header-tab:hover{background:var(--bg-secondary);color:var(--text-secondary)}.header-tab.active{background:var(--bg-tertiary);color:var(--text-primary)}.header-tab .count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;font-size:10px;font-weight:500;margin-left:4px;background:var(--bg-secondary);color:var(--text-secondary)}.header-tab .count.hot{background:var(--error);color:var(--text-inverse)}
