:root{color:#1c2430;background:#f4f8fd;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;--accent: #1d6fe8;--accent-hover: #1558c0;--nav: #071426}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:1px solid #c5ced8;background:#fff;border-radius:6px;padding:8px 14px;cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-hover)}button.link{border:0;background:transparent;color:var(--accent);padding:0 6px}button.danger{color:#9b2335}.shell{min-height:100vh;display:flex;align-items:stretch}.workspace{flex:1;min-width:0;display:flex;flex-direction:column}.side{width:220px;flex:none;display:flex;flex-direction:column;gap:6px;padding:22px 14px 16px;color:#e8f2ff;background-color:var(--nav);background-image:linear-gradient(rgba(147,197,253,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(147,197,253,.09) 1px,transparent 1px),radial-gradient(circle at 18% 0%,rgba(56,189,248,.3),transparent 36%),linear-gradient(180deg,#071426,#0c2d5c 62%,#123f86);background-size:52px 52px,52px 52px,auto,auto;position:sticky;top:0;height:100vh}.side strong{letter-spacing:.04em;font-size:18px;padding:4px 12px 14px}.side nav{display:flex;flex-direction:column;gap:4px}.side a{color:#d6e6fb;text-decoration:none;padding:10px 12px;border-radius:6px}.side a:hover{background:#93c5fd29}.side a.active{background:#1d6fe88c;color:#fff}.top{display:flex;align-items:center;justify-content:flex-end;gap:12px;height:56px;padding:0 24px;background:#fff;border-bottom:1px solid #d7e3f2;color:#1c2430}.page{flex:1;min-width:0;padding:20px 24px 40px}.page-title{margin:0 0 14px;font-size:20px;font-weight:650}.toolbar,.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}input,select{border:1px solid #c5ced8;border-radius:6px;padding:8px 10px;background:#fff}input:focus,select:focus{outline:2px solid rgba(37,99,235,.28);border-color:var(--accent)}table{width:100%;border-collapse:collapse;background:#fff;font-size:13px;border-radius:8px;overflow:hidden}th,td{border:1px solid #e1e6eb;padding:8px;text-align:left;white-space:nowrap}th{background:#e4eefb}.table-wrap{overflow:auto}.pager{display:flex;gap:8px;align-items:center;margin-top:12px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c345447;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:#fff;border-radius:8px;padding:16px 18px;width:min(560px,100%);max-height:90vh;overflow:auto}.form{display:grid;gap:10px}.form label{display:grid;gap:4px;font-size:13px}.ticket{background:#fff;border:1px solid #e6eef6;border-radius:8px;padding:28px 36px 24px;max-width:1080px}.ticket-name{margin:0 0 22px;color:#5c7394;font-size:13px}.ticket-name span{margin-left:8px;padding:1px 6px;border-radius:4px;background:#eef4fb;color:#3d5f8a}.ticket-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:56px;row-gap:20px}.area-product{grid-area:1 / 1}.area-side{grid-area:2 / 1}.area-isin{grid-area:3 / 1}.area-mode{grid-area:3 / 2}.area-qty{grid-area:4 / 1}.area-price{grid-area:4 / 2}.area-acc{grid-area:5 / 1}.area-dirty{grid-area:5 / 2}.area-amt{grid-area:6 / 1}.area-ytm{grid-area:6 / 2}.area-par{grid-area:7 / 1}.area-face{grid-area:7 / 2}.area-settle{grid-area:8 / 1}.ticket-field{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;column-gap:10px;min-width:0}.ticket-field.wide{grid-template-columns:124px minmax(0,1fr)}.ticket-label{text-align:right;color:#000000e0;font-size:14px;line-height:1.3}.ticket-label i{color:#ff4d4f;font-style:normal;margin-right:4px}.ticket-control{min-width:0}.ticket input:not([type=radio]),.ticket select{width:100%;height:32px;padding:0 11px;border:1px solid #d9d9d9;border-radius:6px;background:#fff;color:#000000e0}.ticket select{padding-right:28px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238c8c8c' d='M2.2 4.2 6 8l3.8-3.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.ticket select.is-placeholder{color:#bfbfbf}.ticket select option{color:#000000e0}.ticket input:focus,.ticket select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #1d6fe829}.ticket input[readonly]{background:#f5f5f5;color:#000000e0}.ticket input[type=number]::-webkit-outer-spin-button,.ticket input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ticket input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.radios{display:flex;align-items:center;gap:18px;min-height:32px;font-size:14px}.radios label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.radios input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.stepper{display:flex;height:32px;border:1px solid #d9d9d9;border-radius:6px;overflow:hidden;background:#fff}.stepper:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #1d6fe829}.stepper button{width:32px;height:100%;padding:0;border:0;border-radius:0;background:#fff;color:#000000e0;font-size:16px;line-height:1}.stepper button:first-child{border-right:1px solid #d9d9d9}.stepper button:last-child{border-left:1px solid #d9d9d9}.stepper button:disabled{color:#00000040;cursor:not-allowed}.ticket .stepper input,.ticket .stepper input:focus{flex:1;height:100%;border:0;border-radius:0;text-align:center;box-shadow:none}.ticket-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px}.ticket-actions button{min-width:76px;height:32px;padding:4px 16px;border-radius:6px}@media(max-width:860px){.ticket{padding:20px 16px}.ticket-grid{grid-template-columns:1fr}.ticket-field,.ticket-field.wide{grid-template-columns:124px minmax(0,1fr)}.area-product,.area-side,.area-isin,.area-mode,.area-qty,.area-price,.area-acc,.area-dirty,.area-amt,.area-ytm,.area-par,.area-face,.area-settle{grid-area:auto}}.error{color:#9b2335}.login{min-height:100vh;display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(320px,.95fr)}.login-brand{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:64px;color:#e8f2ff;background-color:#071426;background-image:linear-gradient(rgba(147,197,253,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(147,197,253,.09) 1px,transparent 1px),radial-gradient(circle at 16% 18%,rgba(56,189,248,.34),transparent 34%),radial-gradient(circle at 84% 82%,rgba(37,99,235,.46),transparent 42%),linear-gradient(155deg,#071426,#0c2d5c 54%,#123f86);background-size:52px 52px,52px 52px,auto,auto,auto}.login-brand h1{margin:0;font-size:48px;font-weight:650;letter-spacing:.04em}.login-brand p{margin:0;color:#c5d8f2;font-size:16px}.login-brand .mark{margin:0 0 12px;font-family:Cinzel Decorative,Palatino Linotype,Palatino,serif;font-size:28px;font-weight:400;letter-spacing:.22em;line-height:1.2;background:linear-gradient(180deg,#e0f2fe,#7dd3fc 42%,#3b82f6);-webkit-background-clip:text;background-clip:text;color:transparent}.login-panel{display:grid;place-items:center;padding:32px 24px;background:#f4f8fd}.login .hint{color:#5c7394}.login input:focus{outline:2px solid rgba(37,99,235,.28);border-color:#2563eb}.login button.primary{background:#1d6fe8;border-color:#1d6fe8}.login button.primary:hover{background:#1558c0}.login form{width:min(380px,100%);display:grid;gap:14px}.login h2{margin:0;font-size:28px}.hint{margin:-6px 0 8px;color:#5c7394;font-size:14px}.login input{width:100%}.login button.primary{height:42px;margin-top:4px}@media(max-width:800px){.login{grid-template-columns:1fr}.login-brand{min-height:220px;padding:32px 24px}.login-brand h1{font-size:36px}}.detail{display:grid;grid-template-columns:140px 1fr;gap:6px 10px}
