.lines-editor{display:grid;gap:12px}.line-card{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.line-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;color:#1d3a5f}.line-grid{display:grid;gap:10px;align-items:start}.line-grid.pur{grid-template-columns:minmax(0,1fr) 150px}.line-grid.out{grid-template-columns:repeat(6,minmax(0,1fr))}.line-grid.out .lf.wide{grid-column:span 2}.lf{display:grid;gap:4px;min-width:0}.lf>span{font-size:12px;color:var(--muted)}.lines-editor .lf input{font:inherit;color:var(--ink);background:#fff;border:1px solid #d3e0ec;border-radius:10px;padding:10px 12px;width:100%}.lines-editor .lf input:focus{outline:2px solid rgba(90,95,216,.35);border-color:var(--indigo)}.qty-total{display:flex;align-items:center;height:42px;padding:0 12px;border-radius:10px;background:#eaf0ff;color:#3a40b8;font-weight:700;font-variant-numeric:tabular-nums}.color-box{display:grid;gap:8px;padding:10px 12px;border:1px dashed #cfdceb;border-radius:10px;background:#fff}.color-cap{font-size:12px;color:var(--muted)}.color-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.color-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid #d3e0ec;border-radius:999px;background:#fff;font-size:13px;color:var(--ink);cursor:pointer}.color-chip:hover{border-color:var(--indigo)}.color-chip.on{border-color:var(--indigo);background:#eaf0ff;color:#3a40b8;font-weight:600;box-shadow:0 0 0 2px #5a5fd82e}.color-chip i,.color-qty i,.view-color i{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.18);flex:none}.color-new{display:inline-flex;align-items:center;gap:6px}.lines-editor .color-new input{width:130px;padding:6px 10px;font:inherit;border:1px solid #d3e0ec;border-radius:999px;background:#fff}.color-qtys{display:flex;flex-wrap:wrap;gap:8px}.color-qty{display:inline-flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border:1px solid #cdd8fb;border-radius:12px;background:#f5f7ff;font-size:13px}.lines-editor .color-qty input{width:84px;padding:6px 8px;border-radius:8px}.color-qty button{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:#6b84a0}.color-qty button:hover{background:#fde6ea;color:#d03a4e}.line-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.line-total{font-size:13px;color:var(--muted)}.line-total b{color:#1d3a5f}.line-hint{color:var(--muted);font-size:12px}.lines-view{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.lines-view table{width:100%;border-collapse:collapse;font-size:13px}.lines-view th,.lines-view td{padding:8px 10px;text-align:left;white-space:normal;border-top:1px solid #eef3f8;vertical-align:top}.lines-view th{border-top:0;background:#f2f2fc;font-size:12px;font-weight:500;color:var(--muted)}.lines-view .num{text-align:right;font-variant-numeric:tabular-nums}.lines-view td.strong{font-weight:600}.lines-view tfoot td{font-weight:700;background:#f2f2fc}.view-color{display:inline-flex;align-items:center;gap:5px;margin:0 12px 4px 0;white-space:nowrap}@media (max-width: 760px){.line-grid.out{grid-template-columns:repeat(2,minmax(0,1fr))}.line-grid.out .lf.wide{grid-column:1 / -1}}@media (max-width: 480px){.line-grid.pur{grid-template-columns:1fr}}.phone-link{background:none;border:0;padding:0;color:var(--indigo);text-decoration:underline;text-underline-offset:3px}.phone-link:hover{color:#3a40b8}.outtime-col{width:200px}.outtime{display:flex;align-items:center;gap:6px}.outtime input{font:inherit;font-size:12px;color:var(--ink);border:1px solid #d3e0ec;border-radius:8px;padding:4px 6px;background:#fbfdff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:16px;background:#14284673}.modal{width:min(640px,100%);max-height:88vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 60px #14284659}.modal-head{position:sticky;top:0;display:flex;align-items:center;gap:10px;padding:14px 18px;background:#fff;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:17px;font-weight:600}.modal-head .modal-kind{font-size:12px;color:var(--muted)}.modal-head .push{margin-left:auto}.modal-body{padding:6px 18px 4px}.modal-section{margin:14px 0}.modal-section h4{margin:0 0 8px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin:0}.modal-grid>div.full{grid-column:1 / -1}.modal-grid dt{font-size:12px;color:var(--muted)}.modal-grid dd{margin:2px 0 0;font-size:14px;word-break:break-word;white-space:pre-wrap}.modal-grid .sig-thumb{height:70px;max-width:220px}.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}@media (max-width: 520px){.modal-grid{grid-template-columns:1fr}}.alert-backdrop{z-index:80}.alert-modal{width:min(460px,100%)}.alert-icon{color:#d03a4e;flex:none}.alert-list{margin:8px 0;padding:0;list-style:none;display:grid;gap:8px}.alert-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:8px 10px;border:1px solid #f3c9d0;background:#fff6f7;border-radius:10px;font-size:14px}.alert-list li small{color:var(--muted);font-size:12px}.alert-list li span{flex-basis:100%;color:#b02a3e;font-size:13px}.items-editor{display:grid;gap:8px}.items-head,.items-row{display:grid;grid-template-columns:minmax(0,1.2fr) 90px 110px minmax(0,1fr) 34px;gap:8px;align-items:start}.items-head span{font-size:12px;color:var(--muted)}.items-editor .btn{justify-self:start}@media (max-width: 560px){.items-head{display:none}.items-row{grid-template-columns:1fr 1fr 34px}.items-row .lookup,.items-row .item-desc{grid-column:1 / -1}}.held-banner{padding:10px 12px;border:1px solid #f0c36d;border-left:4px solid #f59e0b;border-radius:10px;background:#fff8e8;font-size:13px;color:#6b4a00}.held-banner ul{margin:6px 0;padding-left:18px}.held-note{grid-column:1 / -1;font-size:12.5px;color:#b42318}.lookup-list li.disabled{cursor:not-allowed;opacity:.6}.lookup-list li .in-hand-note{color:#b42318}.spare-desc{margin:0 0 8px;font-size:13px;color:var(--muted)}.spare-search{width:100%;font:inherit;color:var(--ink);border:1px solid #d3e0ec;border-radius:10px;padding:8px 11px;background:#fff}.spare-modal{width:min(680px,100%)}.spare-item{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.spare-item-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.spare-item-head span{color:var(--muted);font-size:13px}.bill-rows{display:grid;gap:6px;justify-items:start}.bill-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 34px;gap:8px;width:100%;font-size:13px}.bill-row input,.spare-balance select{font:inherit;color:var(--ink);border:1px solid #d3e0ec;border-radius:9px;padding:7px 9px;background:#fff}.spare-balance{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-top:10px;font-size:13px}.ok-text{color:#1b7f55}.warn-text{color:#b36b00}.foot-actions{display:flex;gap:8px}.chip-btn{border:0;cursor:pointer;font:inherit}.ss{display:grid;gap:14px;margin-bottom:16px}.ss-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ss-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:14px;border:1px solid #e3ecf4;border-left:5px solid var(--a);background:#fff;box-shadow:0 1px 3px #1d3a5f0f}.ss-label{font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#6b84a0}.ss-value{font-size:22px;line-height:1.1;color:var(--a);font-variant-numeric:tabular-nums}.ss-given{--a: #1d3a5f}.ss-sale{--a: #22a06b}.ss-ret{--a: #5a5fd8}.ss-pend{--a: #d92d20}.ss-wrap{border:1px solid #e3ecf4;border-radius:14px;background:#fff;overflow:hidden}.ss-title{padding:10px 16px;font-weight:700;font-size:14px;color:#1d3a5f;background:#f6f9fc;border-bottom:1px solid #e3ecf4}.ss-scroll{overflow-x:auto;max-height:280px;overflow-y:auto}.ss-table{width:100%;border-collapse:collapse;font-size:14px}.ss-table th,.ss-table td{padding:9px 16px;text-align:left;white-space:nowrap;border-bottom:1px solid #eef3f8}.ss-table th{position:sticky;top:0;background:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:#6b84a0}.ss-table .num{text-align:right;font-variant-numeric:tabular-nums}.ss-table .name{font-weight:600;color:#1d3a5f}.ss-table td.sale{color:#22a06b;font-weight:600}.ss-table td.ret{color:#5a5fd8;font-weight:600}.ss-table td.pend{color:#d98a0b;font-weight:600}.ss-table td.spare-click{color:#1941c2;font-weight:600;cursor:pointer}.ss-table tr.click{cursor:pointer}.ss-table tr.click:hover td{background:#f3f7fb}.ss-table tr.on td{background:#eaf0ff}.ss-table tr.on td.name{box-shadow:inset 4px 0 #5a5fd8}.ss-table tfoot td{position:sticky;bottom:0;font-weight:700;background:#f2f2fc;border-top:2px solid #e3ecf4;border-bottom:0}@media (max-width: 900px){.ss-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 480px){.ss-value{font-size:18px}.ss-table th,.ss-table td{padding:8px 10px}}.view-tabs{display:inline-flex;gap:4px;padding:4px;margin-bottom:14px;border:1px solid #e3ecf4;border-radius:12px;background:#f6f9fc}.view-tabs button{border:0;background:transparent;font:inherit;font-weight:600;font-size:14px;color:#6b84a0;padding:8px 16px;border-radius:9px;cursor:pointer}.view-tabs button.on{background:#fff;color:#1d3a5f;box-shadow:0 1px 3px #1d3a5f1f}.st-list{display:grid;gap:14px}.st-block{border:1px solid #e3ecf4;border-radius:14px;background:#fff;overflow:hidden}.st-head{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;padding:12px 16px;border:0;background:#f6f9fc;font:inherit;text-align:left;cursor:pointer}.st-head:hover{background:#eef3f9}.st-name{display:inline-flex;align-items:center;gap:6px;font-size:16px;font-weight:700;color:#1d3a5f}.st-name small{font-size:12px;font-weight:500;color:#6b84a0;margin-left:6px}.st-sums{display:flex;flex-wrap:wrap;gap:8px 22px}.st-sums span{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.st-sums em{font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:#6b84a0}.st-sums b{font-size:15px;color:#1d3a5f;font-variant-numeric:tabular-nums}.st-sums .sale b{color:#22a06b}.st-sums .ret b{color:#5a5fd8}.st-sums .pend b{color:#d98a0b}.st-block .ss-scroll{max-height:360px}.ss-empty{padding:28px;text-align:center;color:#6b84a0;border:1px dashed #e3ecf4;border-radius:14px}.rk{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;font-size:12px;font-weight:700;background:#eaf0ff;color:#5a5fd8}.rk.top{background:#fff3d6;color:#b36b00}.top-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;background:#e3f6ec;color:#22a06b}.ss-titlebar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.ss-note{font-weight:500;color:#6b84a0}.ss-note b{color:#1d3a5f}.ss-sort{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#6b84a0}.ss-sort select{font:inherit;padding:5px 8px;border:1px solid #e3ecf4;border-radius:8px;background:#fff;color:#1d3a5f}.ss-sort-top{justify-self:end}.ss-table th.rank,.ss-table td.rank{width:44px;padding-right:0}.ss-chev{display:inline-flex;vertical-align:middle;color:#6b84a0}.ss-table tr.sub td{background:#fafcfe;font-size:13px}.ss-table td.sub-name{padding-left:44px;font-weight:500}:root{--bg: #f1f7fb;--card: #ffffff;--ink: #1d3a5f;--muted: #6b84a0;--line: #e3ecf4;--teal: #14a39a;--green: #3fae6a;--indigo: #5a5fd8;--soft-teal: #e4f6f3;--soft-blue: #e6effd;--soft-purple: #efe9fd;--soft-green: #e5f6ea;--radius: 14px;--shadow: 0 4px 18px rgba(40, 90, 140, .07)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Poppins,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:linear-gradient(160deg,#eaf5fb,#f4f1fc 55%,#eaf8f2);background-attachment:fixed;font-size:14px}h1,h2,p{margin:0}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:3px solid rgba(90,95,216,.45);outline-offset:2px}.app{display:flex;flex-direction:column;gap:16px;height:100%;overflow:hidden;padding:16px 20px 0;max-width:1600px;margin:0 auto}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:18px;flex:1;min-height:0}.main{min-width:0;min-height:0;display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding:2px 8px 24px 2px;scrollbar-width:thin}.topbar{display:grid;grid-template-columns:300px minmax(0,1fr) auto;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:14px}.logo{width:76px;height:76px;flex:none;border-radius:50%;object-fit:cover;box-shadow:0 4px 14px #14a39a40}.brand-text{line-height:1.15}.brand-name{font-size:30px;font-weight:700;color:var(--teal);letter-spacing:-.5px}.brand-sub{font-size:16px;font-weight:500;color:var(--green)}.brand-tag{font-size:11px;color:var(--teal);margin-top:3px}.search{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0 14px;height:46px;width:100%;max-width:560px;justify-self:center;color:var(--muted);box-shadow:var(--shadow)}.search input{border:0;outline:0;background:transparent;width:100%;font:inherit;color:var(--ink)}.topbar-right{display:flex;align-items:center;gap:14px}.icon-btn{position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--card);display:grid;place-items:center}.dot{position:absolute;top:10px;right:11px;width:9px;height:9px;border-radius:50%;background:#ef5b6b;border:2px solid #fff}.user{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:5px 12px 5px 5px;height:46px}.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--teal),#4aa8e0);color:#fff;display:grid;place-items:center;font-weight:600}.user-name{font-weight:600;font-size:13px;line-height:1.2}.user-role{font-size:12px;color:var(--muted)}.sidebar{background:#fffc;border:1px solid var(--line);border-radius:18px;padding:14px 12px;display:flex;flex-direction:column;gap:18px;align-self:start;max-height:100%;overflow-y:auto;box-shadow:var(--shadow)}nav{display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;border:0;background:transparent;padding:11px 14px;border-radius:12px;color:var(--ink);text-align:left;width:100%}.nav-item svg{flex:none}.nav-item:hover{background:var(--soft-blue)}.nav-item.active{background:linear-gradient(90deg,#dcebfb,#ece8fb);font-weight:600;color:var(--teal)}.sidebar-foot{padding:16px 14px;border-radius:14px;background:linear-gradient(160deg,var(--soft-green),var(--soft-blue));font-style:italic;color:var(--teal);font-size:15px;line-height:1.4}.content{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:16px;align-items:start}.center,.right{display:flex;flex-direction:column;gap:16px;min-width:0}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.panel h2{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}.panel h2.mb{margin-bottom:14px}.panel-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.pill{background:var(--soft-green);color:var(--green);border-radius:999px;padding:3px 12px;font-size:12px}.welcome{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 26px;border-radius:var(--radius);background:linear-gradient(110deg,#dff1fb,#e9e6fb 60%,#e0f5ea);border:1px solid var(--line)}.welcome h1{font-size:28px;font-weight:700;line-height:1.2}.welcome p{color:var(--muted)}.date-chip{background:#fff;border-radius:10px;padding:8px 14px;border:1px solid var(--line);white-space:nowrap}.big-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.big-btn{border:1px solid transparent;border-radius:18px;padding:22px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;transition:transform .15s,box-shadow .15s;box-shadow:var(--shadow)}.big-btn:hover{transform:translateY(-3px);box-shadow:0 10px 26px #285a8c24}.big-btn strong{font-size:20px;margin-top:8px}.big-btn span{color:var(--muted);font-size:13px}.big-btn.enq{background:linear-gradient(150deg,#dff6ee,#fff);color:var(--teal);border-color:#bfe8dc}.big-btn.vis{background:linear-gradient(150deg,#e5ecff,#fff);color:var(--indigo);border-color:#cdd8fb}.big-btn.srv{background:linear-gradient(150deg,#ece5fd,#fff);color:#8a52d6;border-color:#dccdf6}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.kpi{display:flex;align-items:center;gap:12px;padding:16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--card)}.kpi-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff}.kpi.green .kpi-icon{background:var(--green)}.kpi.green{background:var(--soft-green)}.kpi.blue .kpi-icon{background:#4f86e8}.kpi.blue{background:var(--soft-blue)}.kpi.teal .kpi-icon{background:var(--teal)}.kpi.teal{background:var(--soft-teal)}.kpi.purple .kpi-icon{background:#8a62dd}.kpi.purple{background:var(--soft-purple)}.kpi-label{color:var(--muted);font-size:12px}.kpi-value{font-size:26px;font-weight:700;line-height:1.1}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;font-weight:500;font-size:12px;color:var(--muted);background:#f2f2fc;padding:11px 14px}td{padding:12px 14px;border-top:1px solid var(--line);font-size:13px;white-space:nowrap}td.strong{font-weight:600}td.muted{color:var(--muted);text-align:center;padding:28px;white-space:normal}.badge{display:inline-block;padding:3px 12px;border-radius:999px;font-size:12px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#fff)}.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick button{border:1px solid var(--line);background:var(--soft-blue);border-radius:12px;padding:14px 8px;font-size:13px}.quick button:hover{background:var(--soft-teal)}.donut-row{display:flex;flex-direction:column;gap:16px;align-items:center}.donut{width:150px;height:150px;border-radius:50%;display:grid;place-items:center}.donut-hole{width:96px;height:96px;border-radius:50%;background:#fff;display:grid;place-content:center;text-align:center}.donut-hole strong{font-size:24px;line-height:1}.donut-hole span{color:var(--muted);font-size:12px}.legend{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:8px}.legend li{display:flex;align-items:center;gap:8px}.legend i{width:10px;height:10px;border-radius:50%}.legend span{flex:1}.tagline{font-style:italic;color:var(--teal);text-align:center;background:linear-gradient(120deg,var(--soft-blue),var(--soft-green));font-size:17px}.btn{display:inline-flex;align-items:center;gap:8px;border-radius:11px;padding:10px 18px;border:1px solid var(--line);background:#fff}.btn.primary{background:linear-gradient(90deg,#4f5ad6,#6a5fe0);color:#fff;border-color:transparent;font-weight:500}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost:hover{background:var(--soft-blue)}.form-page{max-width:900px}.form-page .panel-head h2{font-size:20px}fieldset{border:1px solid var(--line);border-radius:12px;padding:16px 18px 18px;margin:0 0 16px}legend{padding:0 8px;font-weight:600;color:var(--teal)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.field{display:flex;flex-direction:column;gap:6px}.field.full{margin-top:14px}.field>span{font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{font:inherit;color:var(--ink);background:#fbfdff;border:1px solid #d3e0ec;border-radius:10px;padding:10px 12px;width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(90,95,216,.35);border-color:var(--indigo)}.field.has-error input,.field.has-error select{border-color:#e0475b}.field em{color:#d03a4e;font-size:12px;font-style:normal}.field small{color:var(--muted);font-size:12px}.radios{display:flex;gap:22px;padding:10px 0}.radios label{display:flex;align-items:center;gap:8px}.radios input{width:auto;accent-color:var(--teal)}.form-actions{display:flex;justify-content:flex-end;gap:12px}.empty{text-align:center;padding:48px 20px;display:flex;flex-direction:column;align-items:center;gap:12px}.empty p{color:var(--muted);max-width:420px}.toast{position:fixed;right:20px;bottom:20px;z-index:50;max-width:360px;padding:12px 16px;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px #285a8c33;font-size:13px}.toast.ok{border-left:4px solid var(--green)}.toast.error{border-left:4px solid #e0475b}.toast.info{border-left:4px solid var(--indigo)}.tabs{margin-left:auto;display:flex;gap:4px;background:#eef4fa;padding:4px;border-radius:10px}.tabs button{border:0;background:transparent;padding:6px 14px;border-radius:8px;font-size:13px;color:var(--muted)}.tabs button.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 4px #285a8c1f}.field.full{grid-column:1 / -1}.panel-head{flex-wrap:wrap}@media (max-width: 1200px){.content{grid-template-columns:1fr}.right{flex-direction:row;flex-wrap:wrap}.right>*{flex:1 1 260px}.topbar{grid-template-columns:auto minmax(0,1fr) auto}}@media (max-width: 860px){.app{padding:10px;height:auto;overflow:visible}.shell{grid-template-columns:1fr;grid-template-rows:auto}.main{overflow:visible;padding:0 0 20px}.sidebar{max-height:none;overflow:visible}nav{flex-direction:row;flex-wrap:wrap}.nav-item{width:auto}.sidebar-foot{display:none}.topbar{grid-template-columns:1fr auto;row-gap:12px}.search{grid-column:1 / -1;grid-row:2;max-width:none}.logo{width:56px;height:56px}.brand-name{font-size:24px}.brand-tag,.user-text{display:none}.big-actions{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.welcome{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion: reduce){.big-btn{transition:none}}.push{margin-left:auto}.btn.small{padding:6px 12px;font-size:12px;border-radius:9px}.btn:disabled{opacity:.6;cursor:wait}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}.mini-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 12px;height:38px;flex:1 1 240px;max-width:360px;color:var(--muted);background:#fbfdff}.mini-search input{border:0;outline:0;background:transparent;width:100%;font:inherit;color:var(--ink)}.mini-date{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.mini-date input{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:10px;height:38px;padding:0 10px;background:#fbfdff}.actions-col{width:90px}.row-actions{display:flex;gap:6px}.icon-sm{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--ink)}.icon-sm:hover{background:var(--soft-blue)}.icon-sm.danger{color:#d03a4e}.icon-sm.danger:hover{background:#fdecef}.sig-thumb{height:34px;width:auto;max-width:120px;background:#fbfdff;border:1px solid var(--line);border-radius:6px}.more{margin-top:12px}.form-error{color:#d03a4e;background:#fdecef;border-radius:10px;padding:10px 14px;margin:0 0 14px}.banner-error{background:#fdecef;color:#b4293c;border:1px solid #f5c2cb;border-radius:12px;padding:12px 16px}.grid .field.full{margin-top:0}.sig canvas{width:100%;height:160px;display:block;border:1.5px dashed #b9cde0;border-radius:12px;background:#fbfdff;touch-action:none;cursor:crosshair}.sig-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px}.big-actions.compact{grid-template-columns:repeat(3,1fr)}.big-actions.compact .big-btn{padding:14px 18px}.big-actions.compact .big-btn strong{font-size:17px;margin-top:2px}.big-btn.pur{background:linear-gradient(150deg,#fdf0dc,#fff);color:#c47a0c;border-color:#f4dcb0}.big-btn.out{background:linear-gradient(150deg,#fde6ea,#fff);color:#d03a5a;border-color:#f6c8d2}.big-btn.spr{background:linear-gradient(150deg,#e2f1f6,#fff);color:#1f7f9a;border-color:#bfdfea}.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.kpi{text-align:left;font:inherit;color:inherit}.kpi:hover{filter:brightness(.98)}.kpi.amber .kpi-icon{background:#e8962a}.kpi.amber{background:#fdf3e2}.kpi.rose .kpi-icon{background:#e0587a}.kpi.rose{background:#fdeaf0}.kpi-value{font-size:24px}.tabs{max-width:100%;overflow-x:auto}.tabs button{white-space:nowrap}@media (max-width: 860px){.big-actions.compact{grid-template-columns:1fr}}.panel{background:#ffffffe6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.search{position:relative}.search-clear{border:0;background:transparent;color:var(--muted);display:grid;place-items:center;padding:4px;border-radius:50%}.search-clear:hover{background:var(--soft-blue)}.search-list{position:absolute;top:50px;left:0;right:0;z-index:30;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.search-list button{width:100%;display:flex;justify-content:space-between;gap:12px;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;font:inherit;color:var(--ink);cursor:pointer}.search-list button:hover{background:var(--soft-blue)}.search-list small{color:var(--muted)}.muted-text{color:var(--muted);margin:0}.welcome{position:relative;overflow:hidden}.welcome>div:first-child{position:relative;z-index:1;max-width:55%}.welcome-art{position:absolute;right:170px;bottom:-6px;opacity:.95;pointer-events:none}.date-chip{position:relative;z-index:1;align-self:flex-start}.big-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#ffffffbf;box-shadow:0 2px 8px #285a8c1a;color:inherit}.big-actions.compact .big-icon{width:38px;height:38px;border-radius:12px}.big-btn strong{margin-top:10px}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.kpi{align-items:flex-start}.kpi-body{min-width:0}.kpi-trend{display:flex;align-items:center;gap:3px;font-size:12px;font-weight:500;margin-top:2px}.kpi-trend.up{color:#1e9560}.kpi-trend.down{color:#d03a4e}.kpi-trend.flat{color:var(--muted)}.kpi-total{font-size:12px;color:var(--muted);margin-top:2px}.activity{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.activity li{display:flex;align-items:center;gap:12px}.act-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none}.act-icon.enq{background:#dff6ee;color:var(--teal)}.act-icon.vis{background:#e5ecff;color:var(--indigo)}.act-icon.srv{background:#ece5fd;color:#8a52d6}.act-icon.pur{background:#fdf0dc;color:#c47a0c}.act-icon.out{background:#fde6ea;color:#d03a5a}.act-icon.spr{background:#e2f1f6;color:#1f7f9a}.act-text{font-size:13px;line-height:1.3;overflow-wrap:anywhere}.act-time{font-size:12px;color:var(--muted)}.badge-select{border:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:12px;font:inherit;font-size:12px}.badge-select:focus-visible{outline:2px solid var(--c)}.toolbar select{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:10px;height:38px;padding:0 10px;background:#fbfdff}.sidebar-foot{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.sidebar-foot p{margin:0}@media (max-width: 1200px){.welcome-art{right:150px}}@media (max-width: 860px){.welcome-art{display:none}.welcome>div:first-child{max-width:none}}.settings{display:flex;flex-direction:column;gap:16px;max-width:900px}.key-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px}.key-form .field{flex:1 1 260px}.safe-banner{display:flex;gap:14px;align-items:flex-start;border-radius:12px;padding:14px 16px;margin-bottom:16px}.safe-banner p{margin:4px 0 0;font-size:13px}.safe-banner.good{background:#e5f6ea;color:#1b6b45}.safe-banner.warn{background:#fdf3e2;color:#8a5a0b}.safe-banner.bad{background:#fdecef;color:#b4293c}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:0 0 16px}.facts div{background:#f4f8fc;border-radius:12px;padding:12px 14px}.facts dt{font-size:12px;color:var(--muted)}.facts dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}.sub{font-size:14px;margin:0 0 8px}.counts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.counts li{display:flex;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:8px 12px}.tool-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--line)}.tool-row:first-of-type{border-top:0}.tool-row p{margin:4px 0 0;font-size:13px;color:var(--muted);max-width:520px}.tool-row .radios{padding:8px 0 0}.auth-splash{min-height:100%;display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;color:var(--muted)}.auth-page{min-height:100%;display:grid;place-items:center;padding:24px 16px;overflow-y:auto}.auth-card{width:min(460px,100%);background:#fffffff2;border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 50px #285a8c26;padding:26px 28px 28px;display:flex;flex-direction:column;gap:14px}.auth-card h1{font-size:22px;font-weight:600;margin-top:2px}.auth-brand{display:flex;align-items:center;gap:14px}.auth-brand .logo{width:60px;height:60px}.auth-brand .brand-name{font-size:26px;line-height:1.1}.auth-brand .brand-sub{font-size:14px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eef4fa;padding:4px;border-radius:10px}.auth-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;padding:8px;border-radius:8px;color:var(--muted)}.auth-tabs button.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 4px #285a8c1f}.auth-hint{display:flex;gap:6px;align-items:flex-start;color:var(--muted);font-size:13px}.auth-notice{background:var(--soft-green);color:#23794a;border-radius:10px;padding:10px 14px;font-size:13px}.auth-submit{justify-content:center;padding:12px 18px;margin-top:4px}.auth-card .field{display:flex;flex-direction:column;gap:6px}.auth-card .field>span{font-size:13px;color:var(--muted)}.auth-card input:not([type=radio]):not([type=checkbox]),.auth-card select{font:inherit;color:var(--ink);border:1px solid #d3e0ec;border-radius:10px;padding:10px 12px;background:#fbfdff;width:100%}.pw-wrap{position:relative}.pw-wrap input{padding-right:42px!important}.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--muted);width:32px;height:32px;display:grid;place-items:center;border-radius:8px}.pw-eye:hover{background:var(--soft-blue)}.check{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted)}.strength{display:flex;align-items:center;gap:10px;margin-top:-6px}.strength .bars{display:flex;gap:4px;flex:1}.strength .bars i{height:5px;flex:1;border-radius:3px;background:#e3ecf4}.strength .bars i.s1{background:#ef4444}.strength .bars i.s2{background:#f59e0b}.strength .bars i.s3{background:#3fae6a}.strength .bars i.s4{background:#14a39a}.strength small{min-width:64px;text-align:right;color:var(--muted)}.role-pick{display:grid;grid-template-columns:1fr 1fr;gap:8px}.role-pick label{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;background:#fbfdff}.role-pick label.on{border-color:var(--teal);background:var(--soft-teal)}.role-pick input{position:absolute;opacity:0;pointer-events:none}.role-pick small{color:var(--muted);font-size:11px;line-height:1.3}.role-pick label:focus-within{outline:3px solid rgba(90,95,216,.45)}.branch-pick{display:flex;align-items:center;gap:6px;height:46px;padding:0 12px;border-radius:14px;background:var(--card);border:1px solid var(--line);color:var(--teal);font-weight:600;box-shadow:var(--shadow)}.branch-pick select{border:0;outline:0;background:transparent;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;padding-right:4px}.branch-pick.all{background:#fff7e6;border-color:#f5d9a0;color:#b7791f}.user-menu{position:relative}.user-menu .user{cursor:pointer;font:inherit;text-align:left}.menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:200px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px #285a8c33;padding:6px;display:flex;flex-direction:column}.menu-head{padding:8px 10px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:4px}.menu button{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:9px 10px;border-radius:8px;text-align:left}.menu button:hover{background:var(--soft-blue)}.banner-info{background:#fff7e6;color:#8a5a00;border:1px solid #f5d9a0;border-radius:12px;padding:10px 16px}@media (max-width: 760px){.branch-pick{height:42px}.role-pick{grid-template-columns:1fr}}.users-table .sub{font-size:12px;color:var(--muted)}.users-table .pill.you{margin-left:8px}.users-table select{font:inherit;font-size:13px;border:1px solid #d3e0ec;border-radius:8px;padding:4px 6px;background:#fbfdff}.users-table .row-actions{flex-wrap:wrap}.chips{display:flex;gap:4px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:2px 10px;font-size:12px;color:var(--muted)}.chip.on{background:var(--soft-teal);border-color:var(--teal);color:var(--teal);font-weight:600}.btn.small.danger{color:#d03a4e}.pw-modal{width:min(420px,100%)}.pw-fields{display:flex;flex-direction:column;gap:12px;padding:14px 18px}.pw-fields .field{display:flex;flex-direction:column;gap:6px}.pw-fields .field>span{font-size:13px;color:var(--muted)}.pw-fields input{font:inherit;color:var(--ink);border:1px solid #d3e0ec;border-radius:10px;padding:10px 12px;background:#fbfdff}.pw-actions{display:flex;gap:8px}div.big-btn{cursor:pointer;flex-direction:row;align-items:stretch;justify-content:space-between;gap:12px}.big-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.big-side{flex:none;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right;line-height:1.3}.big-side span{font-size:12px}.big-count{font-size:38px;font-weight:700;line-height:1;color:var(--ink);margin-bottom:4px}.big-actions.compact .big-count{font-size:30px}.lookup{position:relative}.lookup-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:260px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px #285a8c33}.lookup-list li{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--ink)}.lookup-list li small{color:var(--muted);font-size:12px}.lookup-list li.on{background:var(--soft-blue)}.lookup-list li.add{flex-direction:row;align-items:center;gap:6px;color:var(--teal);font-weight:600}.lookup-list li.empty{cursor:default;color:var(--muted)}.m-input{font:inherit;color:var(--ink);background:#fbfdff;border:1px solid #d3e0ec;border-radius:10px;height:38px;padding:0 12px;flex:1 1 200px;min-width:0}.m-input:focus{outline:2px solid rgba(90,95,216,.35);border-color:var(--indigo)}.m-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:start}.m-nav{display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 220px);overflow-y:auto;padding-right:6px;border-right:1px solid var(--line)}.m-group h3{margin:0 0 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.m-group button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;padding:7px 10px;border-radius:8px;text-align:left;font-size:13px;color:var(--ink)}.m-group button:hover{background:var(--soft-blue)}.m-group button.on{background:var(--soft-teal);color:var(--teal);font-weight:600}.m-group button small{color:var(--muted);font-size:11px}.m-title{margin:0 0 2px;font-size:18px}@media (max-width: 760px){.m-layout{grid-template-columns:1fr}.m-nav{max-height:220px;border-right:0;border-bottom:1px solid var(--line);padding:0 0 10px}}tfoot td.total-cell{font-weight:700;background:#f2f2fc;border-top:2px solid var(--line)}.is-loading{opacity:.55;transition:opacity .15s;pointer-events:none}.pager{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px}.pager-info{color:var(--muted);font-size:13px}.pager-size{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-left:auto}.pager-size select{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:8px;height:32px;padding:0 6px;background:#fbfdff}.pager-nav{display:flex;align-items:center;gap:4px}.pager-num{min-width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:13px;color:var(--ink)}.pager-num.on{background:var(--teal);border-color:var(--teal);color:#fff}.pager-num:disabled,.pager-nav .icon-sm:disabled{opacity:.5;cursor:default}.pager-dots{padding:0 4px;color:var(--muted)}.att-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.att-form label,.att-dialog label,.att-filter{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.att-form .full{grid-column:1 / -1}.att-form input,.att-form select,.att-form textarea,.att-dialog input,.att-dialog select,.att-dialog textarea,.att-filter select,.att-range input{font:inherit;font-weight:400;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}.att .panel-head{justify-content:space-between}.att-actions{display:flex;gap:12px;margin:0 0 16px}.att .panel-head .att-actions{margin:0}.att-clock{min-width:160px;justify-content:center;border-radius:999px}.att-clock:disabled{background:#e5e7eb;color:#6b7280}.att-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.att-cards article,.att-list article,.att-live button{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.att-cards span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.att-cards strong{display:block;margin:6px 0 2px;font-size:20px}.att-cards small{color:var(--muted)}.att-range{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:12px}.att-range h3{margin:0 8px 0 0}.att-list{display:flex;flex-direction:column;gap:12px}.att-list header,.att-list article>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.att-list header{margin-bottom:8px}.att-list small{color:var(--muted);font-size:12px}.att-status{border-radius:999px;padding:2px 8px;font-style:normal;font-size:12px;font-weight:700}.att-status.approved{color:#15803d;background:#dcfce7}.att-status.pending{color:#a16207;background:#fef9c3}.att-status.rejected,.att-status.cancelled{color:#b91c1c;background:#fee2e2}.att-row-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.att-filter{max-width:220px;margin-bottom:12px}.att-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:grid;place-items:center;z-index:30;padding:16px}.att-dialog{width:min(640px,100%);background:#fff;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow:auto}.att-dialog header{display:flex;justify-content:space-between;align-items:center}.att-dialog header button{border:0;background:transparent}.att-live{display:grid;grid-template-columns:2fr 1fr;gap:12px}.att-map{height:460px;border-radius:12px;border:1px solid var(--line);background:#e8eef5}.att-live button{text-align:left;display:flex;flex-direction:column;gap:4px}.att-live button.on{border-color:var(--teal);background:#f0fdfa}@media (max-width: 900px){.att-cards,.att-live,.att-list header,.att-list article>div,.att-form{grid-template-columns:1fr}}
