:root{--bg: #f1f3f6;--card: #ffffff;--ink: #1f2430;--ink-2: #4a5263;--muted: #7b8496;--line: #e3e7ee;--line-2: #eef1f5;--dark: #1c212c;--dark-2: #262c39;--primary: #ea6a1f;--primary-ink: #ffffff;--primary-soft: #fdeee4;--green: #1f9d55;--green-soft: #e3f6ea;--blue: #2f6fd6;--blue-soft: #e5eefc;--amber: #c98a06;--amber-soft: #fdf3dc;--red: #d43d3d;--red-soft: #fce8e8;--violet: #7a4fd0;--violet-soft: #efe8fb;--teal: #13908a;--teal-soft: #e0f4f3;--orange: #e2701b;--orange-soft: #fdeede;--gray: #6b7385;--gray-soft: #eef0f4;--radius: 8px;--shadow: 0 1px 2px rgba(20, 28, 45, .06), 0 1px 6px rgba(20, 28, 45, .04);--side-w: 60px;--side-w-open: 236px;--top-h: 52px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.boot{padding:40px;color:var(--muted)}.spin{animation:spin 1s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.app{min-height:100%}.topbar{position:fixed;inset:0 0 auto;height:var(--top-h);z-index:40;display:flex;align-items:center;gap:16px;padding:0 16px 0 0;background:var(--dark);color:#fff}.brand{width:var(--side-w-open);display:flex;align-items:center;gap:10px;padding-left:14px;cursor:pointer;flex:none}.brand-mark{width:32px;height:32px;border-radius:8px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:800;font-size:17px}.brand-text{font-weight:700;letter-spacing:.06em;font-size:14px}.global-search{position:relative;display:flex;align-items:center;gap:8px;background:#fff;color:var(--ink-2);border-radius:18px;padding:0 12px;height:34px;width:min(420px,40vw)}.global-search input{border:0;outline:0;flex:1;font:inherit;background:transparent;color:var(--ink)}.search-pop{position:absolute;top:40px;left:0;right:0;background:#fff;border-radius:8px;box-shadow:0 8px 30px #0000002e;padding:6px;max-height:420px;overflow:auto}.search-pop button{display:block;width:100%;text-align:left;border:0;background:none;padding:7px 10px;border-radius:6px;cursor:pointer;font:inherit;color:var(--ink)}.search-pop button:hover{background:var(--bg)}.search-group{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 10px 2px}.search-empty{padding:10px;color:var(--muted)}.demo-flag{font-size:11px;font-weight:700;letter-spacing:.05em;color:#ffd8bf;border:1px solid rgba(255,216,191,.4);padding:3px 8px;border-radius:4px;white-space:nowrap}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px}.icon-btn{border:0;background:transparent;cursor:pointer;color:var(--ink-2);padding:6px;border-radius:6px;display:inline-grid;place-items:center}.icon-btn:hover{background:var(--line-2)}.icon-btn.light{color:#fff}.icon-btn.light:hover{background:#ffffff1a}.nav-toggle,.sidebar-backdrop{display:none}.bell{position:relative}.bell-count{position:absolute;top:-2px;right:-4px;background:var(--primary);color:#fff;font-size:10px;font-weight:700;border-radius:9px;min-width:17px;height:17px;display:grid;place-items:center;padding:0 4px}.user-menu{position:relative}.user-btn{display:flex;align-items:center;gap:8px;background:none;border:0;color:#fff;cursor:pointer;font:inherit}.avatar{width:28px;height:28px;border-radius:50%;background:var(--primary);display:grid;place-items:center;font-weight:700}.user-pop{position:absolute;right:0;top:38px;background:#fff;color:var(--ink);border-radius:8px;box-shadow:0 8px 30px #0000002e;padding:10px;min-width:200px}.user-pop button{margin-top:8px;display:flex;gap:6px;align-items:center;width:100%;border:0;background:var(--bg);padding:8px;border-radius:6px;cursor:pointer;font:inherit}.sidebar{position:fixed;top:var(--top-h);bottom:0;left:0;width:var(--side-w);z-index:30;background:var(--dark-2);overflow:hidden auto;transition:width .15s ease;padding:8px 0 20px}.sidebar:hover{width:var(--side-w-open);box-shadow:6px 0 24px #0003}.nav-group{padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05)}.nav-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8891a6;padding:6px 20px 2px;white-space:nowrap;opacity:0;height:0;overflow:hidden}.sidebar:hover .nav-group-title{opacity:1;height:auto}.nav-item{display:flex;align-items:center;gap:14px;padding:10px 20px;color:#c3c9d6;white-space:nowrap;border-left:3px solid transparent}.nav-item:hover{background:#ffffff0d;color:#fff;text-decoration:none}.nav-item.active{color:#fff;background:#ea6a1f29;border-left-color:var(--primary)}.nav-item svg{flex:none}.nav-label{opacity:0;transition:opacity .1s}.sidebar:hover .nav-label{opacity:1}.content{padding:calc(var(--top-h) + 18px) 22px 40px calc(var(--side-w) + 22px);max-width:1680px}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px}.kicker{color:var(--primary);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.page-header h1{font-size:21px;font-weight:700;text-transform:uppercase;letter-spacing:.01em;margin-top:2px}.subtitle{margin:2px 0 0;color:var(--muted);font-size:13px}.page-header-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;min-width:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}.card-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.card-title svg{color:var(--primary)}.card-body{padding:14px 16px}.card-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.actions-row .spacer{flex:1}.grid{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field.span-2{grid-column:span 2}.field.span-3{grid-column:span 3}.field.span-4{grid-column:1 / -1}.field-label{font-size:12.5px;color:var(--ink-2);font-weight:600}.field-hint{color:var(--muted);font-size:11.5px}.req{color:var(--red);font-weight:600}.input,select.input,textarea.input{width:100%;border:1px solid #d5dbe5;border-radius:6px;padding:7px 10px;font:inherit;color:var(--ink);background:#fff;min-height:34px}.input:focus{outline:2px solid rgba(234,106,31,.25);border-color:var(--primary)}.input[readonly],.input:disabled{background:#f6f7f9;color:var(--ink-2)}textarea.input{min-height:64px;resize:vertical}.input-sm{min-height:28px;padding:3px 6px;font-size:13px;width:auto}.section-title{color:var(--primary);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;margin:14px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line-2)}.section-title:first-child{margin-top:0}.btn{display:inline-flex;align-items:center;gap:6px;border-radius:6px;border:1px solid transparent;padding:7px 13px;font:inherit;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap;line-height:1.2}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:4px 9px;font-size:12.5px}.btn-default{background:#fff;border-color:#d5dbe5;color:var(--ink-2)}.btn-default:hover:not(:disabled){background:var(--bg)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(.95)}.btn-green{background:var(--green);color:#fff}.btn-green:hover:not(:disabled){filter:brightness(.95)}.btn-orange{background:#f29c1f;color:#fff}.btn-blue{background:var(--blue);color:#fff}.btn-red{background:var(--red);color:#fff}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:hover:not(:disabled){background:var(--line-2)}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-amber{background:var(--amber-soft);color:var(--amber)}.badge-violet{background:var(--violet-soft);color:var(--violet)}.badge-teal{background:var(--teal-soft);color:var(--teal)}.badge-green{background:var(--green-soft);color:var(--green)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-orange{background:var(--orange-soft);color:var(--orange)}.badge-gray{background:var(--gray-soft);color:var(--gray)}.text-red{color:var(--red)}.text-green{color:var(--green)}.text-blue{color:var(--blue)}.text-amber{color:var(--amber)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;padding:0 8px}.tab{border:0;background:none;padding:11px 12px 10px;font:inherit;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;display:inline-flex;gap:6px;align-items:center}.tab.active{color:var(--ink);border-bottom-color:var(--primary)}.tab-count{font-size:11px;padding:1px 6px;border-radius:9px;background:var(--gray-soft);color:var(--gray)}.tab-count.tone-blue{background:var(--blue-soft);color:var(--blue)}.tab-count.tone-amber{background:var(--amber-soft);color:var(--amber)}.tab-count.tone-green{background:var(--green-soft);color:var(--green)}.tab-count.tone-red{background:var(--red-soft);color:var(--red)}.tab-count.tone-violet{background:var(--violet-soft);color:var(--violet)}.tab-count.tone-teal{background:var(--teal-soft);color:var(--teal)}.tab-count.tone-orange{background:var(--orange-soft);color:var(--orange)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:#fff;border-radius:16px;padding:5px 12px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;display:inline-flex;gap:6px;align-items:center}.chip:hover{border-color:var(--primary)}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.chip-count{font-size:11px;opacity:.8}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px}.kpi{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;border-top:3px solid var(--gray)}.kpi-label{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.kpi-value{font-size:21px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.kpi-hint{font-size:12px;color:var(--muted);margin-top:2px}.tone-border-blue{border-top-color:var(--blue)}.tone-border-green{border-top-color:var(--green)}.tone-border-amber{border-top-color:var(--amber)}.tone-border-red{border-top-color:var(--red)}.tone-border-violet{border-top-color:var(--violet)}.tone-border-teal{border-top-color:var(--teal)}.tone-border-orange{border-top-color:var(--orange)}.tone-border-gray{border-top-color:var(--gray)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{background:#f7f8fa;color:var(--ink-2);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:9px 10px;border-bottom:1px solid var(--line-2);vertical-align:top}.table tbody tr:hover{background:#fafbfc}.table tr.clickable{cursor:pointer}.table tfoot td{font-weight:700;background:#fbf7f3;border-top:2px solid var(--line);white-space:nowrap}.table-empty{text-align:center;color:var(--muted);padding:28px!important}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.money.strong{font-weight:700}.code{font-weight:700;color:var(--primary);white-space:nowrap}.sub{color:var(--muted);font-size:12px}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.seat-left-zero{color:var(--red);font-weight:700}.seat-left{color:var(--green);font-weight:700}.pager{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;gap:10px;flex-wrap:wrap}.pager-controls{display:flex;gap:6px;align-items:center}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 14px;align-items:end}.filters .btn{justify-content:center}.modal-backdrop{position:fixed;inset:0;background:#0f141e73;z-index:100;display:grid;place-items:start center;overflow-y:auto;padding:40px 16px}.modal{background:#fff;border-radius:10px;width:100%;box-shadow:0 20px 60px #00000040}.modal-sm{max-width:460px}.modal-md{max-width:760px}.modal-lg{max-width:1040px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line-2)}.modal-head h3{font-size:16px}.modal-body{padding:16px 18px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line-2);background:#fafbfc;border-radius:0 0 10px 10px}.alert{padding:9px 12px;border-radius:6px;margin-bottom:12px;font-size:13px}.alert-red{background:var(--red-soft);color:#9c2525}.alert-amber{background:var(--amber-soft);color:#7a5300}.alert-blue{background:var(--blue-soft);color:#1d4a95}.toasts{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:200}.toast{background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px;box-shadow:0 8px 24px #0003;max-width:380px;border-left:4px solid var(--green)}.toast-red{border-left-color:var(--red)}.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}.kan-col{background:#e9ecf1;border-radius:var(--radius);display:flex;flex-direction:column;min-height:320px;border-top:3px solid var(--gray)}.kan-col.drop{outline:2px dashed var(--primary)}.kan-col-head{padding:10px 12px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.kan-col-head b{font-size:13px;text-transform:uppercase;letter-spacing:.03em}.kan-cards{display:flex;flex-direction:column;gap:8px;padding:0 8px 10px;overflow-y:auto;max-height:calc(100vh - 330px)}.kan-card{background:#fff;border-radius:7px;padding:10px;box-shadow:var(--shadow);cursor:grab;font-size:12.5px;display:flex;flex-direction:column;gap:5px}.kan-card:active{cursor:grabbing}.kan-card-top{display:flex;justify-content:space-between;gap:6px;align-items:center}.kan-card .title{font-weight:600;font-size:13px}.kan-meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 10px}.kan-foot{display:flex;justify-content:space-between;align-items:center;margin-top:3px;gap:6px}.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 16px}.info-grid>div>span{display:block;color:var(--muted);font-size:12px}.info-grid>div>b{font-weight:600}.stepper{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.step{padding:6px 12px;border-radius:16px;background:var(--gray-soft);color:var(--gray);font-size:12.5px;font-weight:600}.step.done{background:var(--green-soft);color:var(--green)}.step.current{background:var(--primary);color:#fff}.step.cancel{background:var(--red-soft);color:var(--red)}.step-arrow{color:var(--muted)}.timeline{list-style:none;margin:0;padding:0}.timeline li{padding:7px 0;border-bottom:1px dashed var(--line);font-size:13px}.timeline li .muted{font-size:12px}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);margin-top:6px}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}.funnel-row{display:grid;grid-template-columns:110px 1fr 40px;gap:8px;align-items:center;margin:6px 0;font-size:13px}.funnel-bar{height:14px;border-radius:3px;background:var(--primary);min-width:2px}.calc-panel{position:sticky;top:calc(var(--top-h) + 12px)}.calc-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px;align-items:center}.calc-row.total{font-weight:700;font-size:15px;color:var(--primary);border-bottom:0}.calc-row .input{width:120px;text-align:right}.lines-table .input{min-height:30px;padding:4px 6px;font-size:13px}.picker{position:relative}.picker-pop{position:absolute;top:100%;left:0;right:0;z-index:20;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px #0000001f;max-height:260px;overflow:auto}.picker-pop button{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 10px;cursor:pointer;font:inherit}.picker-pop button:hover{background:var(--bg)}.check-cell{width:34px}.matrix td,.matrix th{text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:left}.login-wrap{min-height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#1c212c,#2a3040 60%,#3a2a22);padding:16px}.login-card{background:#fff;border-radius:12px;padding:30px 28px;width:100%;max-width:380px;box-shadow:0 20px 60px #00000059}.login-card h1{font-size:20px;display:flex;gap:10px;align-items:center}.login-card form{display:flex;flex-direction:column;gap:12px;margin-top:18px}.login-card .btn{justify-content:center;padding:10px}@media(max-width:1100px){.form-grid,.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.grid-2,.grid-3{grid-template-columns:1fr}.demo-flag{display:none}}@media(max-width:720px){.brand{width:auto}.brand-text,.user-name{display:none}.nav-toggle{display:inline-grid;margin-left:8px}.sidebar{display:block;width:var(--side-w-open);transform:translate(-100%);transition:transform .2s ease;z-index:35}.sidebar.open{transform:translate(0);box-shadow:6px 0 24px #0000004d}.sidebar .nav-label,.sidebar .nav-group-title{opacity:1;height:auto}.sidebar-backdrop{display:block;position:fixed;top:var(--top-h);right:0;bottom:0;left:0;background:#0f141e73;z-index:34}.content{padding:calc(var(--top-h) + 12px) 16px 30px}.form-grid,.form-grid.cols-3,.form-grid.cols-2{grid-template-columns:1fr}.field.span-2,.field.span-3{grid-column:auto}.page-header{flex-direction:column;align-items:flex-start}}.kpi-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.kpi-mini .kpi-value{font-size:18px}.bar{transition:opacity .1s}svg:hover .bar{opacity:.55}svg .bar:hover{opacity:1}.row-actions.nowrap{flex-wrap:nowrap}
