:root{--bg: #f1f5f9;--card: #ffffff;--primary: #2563eb;--primary-d: #1d4ed8;--primary-l: #eff6ff;--text: #0f172a;--muted: #64748b;--border: #e2e8f0;--green: #10b981;--green-bg: #d1fae5;--blue: #3b82f6;--blue-bg: #dbeafe;--orange: #f59e0b;--orange-bg: #fef3c7;--red: #ef4444;--red-bg: #fee2e2;--purple: #8b5cf6;--purple-bg: #ede9fe;--teal: #14b8a6;--teal-bg: #ccfbf1;--gray: #64748b;--gray-bg: #f1f5f9;--slate: #94a3b8;--slate-bg: #e2e8f0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.55;overflow-x:hidden}.container{max-width:1280px;margin:0 auto;padding:16px 20px 60px}header{background:linear-gradient(135deg,#1e3a8a,#2563eb 60%,#3b82f6);color:#fff;box-shadow:0 2px 10px #1e3a8a40}header .bar{max-width:1280px;margin:0 auto;padding:16px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}header h1{font-size:20px;font-weight:700;letter-spacing:.5px}header .sub{font-size:12px;opacity:.85;margin-top:2px;text-align:center}.updated{font-size:12px;opacity:.95;margin-left:auto;display:flex;align-items:center}nav{max-width:1280px;margin:0 auto;padding:0 20px;display:flex;gap:4px 6px;flex-wrap:wrap;justify-content:space-between}nav button{background:transparent;border:none;color:#dbeafe;padding:9px 14px;font-size:14px;cursor:pointer;border-radius:8px;font-family:inherit;flex:1 1 auto;min-width:92px;max-width:190px;text-align:center;white-space:nowrap;transition:background .15s,color .15s}nav button:hover{background:#ffffff1f}nav button.active{background:#fff;color:var(--primary-d);font-weight:600;box-shadow:0 1px 5px #0f172a38}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:0 1px 3px #0f172a0f}.card h3{font-size:15px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:8px}.card h3 .tip{font-size:12px;color:var(--muted);font-weight:400}.grid{display:grid;gap:14px}.kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:16px}@media (max-width: 1180px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 760px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:0 1px 3px #0f172a0f}.kpi .k-label{font-size:12px;color:var(--muted)}.kpi .k-value{font-size:22px;font-weight:700;margin-top:4px}.kpi .k-sub{font-size:11px;color:var(--muted);margin-top:2px}.kpi.blue .k-value{color:var(--blue)}.kpi.green .k-value{color:var(--green)}.kpi.orange .k-value{color:var(--orange)}.kpi.red .k-value{color:var(--red)}.kpi.purple .k-value{color:var(--purple)}.kpi.dark .k-value{color:var(--text)}.kpi.clickable{cursor:pointer;transition:box-shadow .15s,transform .1s}.kpi.clickable:hover{box-shadow:0 3px 12px #2563eb2e;transform:translateY(-1px);border-color:#93c5fd}.k-go{float:right;font-size:11px;color:var(--primary);font-weight:500}.slice{transition:opacity .15s}.slice:hover{opacity:.75}.donut-legend .li.clickable{cursor:pointer;padding:1px 4px;border-radius:6px}.donut-legend .li.clickable:hover{background:var(--primary-l)}.hbar.clickable,.vbar-col.clickable,.alert-item.clickable{cursor:pointer}.hbar.clickable:hover,.vbar-col.clickable:hover{opacity:.85}.alert-item.clickable:hover{border-color:#93c5fd;background:var(--primary-l)}.chart-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.chart-row.full{grid-template-columns:1fr}.chart-row>*{min-width:0}@media (max-width: 900px){.chart-row{grid-template-columns:1fr}}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.b-progress-pending{background:var(--gray-bg);color:var(--gray)}.b-progress-wait{background:var(--orange-bg);color:#b45309}.b-progress-sent{background:var(--blue-bg);color:#1d4ed8}.b-progress-done2{background:var(--teal-bg);color:#0f766e}.b-progress-done,.b-pay-paid{background:var(--green-bg);color:#047857}.b-pay-deposit{background:var(--blue-bg);color:#1d4ed8}.b-pay-alipay{background:var(--purple-bg);color:#6d28d9}.b-pay-pending{background:var(--orange-bg);color:#b45309}.b-pay-unpaid{background:var(--red-bg);color:#b91c1c}.b-due-normal{background:var(--green-bg);color:#047857}.b-due-soon{background:var(--orange-bg);color:#b45309}.b-draft{background:#f1f5f9;color:#475569;border:1px dashed #94a3b8}.b-due-over{background:var(--red-bg);color:#b91c1c}.b-due-settled{background:var(--slate-bg);color:var(--slate)}.b-due-tbd{background:var(--gray-bg);color:var(--gray)}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px;background:#fff}:root{--table-max-h: calc(100vh - 250px) }@media (min-width: 720px){.table-wrap{max-height:var(--table-max-h)}}table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border)}th{background:#f8fafc;color:#475569;font-weight:600;position:sticky;top:0;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:3}th .arr{font-size:10px;color:var(--primary)}tbody tr{background:#fff}tbody tr:hover{background:var(--primary-l)}tbody tr.clickable{cursor:pointer}tbody tr.overdue-row{background:#fff7f7}tbody tr.soon-row{background:#fffbeb}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tr.subtotal td{background:#f8fafc;font-weight:700}.empty{padding:40px;text-align:center;color:var(--muted)}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.filters input,.filters select{height:34px;padding:0 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:#fff;font-family:inherit;color:var(--text);max-width:100%}.filters input[type=date]{padding:0 8px}.grow{flex:1;min-width:180px;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:8px;font-size:13px}.btn{border:none;border-radius:8px;padding:8px 16px;font-size:13px;cursor:pointer;font-family:inherit;background:#e2e8f0;color:#334155;transition:.15s}.btn:hover{filter:brightness(.96)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-d)}.btn-danger{background:var(--red);color:#fff}.btn-sm{padding:4px 10px;font-size:12px}.btn-outline{background:#fff;border:1px solid var(--border)}.pager{display:flex;gap:6px;align-items:center;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}.pager button{min-width:32px;height:32px;border:1px solid var(--border);background:#fff;border-radius:8px;cursor:pointer;font-family:inherit}.pager button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.pager button:disabled{opacity:.4;cursor:not-allowed}.pager span{color:var(--muted);font-size:13px}.donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.donut-legend{display:flex;flex-direction:column;gap:6px;font-size:12px;flex:1;min-width:150px}.donut-legend .li{display:flex;align-items:center;gap:8px}.donut-legend .dot{width:10px;height:10px;border-radius:3px;flex:none}.donut-legend .li .v{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums}.hbar{display:flex;align-items:center;gap:10px;margin-bottom:8px}.hbar-label{width:110px;font-size:12px;color:#475569;text-align:right;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-track{flex:1;background:#f1f5f9;border-radius:6px;height:18px;overflow:hidden}.hbar-fill{height:100%;border-radius:6px;min-width:2px}.hbar-val{width:90px;font-size:12px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums;flex:none}.vbar-chart{display:flex;align-items:flex-end;gap:10px;height:190px;padding:24px 6px 0;overflow-x:auto}.vbar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;gap:4px}.vbar-bar{width:60%;max-width:46px;background:linear-gradient(180deg,#60a5fa,#2563eb);border-radius:6px 6px 0 0;position:relative;min-height:2px}.vbar-val{font-size:10px;color:var(--muted);white-space:nowrap;transform:translateY(-2px)}.vbar-label{font-size:11px;color:#475569}.alert-list{display:flex;flex-direction:column;gap:8px}.alert-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff}.alert-item .a-main{flex:1;min-width:0}.alert-item .a-title{font-weight:600;font-size:13px}.alert-item .a-sub{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-item .a-right{text-align:right;flex:none}.todo-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;margin-bottom:16px;border:1px solid rgba(245,158,11,.35);border-radius:10px;background:linear-gradient(180deg,#fffdf5,#fff)}.todo-bar-label{font-weight:700;font-size:13px;margin-right:4px}.todo-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:#fff;cursor:pointer;font-size:12px;white-space:nowrap;transition:border-color .15s,background .15s}.todo-pill:hover{border-color:#f59e0b;background:var(--primary-l)}.todo-pill b{color:var(--red);font-variant-numeric:tabular-nums}.masked{color:var(--muted);letter-spacing:2px;font-weight:600}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:none;align-items:flex-start;justify-content:center;z-index:100;padding:30px 16px;overflow:auto}.modal-mask.show{display:flex}.modal{background:#fff;border-radius:14px;width:100%;max-width:720px;box-shadow:0 20px 50px #00000040;animation:pop .18s ease}@keyframes pop{0%{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-head h3{font-size:16px}.modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--muted);line-height:1}.modal-body{padding:16px 20px;max-height:calc(100vh - 220px);overflow:auto}.modal-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}}.form-item{display:flex;flex-direction:column;gap:4px}.form-item.full{grid-column:1 / -1}.form-item label{font-size:12px;color:#475569;font-weight:600}.form-item input,.form-item select{border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-size:13px;font-family:inherit;background:#fff;color:var(--text)}.form-error{color:var(--red);font-size:13px;margin-top:6px}.section-title{font-size:15px;font-weight:700;margin:6px 0 12px;display:flex;align-items:center;gap:8px}.section-title .bar{width:4px;height:18px;background:var(--primary);border-radius:2px;display:inline-block}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.toolbar .spacer{flex:1}.gray-note{font-size:12px;color:var(--muted);margin-top:6px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}.stat-box{background:var(--primary-l);border:1px solid #bfdbfe;border-radius:10px;padding:12px 14px}.stat-box .v{font-size:18px;font-weight:700;color:var(--primary-d)}.stat-box .l{font-size:12px;color:#1e40af;margin-top:2px}.dm-list{display:flex;flex-direction:column;gap:10px}.dm-item{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;flex-wrap:wrap}.dm-item .t{font-size:13px}.dm-item .t b{font-size:14px}.dm-item .s{font-size:12px;color:var(--muted);margin-top:2px}footer{max-width:1280px;margin:30px auto 0;padding:0 20px;color:var(--muted);font-size:12px;text-align:center}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3a8a,#2563eb 60%,#3b82f6);padding:20px}.login-card{background:#fff;border-radius:16px;padding:36px 32px;width:100%;max-width:400px;box-shadow:0 20px 60px #0f172a4d}.login-logo{font-size:40px;text-align:center}.login-card h1{text-align:center;font-size:22px;margin-top:8px}.login-sub{text-align:center;color:var(--muted);font-size:13px;margin:6px 0 22px}.login-card form{display:flex;flex-direction:column;gap:12px}.login-btn{height:42px;font-size:15px;margin-top:6px}.login-foot{text-align:center;color:var(--muted);font-size:12px;margin-top:18px}.order-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}@media (max-width: 900px){.order-cards{grid-template-columns:1fr}}.order-card{border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px 14px;box-shadow:0 1px 3px #0f172a0d}.order-card:hover{border-color:#93c5fd;box-shadow:0 2px 8px #2563eb1f}.order-card.overdue-card{border-left:4px solid var(--red)}.order-card.archived{opacity:.75;background:#f8fafc}.oc-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.oc-head b{font-size:14px}.oc-status{margin-left:auto}.oc-body{display:flex;gap:12px}.oc-img{width:84px;height:84px;border-radius:10px;overflow:hidden;background:#f1f5f9;flex:none}.oc-img img{width:100%;height:100%;object-fit:cover}.oc-img-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:28px;color:#94a3b8;font-weight:700}.oc-info{flex:1;min-width:0}.oc-cust{font-size:13px;display:flex;gap:6px;align-items:baseline}.oc-label{color:var(--muted);font-size:11px}.oc-prod{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-color{color:var(--muted);font-weight:400}.oc-meta{font-size:12px;color:#475569;margin-top:3px}.oc-meta b{font-variant-numeric:tabular-nums}.oc-pack{font-size:12px;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oc-right{flex:none;text-align:right;display:flex;flex-direction:column;gap:6px;min-width:150px}.oc-badges{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.oc-fmt{font-size:12px;color:#475569;font-variant-numeric:tabular-nums}.oc-fmt .g{color:var(--green)}.oc-fmt .r{color:var(--red)}.oc-fmt .m{color:var(--muted)}.oc-flag{display:flex;flex-direction:column;gap:2px;font-size:11px}.oc-flag .ok{color:var(--green)}.oc-flag .no{color:var(--orange)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.seg button{border:none;background:#fff;padding:7px 14px;font-size:13px;cursor:pointer;font-family:inherit;color:#475569}.seg button.active{background:var(--primary);color:#fff}.notes-area{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:13px;font-family:inherit;color:var(--text);background:#fff;resize:vertical;box-sizing:border-box}.notes-area:disabled{background:#f8fafc;color:var(--muted)}.notice-bar{background:var(--primary-l);border:1px solid #bfdbfe;color:var(--primary-d);border-radius:10px;padding:12px 14px;font-size:13px;margin-bottom:14px}.modal-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:14px;flex-wrap:wrap}.modal-tabs button{border:none;background:none;padding:8px 14px;font-size:13px;cursor:pointer;color:#475569;border-bottom:2px solid transparent;font-family:inherit}.modal-tabs button.active{color:var(--primary-d);font-weight:600;border-bottom-color:var(--primary)}.modal.wide{max-width:980px}.ro-val{padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:#f8fafc;font-size:13px;min-height:34px}.file-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;margin-bottom:6px;background:#fff}.fr-ic{width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;font-size:18px;background:#f1f5f9;border-radius:8px}.fr-main{flex:1;min-width:0}.fr-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-btn{display:inline-block;cursor:pointer}.upload-tile{display:flex;align-items:center;justify-content:center;border:1.5px dashed #93c5fd;border-radius:10px;background:var(--primary-l);color:var(--primary-d);font-size:13px;cursor:pointer;min-height:64px;padding:8px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.media-item{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}.media-item.mini{max-width:160px}.mi-media{position:relative;height:130px;background:#f1f5f9}.mi-media img,.mi-media video{width:100%;height:100%;object-fit:cover}.mi-ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#94a3b8;font-size:11px;background:#f8fafc}.mi-media .badge{position:absolute;top:6px;left:6px;font-size:10px}.mi-desc{font-size:11px;color:#475569;padding:6px 8px}.mi-ops{display:flex;gap:6px;padding:6px 8px}.ship-block{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:#fff}.ship-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ship-media{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.spacer{flex:1}.splash{min-height:100vh;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;color:var(--muted)}.spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.order-stages{margin-bottom:14px}.os-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:9px}.os-title{font-size:14px;font-weight:600}.os-tip{font-size:12px;color:var(--muted)}.os-cur{font-size:12px;color:var(--primary-d);background:var(--primary-l);padding:2px 10px;border-radius:999px;font-weight:500}.os-chip{margin-left:auto;font-size:12px;color:var(--muted);background:#fff;border:1px solid var(--border);border-radius:999px;padding:3px 12px;cursor:pointer;font-family:inherit;transition:border-color .12s,color .12s}.os-chip:hover{border-color:var(--primary);color:var(--primary-d)}.os-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}@media (max-width: 1080px){.os-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.os-grid{grid-template-columns:1fr}}.os-card{display:flex;flex-direction:column;gap:7px;text-align:left;background:#fff;border:1px solid var(--border);border-radius:12px;padding:11px 13px;cursor:pointer;font-family:inherit;color:var(--text);box-shadow:0 1px 2px #0f172a0d;transition:border-color .12s,box-shadow .12s,transform .1s}.os-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb21}.os-card.on{border-color:var(--tx);box-shadow:0 0 0 1.5px var(--tx),0 4px 12px #2563eb1a;transform:translateY(-1px)}.os-top{display:flex;align-items:center;gap:6px;width:100%}.os-n{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;flex:none;background:var(--ic)}.os-t{font-size:14px;font-weight:600}.os-sub{margin-left:auto;font-size:11px;color:var(--tx);background:var(--bg);padding:1px 8px;border-radius:999px;white-space:nowrap}.os-d{font-size:12px;color:var(--muted);line-height:1.5;min-height:36px;width:100%}.os-foot{display:flex;align-items:baseline;gap:5px;border-top:1px dashed var(--border);padding-top:8px;width:100%}.os-num{font-size:22px;font-weight:700;line-height:1;color:var(--tx)}.os-u{font-size:12px;color:var(--muted)}.os-go{margin-left:auto;font-size:12px;color:var(--tx);opacity:0;transition:opacity .12s}.os-card:hover .os-go,.os-card.on .os-go{opacity:1}@media (max-width: 560px){.os-chip{margin-left:0}}@media (max-width: 760px){body{font-size:15px}.container{padding:12px 10px 80px}header .bar{padding:12px 12px 10px;gap:10px}header h1{font-size:17px}header .sub{font-size:11px}.updated{margin-left:auto;flex-wrap:wrap;justify-content:flex-end;gap:4px}nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 10px;scrollbar-width:none}nav::-webkit-scrollbar{display:none}nav button{padding:9px 13px;font-size:14px;white-space:nowrap;flex-shrink:0}.card{padding:12px;border-radius:10px}.card h3{font-size:14px}.filters{gap:7px}.filters input,.filters select,.grow,input,select,textarea{font-size:16px;min-height:40px}.filters input[type=date]{min-height:40px}.btn{padding:9px 14px;font-size:14px;min-height:38px}.btn-sm{padding:5px 10px;font-size:13px;min-height:30px}.table-wrap{-webkit-overflow-scrolling:touch}table{font-size:13px}.modal-mask{padding:12px 6px}.modal{max-width:100%}.modal-body,.modal-head,.modal-foot{padding:12px 14px}.form-grid{grid-template-columns:1fr}.os-grid{gap:8px}.os-card{padding:10px 12px}.pager{justify-content:center}.chart-row{gap:10px}.modal-mask{padding:0;align-items:stretch;overflow:hidden}.modal,.modal.wide{max-width:100%;border-radius:0;height:100%;display:flex;flex-direction:column;animation:none}.modal-head{flex:none}.modal-body{flex:1 1 auto;max-height:none;overflow:auto;-webkit-overflow-scrolling:touch}.modal-foot{flex:none}.modal-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.modal-tabs::-webkit-scrollbar{display:none}.modal-tabs button{flex:none}.btn-sm{min-height:36px;padding:7px 12px}.todo-pill{min-height:34px;padding:6px 12px}.seg-btn,.seg button,.stage-all{min-height:34px}.pager button{min-width:40px;height:40px}.modal-close{min-width:44px;min-height:44px;font-size:26px}.gray-note,.mi-desc,.oc-meta,.oc-pack,.al-mail,.form-item label{font-size:12px}.gray-note,.form-item label,.oc-meta{overflow-wrap:anywhere}}@media (max-width: 420px){header .updated{font-size:11px}.updated a{display:none}}.dz:hover{border-color:var(--primary, #1677ff)!important;background:#1677ff0a!important}.dz:active{transform:scale(.999)}.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.page-head .ph-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#eef2ff,#dbeafe);display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;box-shadow:inset 0 0 0 1px #2563eb14}.page-head h2{font-size:18px;font-weight:700;margin:0;line-height:1.25}.page-head .ph-sub{font-size:12px;color:var(--muted);margin-top:3px}.page-head .ph-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.cert-thumb{width:42px;height:42px;border-radius:8px;border:1px solid var(--border);background:#f8fafc;object-fit:cover;display:block;cursor:zoom-in}.cert-thumb-box{width:42px;height:42px;border-radius:8px;border:1px solid var(--border);background:#f8fafc;display:flex;align-items:center;justify-content:center;font-size:18px}.cert-name{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.cert-file{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--muted)}.row-actions{display:flex;gap:6px;white-space:nowrap}.empty-state{padding:44px 20px;text-align:center}.empty-state .es-icon{font-size:42px;opacity:.5;line-height:1}.empty-state .es-title{font-size:14px;font-weight:600;margin-top:12px}.empty-state .es-sub{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.7}.empty-state .es-act{margin-top:14px}.seg{display:inline-flex;gap:6px}.seg-btn{padding:5px 13px;border-radius:8px;font-size:13px;font-weight:600;border:1px solid;cursor:pointer;transition:background .15s,box-shadow .15s,color .15s}.seg-btn.red{color:#b91c1c;border-color:#fecaca;background:#fff5f5}.seg-btn.red:hover{background:#fee2e2}.seg-btn.red.active{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:0 2px 6px #dc262647}.seg-btn.green{color:#047857;border-color:#bbf7d0;background:#f0fdf4}.seg-btn.green:hover{background:#dcfce7}.seg-btn.green.active{background:#16a34a;border-color:#16a34a;color:#fff;box-shadow:0 2px 6px #16a34a47}@media (max-width: 760px){nav{flex-wrap:wrap;overflow:visible;justify-content:space-between;gap:4px;padding:0 10px}nav button{flex:1 1 22%;min-width:0;max-width:none;padding:6px 2px;font-size:12px}h3{line-height:1.35}h3 .tip,.card h3 .tip{display:block;margin-top:3px}input,select,textarea{max-width:100%}.toolbar,.filters,.page-tools,.ml-auto{flex-wrap:wrap}}@media (max-width: 760px){.card h3 :where(.tip,.gray-note){display:block!important;margin:3px 0 0!important}.memo-row{flex-direction:column;align-items:stretch!important}.memo-row>input,.memo-row>select,.memo-row>button{width:100%!important}.memo-row>input[type=date]{width:100%!important}}.stage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}.stage-grid>button{min-width:0}@media (max-width: 1100px){.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 620px){.stage-grid{grid-template-columns:1fr}}.bc-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:6px;font-size:13px;color:#475569}.bc-row>b{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}.bc-row>b.num-amount{color:#0f172a}.bc-row>b.num-paid{color:var(--green)}.bc-row>b.num-unpaid{color:var(--red)}.bc-row>b.num-charge{color:var(--red)}.bc-row>b.num-self{color:#6366f1}.bc-foot{margin-top:auto;padding-top:8px;border-top:1px dashed #e2e8f0;font-size:12px;color:#64748b}.board-card{display:flex;flex-direction:column;text-align:left;font-family:inherit;cursor:pointer;border-radius:12px;padding:12px 14px;min-height:152px;background:#fff;border:1px solid var(--border);box-shadow:0 1px 2px #0f172a0d}.board-card.b-cash{background:#fff}.board-card.b-credit{background:#fffbeb}.board-card.b-monthly{background:#ecfdf5}.board-card.b-fees{background:#f5f3ff}.board-card.on{border:1.5px solid var(--primary);box-shadow:0 0 0 1px var(--primary)}.bc-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.bc-title{font-size:15px;white-space:nowrap;flex:none}.bc-note{font-size:12px;color:#64748b;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bc-go{flex:none;white-space:nowrap;font-size:12px;color:#94a3b8}.board-card.on .bc-go{color:var(--primary)}@media (max-width: 760px){nav button{padding:10px 8px;font-size:13px;min-width:74px}.vbar-val{font-size:9px}.vbar-label{font-size:10px}.hbar-label{width:84px}.hbar-val{width:74px}}.asst-flex{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.asst-nav{width:210px;flex:none;padding:10px}.asst-body{flex:1;min-width:320px}@media (max-width: 720px){.asst-nav{width:100%}.asst-body{min-width:0;width:100%}}.asst-group-title{font-size:12px;font-weight:700;color:#334155;margin:4px 0 6px 4px;letter-spacing:.5px}.asst-item{width:100%;text-align:left;margin-bottom:5px;padding:7px 12px;font-size:13px}@media print{@page{size:A4;margin:12mm}body{background:#fff!important}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:100%;border:none!important;box-shadow:none!important;padding:0!important}.no-print{display:none!important}.print-area table{font-size:11.5px}}
