/* Minh Phú Desk — self-contained, offline interface */
:root{--bg:#f5f7f8;--paper:#fff;--ink:#1d3037;--text:#465a62;--muted:#74868d;--line:#e3e9eb;--teal:#0569a1;--teal-dark:#075985;--teal-soft:#e0f2fe;--nav:#7dd3fc;--blue:#4274ce;--amber:#ae731c;--red:#ce5262;--radius:15px;--shadow:0 4px 20px #18354310;--side:228px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button{color:inherit}a{color:var(--teal);text-decoration:none}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #76adc8;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #d8e2e4;border-radius:9px;background:white;color:var(--ink);padding:11px 12px;outline:none;min-width:0}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0569a113}input::placeholder,textarea::placeholder{color:#98a6ab}textarea{resize:vertical;min-height:88px;line-height:1.6}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.small{font-size:12px}.strong{font-weight:700}.hide{display:none!important}
.shell{min-height:100vh;display:flex}.sidebar{width:var(--side);flex-shrink:0;position:fixed;inset:0 auto 0 0;background:var(--nav);padding:27px 16px 18px;color:#97acb6;display:flex;flex-direction:column;z-index:40}.brand{display:flex;align-items:center;gap:10px;padding:0 12px 30px;color:#fff}.brand-mark{height:40px;width:40px;display:grid;place-items:center;border-radius:12px;background:#a3daf6;color:#18303c;font-size:17px;font-weight:850;letter-spacing:-1.5px;box-shadow:0 4px 15px #0002}.brand-name{font-size:17px;font-weight:800;letter-spacing:.25px;line-height:1.2}.brand-sub{font-size:10px;letter-spacing:2.1px;margin-top:5px;color:#93a9b4}.side-label{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#758c97;padding:10px 13px}.nav{display:grid;gap:5px}.nav button{display:flex;align-items:center;gap:11px;width:100%;padding:12px 13px;border:0;border-radius:9px;color:#b6c5cd;text-align:left;background:transparent;font-size:13px;font-weight:550}.nav button:hover{background:#1b333f;color:#fff}.nav button.active{background:#b1ddf3;color:#21333c;font-weight:750}.nav button svg{width:18px;height:18px}.nav-count{font-size:10px;background:#ffffff16;border-radius:6px;padding:1px 6px;margin-left:auto;min-width:21px;text-align:center}.active .nav-count{background:#25394316}.side-spacer{flex:1;min-height:40px}.side-hint{margin:14px 5px 19px;border-radius:11px;background:#1b323e;padding:14px;border:1px solid #304550}.side-hint b{color:#e4ecf0;font-size:12px;display:block;margin-bottom:6px}.side-hint p{font-size:11px;line-height:1.75;color:#9dafb8}.side-hint button{margin-top:11px;border:0;color:#b3daed;background:transparent;padding:0;font-size:11px;display:flex;align-items:center;gap:6px}.side-hint svg{width:14px}.side-profile{display:flex;align-items:center;gap:10px;border-top:1px solid #314752;padding:16px 10px 0;color:#dbe4e8}.side-profile strong{font-size:12px;display:block}.side-profile small{font-size:10px;color:#91a5af}.side-profile .avatar{background:#465d68;color:#c3e5f6}.content{min-width:0;width:100%;margin-left:var(--side)}
.topbar{height:75px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border-bottom:1px solid var(--line);padding:0 30px}.top-left{display:flex;align-items:center;gap:18px;min-width:0}.crumb{font-size:12px;color:var(--muted);white-space:nowrap}.crumb b{color:var(--ink);font-weight:600}.crumb span{margin:0 9px;color:#bcc7cb}.global-search{display:flex;align-items:center;gap:8px;max-width:360px;background:#f6f8f9;border:1px solid #eaeef0;border-radius:9px;padding:7px 11px;color:#7d8c92;font-size:12px;text-align:left;min-width:235px}.global-search svg{width:16px;height:16px}.global-search kbd{margin-left:auto;border:1px solid #dce4e6;border-radius:4px;padding:0 4px;background:#fff;font-size:10px}.top-right{display:flex;align-items:center;gap:13px;min-width:0}.date-top{font-size:11px;color:var(--muted);white-space:nowrap}.top-role{border-left:1px solid var(--line);padding-left:14px;display:flex;align-items:center;gap:9px}.role-copy{min-width:0}.role-copy small{font-size:10px;color:var(--muted);display:block}.role-copy select{width:auto;max-width:180px;border:0;border-radius:0;padding:0 13px 0 0;background:transparent;font-size:12px;font-weight:650;box-shadow:none}.avatar{width:34px;height:34px;display:inline-grid;place-items:center;flex-shrink:0;border-radius:10px;background:#e5ecf0;color:#436373;font-size:11px;font-weight:750}.avatar.c1{background:#e7eefb;color:#5b77b9}.avatar.c2{background:#eee9fc;color:#8260bc}.avatar.c3{background:#ffeddf;color:#b87b41}.avatar.tiny{height:25px;width:25px;border-radius:50%;font-size:9px}.avatar.big{width:47px;height:47px;border-radius:13px;font-size:15px}.icon-btn{background:white;border:1px solid var(--line);border-radius:8px;height:35px;min-width:35px;display:inline-grid;place-items:center;position:relative;padding:6px}.icon-btn:hover{border-color:#abc3cf;color:var(--teal);background:#f5f8fa}.icon-btn svg{width:17px;height:17px}.alert-dot{width:7px;height:7px;background:var(--red);border:2px solid white;box-sizing:content-box;position:absolute;right:3px;top:2px;border-radius:50%}.mobile-menu{display:none}.main{max-width:1900px;margin:auto;padding:27px 30px 35px}.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#576f7b;background:#edf2f5;border:1px solid #dde7ec;border-radius:8px;padding:8px 12px;margin-bottom:24px}.demo-banner div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.demo-banner svg{width:14px;height:14px}.demo-banner b{font-weight:750;color:#355869}.demo-banner button{border:0;background:transparent;color:#345a6d;font-size:11px;font-weight:650;white-space:nowrap}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.eyebrow{color:#7c8d95;font-size:10px;letter-spacing:1.65px;font-weight:700;margin-bottom:7px}.heading h1{font-size:29px;font-weight:750;letter-spacing:-1.1px;line-height:1.2}.heading p{color:var(--muted);font-size:12px;line-height:1.7;margin-top:7px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.heading .actions{padding-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:9px 14px;border:1px solid var(--line);border-radius:8px;color:#435a61;background:white;font-weight:650;font-size:12px;white-space:nowrap}.btn svg{height:16px;width:16px}.btn:hover{background:#f2f5f6;border-color:#b9cad2}.btn.primary{background:var(--teal);color:white;border-color:var(--teal);box-shadow:0 2px 5px #0569a11a}.btn.primary:hover{background:var(--teal-dark)}.btn.soft{background:var(--teal-soft);border-color:var(--teal-soft);color:var(--teal)}.btn.danger{color:#bc4254;border-color:#f0d7dd;background:#fff6f7}.btn.sm{min-height:30px;padding:5px 9px;font-size:11px}.link-btn{border:0;background:transparent;color:var(--teal);font-size:12px;font-weight:650;padding:0;cursor:pointer}.link-btn:hover{text-decoration:underline}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:17px 19px;position:relative;overflow:hidden}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:550;color:#6a7f85}.stat-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#eaf1fa;color:#6585b2}.stat-icon.green{background:#e7f0f4;color:#396f8a}.stat-icon.amber{background:#fff2df;color:#bd852f}.stat-icon.red{background:#fdeef0;color:#c8616e}.stat-value{font-size:32px;letter-spacing:-1px;line-height:1.1;margin:9px 0 7px;font-weight:750;display:flex;align-items:center;gap:10px}.stat-note{font-size:11px;color:#839398}.stat-note b{color:var(--teal);font-weight:650}.mini-bars{display:flex;gap:3px;align-items:end;height:25px;margin-left:auto;opacity:.55}.mini-bars i{width:5px;background:#8cabba;border-radius:2px}.pill{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:5px;font-size:10px;font-weight:650;background:#f0f3f5;color:#6d8189;white-space:nowrap}.pill.red{background:#fcecef;color:#c15365}.pill.amber{background:#fff1db;color:#af7d28}.pill.green{background:#e5eff4;color:#37708c}.pill.blue{background:#e9effd;color:#557cc2}.pill.purple{background:#eeeafb;color:#8666bd}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.workspace{border-radius:13px;border:1px solid var(--line);background:#fff;overflow:hidden}.workspace-top{padding:17px 18px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.tabs{display:flex;gap:21px;align-items:center}.tab{background:none;border:0;border-bottom:2px solid transparent;padding:0 0 14px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px;font-weight:600}.tab svg{width:16px;height:16px}.tab.active{border-color:var(--teal);color:var(--teal)}.workspace-top .tiny-note{font-size:10px;color:#9ca9ad;padding-bottom:14px;display:flex;align-items:center;gap:5px}.toolbar{padding:14px 18px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.search-field{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:0 11px;flex:1;min-width:190px;color:#8b9ca3}.search-field input{border:0;box-shadow:none;padding:9px 0;background:transparent;font-size:12px}.search-field:focus-within{border-color:#84a7b8}.search-field svg{width:16px;height:16px}.filter{width:auto;min-width:116px;max-width:180px;font-size:11px;padding:10px 28px 10px 10px;cursor:pointer}.chip-row{padding:0 18px 13px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.chip{background:white;border:1px solid var(--line);border-radius:20px;padding:5px 10px;font-size:10px;color:#7b8d92;display:flex;align-items:center;gap:5px}.chip.active{background:#e9f1f5;border-color:#b8d0dc;color:var(--teal);font-weight:700}.chip.danger.active{background:#fdf0f0;border-color:#f0c4cd;color:var(--red)}.result-count{margin-left:auto;font-size:10px;color:#8b999f}.board-scroll{overflow-x:auto;background:#f6f8f9;padding:16px;scrollbar-color:#ccd5d9 transparent;scrollbar-width:thin}.board{display:grid;grid-template-columns:repeat(5,minmax(206px,1fr));gap:13px;min-height:385px;align-items:start}.lane{min-width:0;border-radius:11px;transition:background .15s;min-height:340px}.lane.drag-over{background:#e0ebf1;outline:2px dashed #80a5b7}.lane-title{display:flex;align-items:center;gap:7px;padding:2px 3px 13px;font-size:11px;font-weight:700;color:#516a71}.lane-title .number{font-size:10px;font-weight:500;background:#e8edef;border-radius:5px;padding:1px 6px;color:#7d8e96}.lane-title .icon-btn{margin-left:auto;background:transparent;border:0;min-width:22px;width:22px;height:22px;padding:2px;color:#99aaae}.lane-title .dot{height:7px;width:7px}.ticket-card{background:white;border:1px solid #dfe7e9;border-radius:10px;padding:13px;margin-bottom:11px;cursor:pointer;box-shadow:0 2px 3px #25384203;transition:transform .16s,border-color .16s,box-shadow .16s}.ticket-card:hover{border-color:#7ba2b5;box-shadow:0 6px 15px #17354410;transform:translateY(-2px)}.ticket-card.dragging{opacity:.45}.ticket-card.urgent{border-top:3px solid #e8969e;padding-top:11px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:12px}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;color:#718d96;font-weight:650;letter-spacing:.15px}.device-tag{display:flex;align-items:center;gap:5px;font-size:10px;color:#7c8b94;margin-bottom:5px}.device-tag svg{width:13px;height:13px}.ticket-card h3{font-size:13px;font-weight:700;line-height:1.45;margin-bottom:6px;letter-spacing:-.1px}.ticket-card .issue{font-size:11px;line-height:1.65;color:#7b8c93;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px}.card-client{font-size:10px;margin-top:12px;color:#698087;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-client svg{width:13px;height:13px}.card-tags{display:flex;gap:5px;align-items:center;margin:11px 0;flex-wrap:wrap;min-height:22px}.due{font-size:9px;color:#849499;display:inline-flex;gap:4px;align-items:center;background:#f5f7f8;border-radius:4px;padding:3px 5px}.due svg{width:11px;height:11px}.due.late{color:#c95a68;background:#fff0f1}.card-footer{border-top:1px solid #f0f3f4;display:flex;align-items:center;justify-content:space-between;padding-top:10px;gap:7px}.person{display:flex;gap:6px;align-items:center;font-size:10px;color:#647c82;min-width:0}.person span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unassigned{font-size:10px;color:#bd8640}.notes-count{font-size:10px;color:#99a7ac;display:flex;gap:3px;align-items:center;white-space:nowrap}.notes-count svg{width:12px;height:12px}.add-lane{border:1px dashed #d8dfe2;background:transparent;border-radius:8px;font-size:10px;color:#94a4a8;width:100%;padding:10px;display:flex;gap:6px;align-items:center;justify-content:center}.add-lane svg{width:13px;height:13px}.add-lane:hover{color:var(--teal);border-color:#94b1c0;background:#edf3f6}.lane-empty{font-size:11px;text-align:center;border:1px dashed #dfe6e8;padding:27px 8px;color:#a3b0b3;border-radius:9px;margin-bottom:12px}.workspace-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-top:1px solid var(--line);font-size:10px;color:#8b9ca1}.key-hint kbd{font-size:9px;padding:1px 4px;background:#f2f5f6;border:1px solid #e1e6e9;border-radius:3px;margin:0 2px}.status{display:inline-flex;gap:5px;align-items:center;padding:5px 7px;font-size:10px;border-radius:5px;font-weight:650;white-space:nowrap}.status-new{background:#eaf0fd;color:#587dcc}.status-assigned{background:#ede8fa;color:#8663b8}.status-progress{background:#e5f1f7;color:#25839b}.status-waiting{background:#fff1dc;color:#b18130}.status-done{background:#e7f0f5;color:#4b7c94}.status-delivered{background:#e6eff3;color:#46758c}.status-cancelled{background:#f9eaed;color:#bd5d6c}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;text-align:left;font-size:12px;white-space:nowrap}.data-table th{font-size:10px;letter-spacing:.3px;font-weight:600;background:#f6f8f9;color:#8a9ba2;padding:12px 17px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.data-table td{padding:15px 17px;border-bottom:1px solid #edf1f2;color:#67808a}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover{background:#f6f9fb}.data-table tr:last-child td{border-bottom:0}.data-table strong{font-weight:650;font-size:12px;color:#314d55;display:block;margin-bottom:3px}.data-table small{font-size:10px;color:#93a3a9}.empty{text-align:center;padding:58px 20px;color:#90a0a6}.empty .empty-icon{height:51px;width:51px;display:grid;place-items:center;background:#edf2f5;color:#4a7d96;border-radius:15px;margin:0 auto 13px}.empty h3{color:#4d6870;font-size:15px;margin-bottom:6px}.empty p{font-size:12px;margin-bottom:16px}
.grid-2{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:19px}.panel{border-radius:13px;background:white;border:1px solid var(--line);min-width:0;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 20px 16px}.panel-head h2{font-size:14px;font-weight:700;letter-spacing:-.1px}.panel-head p{font-size:11px;color:var(--muted);margin-top:3px}.panel-body{padding:0 20px 20px}.welcome{display:flex;align-items:center;justify-content:space-between;border-radius:14px;background:#15313f;color:white;padding:26px 29px;margin-bottom:22px;gap:24px;position:relative;overflow:hidden}.welcome:after{content:'';position:absolute;right:6%;top:-130px;width:330px;height:330px;border:45px solid #ffffff04;border-radius:50%;pointer-events:none}.welcome small{font-size:10px;letter-spacing:1.8px;color:#a2bfcd}.welcome h2{font-size:25px;line-height:1.4;font-weight:650;letter-spacing:-.7px;margin:7px 0}.welcome p{font-size:12px;color:#b2c4cd;line-height:1.7;max-width:650px}.welcome .btn{background:#abdcf4;color:#2e4652;border:0;z-index:1}.list-item{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #edf1f2}.list-item:last-child{border-bottom:0}.list-item .grow{flex:1;min-width:0}.list-item h3{font-size:12px;font-weight:650;margin-bottom:3px}.list-item p{font-size:11px;color:var(--muted);line-height:1.7}.list-item.clickable{cursor:pointer}.list-item.clickable:hover{background:#f8fafb}.progress{height:5px;border-radius:4px;background:#edf0f2;margin-top:9px;overflow:hidden}.progress span{display:block;height:100%;background:#79a5bb;border-radius:4px}.progress.amber span{background:#ddba77}.bar-label{display:flex;justify-content:space-between;font-size:11px;color:#6f8790;margin-top:15px}.insight-number{font-size:32px;font-weight:750;letter-spacing:-1px;margin:7px 0;color:#284b5c}.activity-dot{height:28px;width:28px;display:grid;place-items:center;border-radius:8px;background:#eaf1f5;color:#668797}.activity-dot svg{width:14px;height:14px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.customer-card,.team-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:19px;min-width:0}.customer-card{cursor:pointer;transition:.15s}.customer-card:hover{border-color:#9fbcca;transform:translateY(-2px);box-shadow:var(--shadow)}.customer-top{display:flex;gap:11px;align-items:center;margin-bottom:17px}.customer-top h3{font-size:14px;font-weight:650}.customer-top p{font-size:10px;color:var(--muted);margin-top:3px}.customer-info{border-top:1px solid #edf1f2;border-bottom:1px solid #edf1f2;padding:12px 0;display:grid;gap:9px;color:#738a93;font-size:11px}.customer-info div{display:flex;gap:8px;align-items:center}.customer-info svg{width:14px;height:14px;color:#9dafb4}.customer-bottom{padding-top:12px;display:flex;justify-content:space-between;font-size:10px;color:#8b9fa7}.customer-bottom b{color:#406476}.role-matrix{width:100%;border-collapse:collapse;font-size:12px}.role-matrix td,.role-matrix th{padding:12px 15px;text-align:center;border-bottom:1px solid var(--line)}.role-matrix td:first-child,.role-matrix th:first-child{text-align:left;white-space:nowrap}.role-matrix th{background:#f6f7f8;font-weight:600;font-size:10px;color:#7e939a}.yes{color:var(--teal);font-weight:750}.no{color:#bdc8cc}.notice{padding:12px 14px;background:#f0f4f6;border:1px solid #dce5ea;color:#657a85;border-radius:9px;font-size:11px;line-height:1.75;margin-bottom:20px}.notice.amber{background:#fff9ec;color:#9d8248;border-color:#f1e4c9}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}.cal-head{padding:10px;background:#f4f6f7;color:#7f9196;text-align:center;font-size:11px}.cal-cell{min-height:125px;background:white;padding:8px;min-width:0}.cal-cell.other{background:#f9fafb;opacity:.7}.cal-day{font-size:11px;color:#82959c;width:24px;height:24px;display:grid;place-items:center;margin-bottom:5px}.cal-day.today{background:var(--teal);color:white;border-radius:50%}.cal-ticket{display:block;width:100%;border:0;border-radius:5px;background:#eaf1f4;color:#466879;text-align:left;font-size:10px;padding:5px;margin-top:4px;line-height:1.6;overflow:hidden}.cal-ticket b{display:block;font-size:9px;font-weight:500}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:10px}.calendar-toolbar h2{font-size:18px}.week-chart{display:flex;align-items:flex-end;gap:20px;height:160px;padding:12px 6px 28px;border-bottom:1px solid var(--line);margin-bottom:20px}.week-col{flex:1;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;height:100%;gap:4px;position:relative}.week-col i{display:block;width:65%;max-width:32px;background:#739fb5;border-radius:5px 5px 1px 1px;min-height:2px}.week-col strong{font-size:10px;font-weight:550;color:#728791}.week-col small{position:absolute;bottom:-24px;font-size:10px;color:#8f9aa0}.donut{width:146px;height:146px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.donut-center{width:112px;height:112px;background:#fff;border-radius:50%;display:grid;place-content:center;text-align:center;font-size:26px;font-weight:750;color:#38525f}.donut-center small{font-size:10px;font-weight:500;color:#939ea4;margin-top:2px}.legend{display:grid;gap:10px;font-size:11px;color:#7b8990}.legend div{display:flex;gap:8px;align-items:center}.legend b{margin-left:auto;color:#4a6370;font-weight:550}.distribution{display:flex;gap:22px;align-items:center;justify-content:center;padding:6px 0 18px;flex-wrap:wrap}
.overlay{position:fixed;inset:0;background:#152f3852;backdrop-filter:blur(3px);z-index:70;display:flex;justify-content:flex-end;animation:fade .15s ease}.drawer{background:white;width:min(730px,100%);height:100%;display:flex;flex-direction:column;box-shadow:-15px 0 60px #112c3820;animation:slide .18s ease;min-width:0}.drawer.wide{width:min(860px,100%)}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:13px;padding:23px 27px;border-bottom:1px solid var(--line)}.drawer-head h2{font-size:23px;letter-spacing:-.6px;line-height:1.3}.drawer-head small{display:block;font-size:10px;letter-spacing:1.4px;color:#6b8b9b;font-weight:700;margin-bottom:7px}.drawer-head p{font-size:11px;color:#8ca0a6;margin-top:7px}.drawer-main{padding:24px 27px;overflow:auto;flex:1;min-height:0}.drawer-foot{padding:16px 27px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;background:#fff;gap:10px}.drawer-foot .small{font-size:10px;color:#91a3a7}.drawer form.full{display:flex;flex-direction:column;flex:1;min-height:0}.form-section{margin-bottom:26px}.section-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650;color:#3d5a69;margin-bottom:16px}.section-title .step{display:grid;place-items:center;height:23px;width:23px;border-radius:7px;background:#eaf1f4;color:#668594;font-size:10px}.section-title:after{content:'';height:1px;flex:1;background:#edf1f2;margin-left:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.wide{grid-column:1/-1}.field label{font-size:11px;font-weight:650;color:#607c84}.field label em{font-style:normal;color:#d07b7d}.field input,.field select,.field textarea{font-size:12px}.field small{font-size:10px;color:#8ea3aa;line-height:1.6}.field .error{color:#ce596a}.found-customer{font-size:11px;padding:10px;background:#edf4f7;color:#4a758a;border:1px solid #d4e3ea;border-radius:7px;margin-top:12px}.device-options{display:flex;gap:7px;flex-wrap:wrap}.device-option{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:white;font-size:11px;color:#7e929a}.device-option svg{width:16px}.device-option.active{border-color:#8dadbd;background:#edf4f7;color:#3e697e;font-weight:650}.detail-hero{display:flex;gap:14px;align-items:center;margin:20px 0}.device-large{width:53px;height:53px;display:grid;place-items:center;background:#edf2f5;color:#48758c;border-radius:14px}.device-large svg{width:27px;height:27px}.detail-hero h3{font-size:20px;font-weight:700;letter-spacing:-.5px}.detail-hero p{font-size:11px;color:#8fa1a7;margin-top:4px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-box{padding:15px 16px;border:1px solid var(--line);border-radius:10px;margin-bottom:17px}.detail-box h3{font-size:12px;color:#4e6976;margin-bottom:13px}.detail-field small{display:block;font-size:10px;color:#94a5a9;margin-bottom:5px}.detail-field div{font-size:12px;color:#47656d;overflow-wrap:anywhere}.detail-field.wide{grid-column:1/-1}.issue-box{padding:14px;background:#f5f7f8;border:1px solid #eaeef0;border-radius:9px;font-size:12px;color:#66818a;white-space:pre-wrap;line-height:1.85}.flow{display:flex;margin-bottom:23px;padding-bottom:19px;border-bottom:1px solid var(--line)}.flow-step{flex:1;position:relative;font-size:9px;color:#adb9be;text-align:center}.flow-step:before{content:'';position:absolute;height:2px;background:#eaeef0;top:12px;left:0;right:0}.flow-step:first-child:before{left:50%}.flow-step:last-child:before{right:50%}.flow-step i{display:grid;place-items:center;font-size:9px;font-style:normal;width:25px;height:25px;margin:0 auto 7px;position:relative;z-index:1;background:#f3f5f6;border:3px solid white;border-radius:50%;color:#9ba7ad}.flow-step.done{color:#69828f}.flow-step.done i{background:#dce7ed;color:#537282}.flow-step.current{font-weight:700;color:var(--teal)}.flow-step.current i{background:var(--teal);color:white;box-shadow:0 0 0 2px #dbe8ee}.detail-toolbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.detail-toolbar .right{margin-left:auto}.timeline{border-left:1px solid #e0e6e9;margin:8px 0 10px 7px;padding-left:22px}.event{position:relative;margin-bottom:22px}.event:before{content:'';position:absolute;left:-28px;top:4px;width:9px;height:9px;background:#99b8c7;border:2px solid white;border-radius:50%}.event p{font-size:12px;color:#637f86;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.event small{font-size:10px;color:#9cacb1;display:block;margin-top:5px}.note-form{display:flex;gap:9px;align-items:end;margin-top:20px}.note-form textarea{font-size:12px;min-height:70px}.note-form .btn{flex-shrink:0}.drawer-subtabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:24px 0 18px}.drawer-subtabs .tab{padding-bottom:11px}.import-zone{padding:25px;background:#f7f9fa;border:1px dashed #b5c6ce;border-radius:11px;text-align:center;margin-bottom:16px}.import-zone p{font-size:11px;color:#8c9aa1;margin-top:7px}.import-zone input{display:none}.import-zone label{cursor:pointer}.import-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.import-grid select{font-size:11px}.import-summary{display:flex;gap:12px;flex-wrap:wrap;padding:14px;background:#f3f6f8;border:1px solid #dee7ec;border-radius:9px;margin-top:16px;font-size:11px;color:#788b94}.import-summary b{font-size:16px;color:#42697c}.preview-wrap{max-height:270px;overflow:auto;margin-top:17px;border:1px solid var(--line);border-radius:8px}.preview-table{width:100%;border-collapse:collapse;font-size:10px}.preview-table td,.preview-table th{padding:9px;text-align:left;border-bottom:1px solid var(--line);max-width:190px;overflow-wrap:anywhere;vertical-align:top}.preview-table th{background:#f3f6f7;color:#839299;font-weight:650}.preview-table td{color:#778891}.guide-grid{display:grid;gap:14px}.guide-card{border:1px solid var(--line);border-radius:11px;padding:16px}.guide-card h3{font-size:13px;margin-bottom:8px;color:#526f7e}.guide-card p,.guide-card li{font-size:12px;line-height:1.9;color:#818d93}.guide-card ul{padding-left:20px;margin-bottom:0}.backup-options{display:grid;gap:14px}.backup-option{border:1px solid var(--line);border-radius:11px;padding:18px;display:flex;justify-content:space-between;align-items:center;gap:15px}.backup-option h3{font-size:13px;margin-bottom:4px}.backup-option p{font-size:11px;color:#87949b;line-height:1.7}.backup-option .btn{flex-shrink:0}.error-bar{background:#fff1f2;border:1px solid #f0cbd2;color:#b64f60;padding:11px 13px;border-radius:8px;font-size:12px;margin-bottom:18px}.toast{position:fixed;right:25px;bottom:25px;z-index:100;background:#17303c;color:#e3eef3;border-radius:11px;padding:13px 17px;box-shadow:0 10px 35px #18313d30;display:flex;align-items:center;gap:9px;max-width:min(520px,calc(100vw - 30px));font-size:12px;animation:fade .2s}.toast.error{background:#8b3f4d}.toast button{background:#ffffff18;border:1px solid #ffffff28;color:#e4eff4;border-radius:5px;padding:4px 7px;font-size:11px;margin-left:5px;white-space:nowrap}.footer-note{font-size:10px;color:#9daab1;text-align:center;margin-top:24px;display:flex;justify-content:center;gap:14px;align-items:center}.footer-note span{display:flex;gap:5px;align-items:center}.footer-note svg{height:11px;width:11px}.side-scrim{display:none}#print-root{display:none}.danger-text{color:var(--red)}
@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes slide{from{transform:translateX(25px);opacity:.7}to{transform:translateX(0);opacity:1}}@media(min-width:1680px){.ticket-card{padding:16px}.ticket-card h3{font-size:14px}.ticket-card .issue{font-size:12px}.card-client,.person{font-size:11px}.board{gap:16px}.main{padding:32px 38px}}
@media(max-width:1250px){:root{--side:208px}.sidebar{padding-left:12px;padding-right:12px}.main{padding:24px 23px}.topbar{padding:0 23px}.global-search{min-width:190px}.crumb{display:none}.date-top{display:none}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{gap:11px}.stat{padding:15px}.board{grid-template-columns:repeat(5,minmax(200px,1fr))}.heading h1{font-size:26px}.grid-2{grid-template-columns:1.4fr 1fr;gap:15px}}
@media(max-width:950px){:root{--side:76px}.sidebar{padding:24px 12px 18px}.brand{padding:0 6px 27px}.brand-name,.brand-sub,.side-label,.nav .nav-text,.nav-count,.side-hint,.side-profile .profile-copy{display:none}.nav button{padding:13px;justify-content:center}.brand-mark{height:37px;width:37px;min-width:37px}.nav button svg{width:21px;height:21px}.side-profile{padding:15px 7px 0}.side-profile .avatar{width:32px;height:32px}.main{padding:22px}.grid-2{grid-template-columns:1fr}.demo-banner{font-size:10px;margin-bottom:20px}.global-search{min-width:235px}.calendar-grid{overflow-x:auto}.cal-cell{min-height:115px}.workspace-top .tiny-note{display:none}}
@media(max-width:660px){:root{--side:0px}.sidebar{transform:translateX(-100%);width:245px;padding:25px 17px;transition:transform .2s}.sidebar.open{transform:translateX(0)}.sidebar.open .brand-name,.sidebar.open .brand-sub,.sidebar.open .side-label,.sidebar.open .nav .nav-text,.sidebar.open .nav-count,.sidebar.open .side-hint,.sidebar.open .side-profile .profile-copy{display:block}.sidebar.open .nav button{justify-content:flex-start}.sidebar.open .brand{padding-bottom:26px}.sidebar.open .side-profile{gap:12px}.side-scrim{display:block;position:fixed;inset:0;background:#142e3655;z-index:39}.mobile-menu{display:inline-grid}.topbar{height:64px;padding:0 15px;gap:9px}.top-left{gap:10px}.top-right{gap:8px}.global-search{min-width:0;width:34px;height:34px;justify-content:center;border:0;background:transparent;padding:5px}.global-search .search-copy,.global-search kbd{display:none}.role-copy select{max-width:127px;font-size:10px}.role-copy small{font-size:9px}.top-role{gap:7px;padding-left:9px}.top-role .avatar{width:29px;height:29px;font-size:9px}.main{padding:17px 14px 26px}.demo-banner{align-items:flex-start;padding:8px 10px;font-size:9px;gap:5px}.demo-banner .demo-detail{display:none}.demo-banner button{font-size:9px}.heading{margin-bottom:18px;flex-wrap:wrap;gap:13px}.heading h1{font-size:25px}.heading p{font-size:11px}.heading .actions{padding-top:0;gap:6px}.heading .actions .btn{font-size:11px;min-height:34px;padding:7px 10px}.eyebrow{font-size:9px;margin-bottom:6px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:18px}.stat{padding:13px;border-radius:10px}.stat-top{font-size:10px}.stat-icon{width:26px;height:26px;border-radius:7px}.stat-icon svg{width:15px}.stat-value{font-size:27px;margin-top:7px}.stat-note{font-size:9px}.workspace-top{padding:14px 13px 0}.tabs{gap:18px}.tab{font-size:11px;padding-bottom:11px}.toolbar{padding:12px;gap:7px}.search-field{min-width:100%;}.filter{flex:1;min-width:85px;max-width:none;padding:9px 21px 9px 8px;font-size:10px}.chip-row{padding:0 12px 12px;gap:6px}.chip{font-size:9px;padding:5px 8px}.result-count{font-size:9px}.board-scroll{padding:12px;scroll-snap-type:x mandatory}.board{grid-template-columns:repeat(5,258px);gap:12px}.lane{scroll-snap-align:center}.ticket-card{padding:15px}.ticket-card h3{font-size:14px}.ticket-card .issue{font-size:12px}.card-client,.person{font-size:11px}.lane-title{font-size:12px}.workspace-foot{padding:10px 12px;font-size:9px}.key-hint{display:none}.footer-note{font-size:9px}.card-grid{grid-template-columns:1fr;gap:12px}.welcome{padding:22px;display:block}.welcome h2{font-size:22px}.welcome .btn{margin-top:17px}.welcome p{font-size:11px}.drawer-head{padding:20px}.drawer-main{padding:20px}.drawer-foot{padding:14px 20px;flex-wrap:wrap}.drawer-foot .small{font-size:9px}.drawer-head h2{font-size:21px}.form-grid{gap:13px}.field label{font-size:10px}.field input,.field select,.field textarea{font-size:12px;padding:10px}.form-grid .mobile-wide{grid-column:1/-1}.device-options{gap:5px}.device-option{padding:7px 9px;font-size:10px}.detail-hero h3{font-size:18px}.detail-grid{gap:15px 12px}.detail-field div{font-size:11px}.flow-step{font-size:8px}.calendar-grid{min-width:610px}.calendar-wrap{overflow:auto}.cal-cell{min-height:115px}.import-grid{grid-template-columns:1fr 1fr}.backup-option{align-items:flex-start;flex-direction:column}.note-form{flex-wrap:wrap}.note-form .btn{margin-left:auto}.detail-toolbar .right{margin-left:0}.data-table td{padding:13px}.panel-head{padding:17px}.panel-body{padding:0 17px 17px}.stats+.grid-2{gap:16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white;font-size:12px}.shell,#modal-root,#toast{display:none!important}#print-root{display:block!important;max-width:780px;margin:auto;color:#111;font-family:Arial,sans-serif}.print-head{display:flex;justify-content:space-between;padding-bottom:18px;border-bottom:2px solid #333;margin-bottom:24px}.print-head h1{font-size:22px}.print-title{text-align:center;font-size:21px;margin:25px 0}.print-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.print-grid div{line-height:1.8}.print-section{margin-top:20px;white-space:pre-wrap}.signatures{display:flex;justify-content:space-around;text-align:center;margin-top:50px;height:120px}.print-note{border-top:1px solid #ccc;padding-top:13px;font-size:10px;color:#666}@page{size:A4;margin:18mm}}

.customer-table .customer-address{white-space:normal;min-width:180px;max-width:300px;line-height:1.7}.customer-table td{padding-top:13px;padding-bottom:13px}.customer-table .avatar{height:32px;width:32px}.customer-table th{white-space:nowrap}
.staff-name-label{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.staff-code{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:#eff4f6;border:1px solid #dde6eb;border-radius:8px;margin-bottom:17px}.staff-code span{font-size:10px;color:#6d7f88}.staff-code b{font-size:12px;color:#325567;overflow-wrap:anywhere}.staff-profile-fields{display:grid;gap:15px;margin-bottom:19px}.staff-profile-fields .detail-field div{font-size:12px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.staff-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.staff-actions .btn{flex:1;justify-content:center;white-space:nowrap}
.customer-table{min-width:1120px}.customer-table td{vertical-align:top}.customer-name-cell{display:flex;align-items:center;gap:10px;min-width:175px}.customer-table .customer-work-preview{white-space:normal;min-width:200px;max-width:300px;line-height:1.7}.customer-work-preview strong{font-weight:600}.customer-table .btn{white-space:nowrap}.customer-table .pill{white-space:normal;min-width:110px;line-height:1.5}.customer-latest{padding:14px 0;border-bottom:1px solid var(--line)}.customer-latest>small{font-size:10px;color:var(--muted)}.customer-latest p{font-size:12px;line-height:1.65;margin:7px 0 11px;white-space:pre-wrap;overflow-wrap:anywhere}.customer-latest>div{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px}.customer-bottom span:last-child{color:var(--teal);font-weight:650}
.customer-work-history{margin-bottom:28px}.history-overview{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;background:#edf3f6;border:1px solid #dbe6ec;border-radius:12px;padding:16px}.history-overview>div{min-width:0}.history-overview small{display:block;font-size:10px;color:#5d727d;margin-bottom:7px}.history-overview strong{display:block;font-size:21px;color:#284b5c;line-height:1.4}.history-overview strong span{font-size:10px;font-weight:500}.history-overview>div>span{display:block;font-size:10px;line-height:1.6;color:#6f7e85;margin-top:5px}.history-intro{font-size:11px;color:var(--muted);line-height:1.8;margin:14px 0}.history-records{display:grid;gap:16px}.history-record{padding:20px;border:1px solid #dfe6e9;border-left:3px solid #7da2b4;border-radius:11px;background:white;min-width:0}.history-record-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:13px;border-bottom:1px solid #edf0f1}.history-date{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:650;color:#406070}.history-date svg{width:15px;height:15px}.history-record-head>small{font-size:10px;color:#7d8a91}.history-content{padding:17px 0}.history-content>small{display:block;font-size:10px;color:#6c7c84;margin-bottom:6px}.history-content h3{font-size:16px;font-weight:650;color:#29414d;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}.history-record .detail-grid{gap:16px 20px}.history-record .detail-field div{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.history-price{font-size:16px;font-weight:700;color:#284b5c}.history-extra{margin-top:17px;padding-top:13px;border-top:1px dashed #dfe6e9}.history-extra summary{font-size:11px;color:#6c7c84;cursor:pointer}.history-extra .detail-grid{margin-top:16px}
@media(max-width:660px){.history-overview{grid-template-columns:1fr 1fr;gap:14px;padding:14px}.history-overview>div:first-child{grid-column:1/-1}.history-overview strong{font-size:20px}.history-record{padding:16px}.history-record-head{align-items:flex-start;flex-wrap:wrap;gap:7px}.history-content h3{font-size:15px}.history-record .detail-grid{gap:14px 12px}.customer-latest .pill{font-size:9px}}

.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;background:radial-gradient(ellipse at top,#e3ecf0,transparent 70%),#f4f6f7}.auth-card{width:min(460px,100%);background:white;padding:34px;border:1px solid #dce3e7;border-radius:18px;box-shadow:0 18px 70px #253a440d}.auth-brand{display:flex;gap:13px;align-items:center;margin-bottom:30px}.auth-brand .brand-mark{height:48px;width:48px;display:grid;place-items:center}.auth-brand h1{font-size:19px;color:#284554}.auth-brand p{font-size:11px;color:var(--muted);margin-top:5px}.auth-card h2{font-size:23px;margin-bottom:10px}.auth-sub{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:22px}.auth-submit{width:100%;justify-content:center;margin-top:24px}.auth-help,.auth-footer{font-size:10px;color:var(--muted);line-height:1.8;text-align:center;margin-top:22px}.auth-return{display:block;margin:18px auto 0}.notification-button{position:relative}.notification-count{position:absolute;top:-3px;right:-4px;background:#c65d65;color:white;min-width:17px;height:17px;border-radius:20px;font-size:9px;display:grid;place-items:center;padding:0 4px}.notification-count[hidden]{display:none}.notification-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.notification-list{display:grid;gap:10px}.notification-item{display:flex;align-items:flex-start;gap:13px;width:100%;padding:17px;text-align:left;border:1px solid #e3e8eb;background:white;border-radius:10px;color:#3c5866}.notification-item.unread{background:#eef4f7;border-color:#cedce3}.notification-item b{font-size:13px;line-height:1.7}.notification-item p{font-size:12px;color:#6c7c84;line-height:1.8;margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.notification-item small{font-size:10px;color:#818e95}.top-role .role-copy strong{font-size:11px;display:block}.top-role .role-copy small{font-size:9px;display:block;margin-top:4px}.staff-actions .btn{white-space:normal}@media(max-width:660px){.auth-shell{padding:18px}.auth-card{padding:24px}.top-role .role-copy strong{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-role .role-copy small{max-width:105px;overflow:hidden;white-space:nowrap}.top-right{gap:6px}.notification-item{padding:14px}}

:root{--bg:#f3f9fd;--ink:#093344;--text:#365567;--muted:#627d8b;--line:#daeaf3;}
/* Sky-blue palette sampled from the supplied Minh Phu website reference. */
body[data-theme="blue"] .sidebar{background:linear-gradient(160deg,#7dd3fc 0%,#bae6fd 100%);color:#164e63}
body[data-theme="blue"] .brand{color:#093344}
body[data-theme="blue"] .brand-mark{background:#38bdf9;color:#093344;box-shadow:0 4px 15px #0284c71a}
body[data-theme="blue"] .brand-sub,body[data-theme="blue"] .side-label{color:#155e75}
body[data-theme="blue"] .nav button{color:#164e63}
body[data-theme="blue"] .nav button:hover{background:#ffffff70;color:#093344}
body[data-theme="blue"] .nav button.active{background:#38bdf9;color:#093344}
body[data-theme="blue"] .nav-count,body[data-theme="blue"] .active .nav-count{background:#ffffff75;color:#093344}
body[data-theme="blue"] .side-hint{background:#ffffff60;border-color:#ffffff90}
body[data-theme="blue"] .side-hint b,body[data-theme="blue"] .side-hint button{color:#093344}
body[data-theme="blue"] .side-hint p{color:#1e5a73}
body[data-theme="blue"] .side-profile{border-color:#72bbdd;color:#093344}
body[data-theme="blue"] .side-profile small{color:#1e5a73}
body[data-theme="blue"] .side-profile .avatar{background:#e0f2fe;color:#0569a1}
body[data-theme="blue"] .btn.primary{background:#38bdf9;border-color:#38bdf9;color:#093344;box-shadow:0 2px 5px #0284c71a}
body[data-theme="blue"] .btn.primary:hover{background:#0ea5e9;border-color:#0ea5e9;color:#093344}
body[data-theme="blue"] .btn.soft{background:#e0f2fe;border-color:#e0f2fe;color:#0569a1}
body[data-theme="blue"] .welcome{background:linear-gradient(110deg,#7dd3fc,#bae6fd);color:#093344}
body[data-theme="blue"] .welcome small{color:#0569a1}
body[data-theme="blue"] .welcome p{color:#164e63}
body[data-theme="blue"] .welcome .btn{background:#38bdf9;color:#093344}
body[data-theme="blue"] .welcome:after{border-color:#ffffff30}
body[data-theme="blue"] .demo-banner{background:#edf8fe;border-color:#c7eafb;color:#155e75}
body[data-theme="blue"] .demo-banner b,body[data-theme="blue"] .demo-banner button{color:#0569a1}
body[data-theme="blue"] .design-mark{background:#38bdf9;color:#093344}
body[data-theme="blue"] .stat-icon.green{background:#e0f2fe;color:#0284c7}
body[data-theme="blue"] .mini-bars i{background:#7dd3fc}
body[data-theme="blue"] button:focus-visible,body[data-theme="blue"] a:focus-visible,body[data-theme="blue"] [tabindex]:focus-visible{outline-color:#38bdf9}
body[data-theme="blue"] input:focus,body[data-theme="blue"] select:focus,body[data-theme="blue"] textarea:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #38bdf933}

.doc-type-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:25px}.doc-type-card{padding:18px 15px;text-align:left;background:white;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;gap:13px;min-width:0;transition:transform .15s,border-color .15s}.doc-type-card:hover{border-color:var(--teal);transform:translateY(-2px)}.doc-type-icon{width:36px;height:36px;border-radius:10px;background:var(--teal-soft);display:grid;place-items:center;color:var(--teal)}.doc-type-icon svg{width:20px;height:20px}.doc-type-card>svg{display:none}.doc-type-card b{font-size:13px;display:block;line-height:1.4;color:var(--ink)}.doc-type-card small{display:block;font-size:11px;line-height:1.65;color:var(--muted);margin-top:7px;min-height:37px}.doc-type-card em{display:block;font-size:10px;font-style:normal;color:var(--teal);font-weight:650;margin-top:12px}.doc-list-head{padding:22px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.doc-list-head h2{font-size:16px}.doc-list-head span{font-size:11px;color:var(--muted);display:block;margin-top:4px}.doc-subtle{font-size:11px;color:var(--muted);line-height:1.8;margin-top:9px}.doc-table td{vertical-align:middle}.doc-table td small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.doc-table td b{font-size:12px}.doc-money{white-space:nowrap;font-variant-numeric:tabular-nums}.doc-pagination{padding:14px 22px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.doc-form-lead{padding:15px 18px;background:var(--teal-soft);border-radius:10px;margin-bottom:24px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12px}.doc-form-lead b{color:var(--teal-dark)}.doc-form-lead span{font-size:11px;color:var(--muted)}.doc-space{margin-top:15px}.doc-details{border:1px solid var(--line);border-radius:11px;margin-bottom:26px;padding:16px}.doc-details summary{font-size:12px;font-weight:650;cursor:pointer;color:var(--teal-dark)}.doc-details .form-grid{margin-top:20px}.doc-line{padding:17px;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;background:#fbfcfc}.doc-line-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px;font-size:12px}.doc-line-title .link-btn{font-size:10px}.doc-line textarea{min-height:67px}.doc-line-total{display:flex;flex-direction:column;justify-content:center;text-align:right}.doc-line-total small{font-size:10px;color:var(--muted);margin-bottom:8px}.doc-line-total strong{font-size:17px;color:var(--teal-dark);font-variant-numeric:tabular-nums}.doc-calculation{margin-top:18px;padding:15px 18px;border:1px solid #ccdbe3;border-radius:12px;background:#f5f8fa}.doc-calculation>div{display:flex;justify-content:space-between;gap:15px;font-size:12px;padding:6px 0;line-height:1.5}.doc-calculation b{white-space:nowrap;font-variant-numeric:tabular-nums}.doc-calculation .doc-total-main{padding:12px 0;margin:7px 0;border-top:1px solid #d6e1e6;border-bottom:1px solid #d6e1e6;font-size:16px;color:var(--teal-dark)}.doc-checkbox{display:flex;align-items:center;gap:9px;font-size:12px;margin-top:15px}.doc-checkbox input{width:auto}.doc-preview-main{background:#eef2f3}.doc-preview-tools{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:22px}.doc-preview-tools>.field{margin-left:auto;min-width:240px}.doc-preview-tools label{font-size:10px}.doc-preview-tools select{font-size:12px}.doc-paper-preview{border:1px solid #d8e0e2;box-shadow:0 8px 24px #213e4812;background:white;border-radius:3px;overflow:auto}.doc-paper-preview .document-sheet{padding:32px;min-width:640px}.doc-ticket-actions{margin:0 0 20px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f4f7f8;border:1px solid var(--line);border-radius:10px;font-size:11px}.doc-ticket-actions span{color:var(--muted)}.drawer.document-wide{width:min(980px,100%)}#doc-form .field small{font-size:10px;color:var(--muted);line-height:1.65;margin-top:7px;display:block}.doc-type-card:focus-visible{outline:3px solid #99bdcf;outline-offset:3px}
@media(max-width:1200px){.doc-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:660px){.doc-type-grid{grid-template-columns:1fr 1fr;gap:9px}.doc-type-card{padding:13px;gap:10px}.doc-type-card:last-child{grid-column:1/-1;flex-direction:row;align-items:center}.doc-type-card small{min-height:0}.doc-list-head{padding:16px}.doc-list-head>.doc-subtle{display:none}.doc-preview-main{padding:12px}.doc-preview-tools>.field{min-width:0;width:100%;margin:0}.doc-line{padding:13px}.doc-paper-preview .document-sheet{padding:24px}.doc-ticket-actions{align-items:flex-start;flex-direction:column}}
.doc-related{margin-bottom:20px}.doc-related .doc-ticket-actions{margin-bottom:8px}.doc-related-links{display:flex;gap:7px;flex-wrap:wrap}.doc-related-links .btn{font-size:10px}

.biz-pad{padding:24px;margin-bottom:22px}.biz-pad h2{font-size:18px;margin:0 0 14px}.biz-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.biz-metric{padding:17px;background:var(--bg);border:1px solid var(--line);border-radius:12px;min-width:0}.biz-metric span{display:block;font-size:11px;color:var(--muted);margin-bottom:8px}.biz-metric strong{font-size:20px;overflow-wrap:anywhere}.biz-note{font-size:12px;line-height:1.8;color:var(--muted);margin:12px 0}.biz-ticket-tools{background:var(--teal-soft);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:22px}.biz-assignment{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px}.biz-assignment span{font-size:12px;color:var(--muted)}.biz-assignment .btn{margin-left:auto}.biz-details{padding:16px;border:1px solid var(--line);border-radius:10px;margin:20px 0}.biz-details summary{font-weight:650;cursor:pointer;margin-bottom:10px}.biz-details form>.btn{margin-top:14px}.biz-section-title{margin:26px 0 15px;font-size:16px}.biz-ledger-row{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:16px 0;align-items:center}.biz-ledger-row p{font-size:12px;line-height:1.7;margin:5px 0;color:var(--muted)}.biz-ledger-row.is-void{opacity:.6}.biz-ledger-row.is-void b{text-decoration:line-through}.biz-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.biz-gallery figure{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.biz-gallery img{width:100%;height:210px;object-fit:contain;background:#edf0f2}.biz-gallery figcaption{display:grid;gap:8px;padding:12px;font-size:12px}.biz-gallery small{color:var(--muted)}.biz-date-filters{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.biz-date-filters .field{min-width:170px}.biz-date-filters>.btn{margin-bottom:2px}.biz-audit{border-bottom:1px solid var(--line);padding:16px 0}.biz-audit summary{display:flex;justify-content:space-between;gap:15px;cursor:pointer;font-size:13px;line-height:1.7}.biz-audit small{color:var(--muted);min-width:160px}.biz-audit-diff{width:100%;table-layout:fixed;margin:12px 0;border-collapse:collapse;font-size:12px}.biz-audit-diff th,.biz-audit-diff td{padding:10px;border:1px solid var(--line);overflow-wrap:anywhere;vertical-align:top}.biz-pair{margin:20px 0;padding:18px;background:var(--teal-soft);border-radius:10px;line-height:1.8}.biz-pair code{display:block;padding:12px;background:white;border-radius:8px;overflow-wrap:anywhere;user-select:all}.biz-report-link{margin-bottom:18px}.biz-doc-tools{margin:15px 0}.biz-doc-tools .btn{margin:5px}.drawer.biz-wide{width:min(920px,100vw)}.biz-finance-history{padding:15px;border:1px solid var(--line);border-radius:10px;margin:16px 0}.biz-finance-history strong{color:var(--teal-dark)}
@media(max-width:800px){.biz-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.biz-metric strong{font-size:17px}.biz-pad{padding:16px}.biz-audit summary{display:block}.biz-gallery img{height:170px}.biz-ticket-tools>.actions{display:grid;grid-template-columns:1fr 1fr}.biz-ticket-tools>.actions .btn{justify-content:center}.biz-ledger-row{display:block}.biz-ledger-row>.actions{margin-top:10px}}
@media(max-width:440px){.biz-gallery{grid-template-columns:1fr}.biz-date-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.biz-date-filters .field{min-width:0}.biz-audit-diff{font-size:11px}.biz-metric{padding:12px}}
/* Keep all navigation reachable on shorter laptop and phone screens. */
.sidebar{overflow-y:auto;overscroll-behavior:contain}.sidebar .brand,.sidebar .nav{flex-shrink:0}

.ticket-assign-action{width:100%;justify-content:center;margin-top:12px}.data-table [data-action="biz-assign"]{white-space:nowrap}
.ticket-accept-action{width:100%;justify-content:center;margin-top:12px}.data-table [data-action="biz-accept"]{white-space:nowrap}.data-table .ticket-receipt{display:table;margin-top:7px}
.biz-delivery-help{min-width:220px;max-width:360px;white-space:normal;line-height:1.7}.biz-delivery-help small{white-space:normal}.biz-delivery-summary{display:grid;gap:16px;margin-bottom:20px}.biz-delivery-summary>div{display:grid;gap:7px}.biz-delivery-summary span{font-size:12px;color:var(--muted)}

.document-sheet{font-family:Arial,"DejaVu Sans",sans-serif;font-size:11px;line-height:1.55;color:#162e35;background:white;max-width:800px;margin:0 auto;box-sizing:border-box}.document-sheet *{box-sizing:border-box}.document-sheet h1,.document-sheet h2,.document-sheet h3,.document-sheet p{margin:0}.paper-head{display:flex;justify-content:space-between;gap:24px;padding-bottom:15px;border-bottom:2px solid #0569a1}.paper-head>div:first-child{flex:1;min-width:0}.paper-head h2{font-size:17px;line-height:1.4;color:#0569a1;text-transform:uppercase;margin-bottom:5px}.paper-head p{font-size:9px;color:#53676d;line-height:1.7;overflow-wrap:anywhere}.paper-code{text-align:right;flex-shrink:0}.paper-code b{display:block;font-size:11px;color:#2e4e56;max-width:180px;overflow-wrap:anywhere}.paper-code span{display:block;font-size:10px;color:#6a7e84;margin-top:5px}.paper-title{text-align:center;padding:23px 0 21px;position:relative}.paper-title h1{font-size:21px;letter-spacing:.4px;color:#183543;line-height:1.4;font-weight:750}.paper-title p{font-size:10px;color:#657a80;margin-top:5px}.paper-draft{display:inline-block;border:1px solid #b9c9cd;border-radius:3px;font-size:8px;padding:2px 8px;letter-spacing:1px;color:#637b81;margin-top:8px}.paper-parties{display:flex;gap:24px;margin-bottom:16px}.paper-party{flex:1;min-width:0}.paper-party h3{font-size:9px;letter-spacing:.8px;color:#557078;margin:0 0 7px}.paper-party>b{display:block;font-size:12px;line-height:1.6;margin-bottom:4px;overflow-wrap:anywhere}.paper-party p{font-size:10px;line-height:1.75;overflow-wrap:anywhere}.paper-party p span{color:#64777c}.paper-meta{padding:11px 13px;background:#f1f4f6;border-left:3px solid #bfd0d8;margin:0 0 18px;font-size:10px;line-height:1.8;overflow-wrap:anywhere}.paper-items{width:100%;border-collapse:collapse;table-layout:fixed;margin:15px 0;color:#243c43}.paper-items th{font-size:9px;font-weight:700;text-align:left;padding:10px 7px;background:#e9eff2;border-top:1px solid #c4d1d7;border-bottom:1px solid #c4d1d7;vertical-align:middle;overflow-wrap:anywhere}.paper-items td{font-size:10px;line-height:1.65;padding:10px 7px;vertical-align:top;border-bottom:1px solid #dce2e5;overflow-wrap:anywhere}.paper-items small{display:block;margin-top:5px;font-size:9px;color:#6b7d82}.paper-items .p-index{width:7%;text-align:center}.paper-items .p-unit{width:9%;text-align:center}.paper-items .p-qty{width:9%;text-align:right}.paper-items .p-price{width:16%;text-align:right;font-variant-numeric:tabular-nums}.paper-summary{display:flex;justify-content:flex-end;margin:13px 0}.paper-summary table{width:56%;min-width:280px;border-collapse:collapse}.paper-summary th,.paper-summary td{padding:5px 8px;font-size:11px;line-height:1.6}.paper-summary th{text-align:left;font-weight:400}.paper-summary td{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.paper-grand th,.paper-grand td{border-top:1px solid #c1cfd6;border-bottom:1px solid #c1cfd6;background:#edf2f5;font-weight:750;color:#093344;padding-top:9px;padding-bottom:9px}.paper-words{font-size:10px;font-style:italic;line-height:1.8;margin:9px 0 17px!important}.paper-block{margin:15px 0;overflow-wrap:anywhere}.paper-block h3{font-size:11px;font-weight:700;margin-bottom:4px}.paper-block p{font-size:10px;line-height:1.8}.paper-bank{border:1px solid #d5dde1;background:#f8fafb;padding:12px 14px;margin-top:17px;font-size:10px;line-height:1.85;overflow-wrap:anywhere}.paper-bank h3{font-size:9px;letter-spacing:.5px;margin-bottom:5px;color:#485f6b}.paper-signatures{display:flex;justify-content:space-between;gap:25px;text-align:center;margin:29px 0 18px;break-inside:avoid;page-break-inside:avoid}.paper-signatures>div{flex:1;font-size:10px}.paper-signatures b{display:block;font-size:11px;line-height:1.5}.paper-signatures small{display:block;font-size:9px;font-style:italic;color:#718187;margin-top:3px}.paper-signatures strong{display:block;margin-top:53px;min-height:17px}.paper-footer{font-size:8px;color:#829296;border-top:1px solid #dbe1e4;padding-top:9px;clear:both}.paper-items thead{display:table-header-group}.paper-items tr{break-inside:avoid;page-break-inside:avoid}.paper-title,.paper-head,.paper-bank,.paper-summary{break-inside:avoid}.paper-block h3{break-after:avoid}
@media print{body{background:white!important}.shell,#modal-root,#toast{display:none!important}#print-root{display:block!important;max-width:none!important;margin:0!important}.document-sheet{font-size:11px;max-width:none;padding:0!important;width:100%;margin:0}.paper-title h1{font-size:20px}.paper-head,.paper-items th,.paper-grand th,.paper-grand td,.paper-meta,.paper-bank{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4;margin:16mm 17mm}}
