:root{--ink:#162d43;--mid:#5f7284;--line:#e4ebf0;--nav:#102c3d;--teal:#157a77;--light:#f4f8fa;--white:#fff;--warn:#8f620a;--ok:#196d51;--shadow:0 16px 50px rgba(30,53,66,.055)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6f9fa;color:var(--ink);font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:14px}button,input{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #75b8b5;outline-offset:3px}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:258px;position:sticky;top:0;height:100vh;background:var(--nav);padding:29px 17px 24px;color:#e5f1f2;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;gap:11px;align-items:center;padding:5px 9px 29px;color:white}.brand-icon{height:38px;width:38px;border-radius:12px;background:#2b827e;display:grid;place-items:center;font-weight:900;font-size:17px;letter-spacing:-3px;flex-shrink:0}.brand-icon span{color:#b7faf0}.brand strong{display:block;font-size:15px;letter-spacing:-.3px;white-space:nowrap}.brand small{display:block;font-size:9px;color:#a4b9be;letter-spacing:.1em;margin-top:5px}.nav-label{font-size:10px;color:#86a5b0;letter-spacing:1.6px;font-weight:700;margin:9px 15px 12px}.sidebar-nav{display:grid;gap:5px}.sidebar-nav a{padding:14px 12px;border-radius:9px;color:#b9d0d4;font-weight:600;font-size:12px;display:flex;gap:13px;align-items:center}.sidebar-nav a:hover,.sidebar-nav a.navactive{background:#23495a;color:white}.sidebar-nav a span{color:#8fb7bf;font-size:10px;font-weight:800}.sidebar-note{margin-top:auto;background:#1b4050;border:1px solid #356070;border-radius:13px;padding:17px 16px 16px}.sidebar-note-ico{font-size:22px;margin-bottom:9px}.sidebar-note b{font-size:12px}.sidebar-note p,.sidebar-note small{font-size:11px;line-height:1.6;color:#b4d0d5;margin:6px 0}.sidebar-note small{color:#86aeb7}.main{width:calc(100% - 258px);max-width:1600px;margin:auto;padding:0 34px 20px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:25px 0 22px;font-size:10px;color:#778a96;font-weight:800;letter-spacing:1.4px}.status-pill{background:#e5f5f0;border:1px solid #c5e3d7;color:#28735e;padding:8px 12px;border-radius:99px;letter-spacing:0;font-size:11px}.status-pill i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2a936e;margin-right:6px}.hero{background:linear-gradient(113deg,#fff,#eef8f7);box-shadow:var(--shadow);border:1px solid #e8f0ef;border-radius:19px;padding:34px 43px;min-height:225px;display:flex;justify-content:space-between;align-items:center;gap:18px}.eyebrow,.section-number{font-size:10px;color:#16877e;font-weight:900;letter-spacing:1.8px}.hero h1{font-size:35px;line-height:1.18;letter-spacing:-1.3px;margin:12px 0 13px}.hero h1 em{font-style:normal;color:#238780}.hero p{color:#6a7d87;max-width:500px;line-height:1.7;margin:0;font-size:12px}.hero-illustration{width:254px;min-width:210px;display:flex;align-items:center;justify-content:center;gap:12px}.hero-paper,.hero-sheet{width:98px;height:121px;background:white;box-shadow:0 7px 20px rgba(7,46,60,.12);border:1px solid #dae9e9;border-radius:10px;transform:rotate(-8deg);padding:15px;display:grid;align-content:start;gap:11px}.hero-paper b{font-size:10px}.hero-paper span{height:5px;border-radius:3px;background:#d7e4e8}.hero-paper span:nth-child(3){width:83%}.hero-paper i{width:42px;height:20px;background:#d5f0ea;margin-top:5px}.hero-arrow{font-size:29px;color:#2c9185}.hero-sheet{background:#e0f4eb;transform:rotate(8deg);gap:12px}.hero-sheet b{font-size:10px;color:#15754d}.hero-sheet span{border-radius:5px;background:#b5e1cd;color:#0f8155;font-size:12px;padding:2px 8px}.alert{border:1px solid #e6ddb5;background:#fdf9ec;border-radius:10px;padding:14px 17px;margin:21px 0;color:#816222;font-size:12px;line-height:1.7}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.metrics article{background:white;border:1px solid var(--line);border-radius:13px;padding:19px 21px;box-shadow:var(--shadow)}.metrics article div{color:#6c8391;font-size:12px;font-weight:650}.metrics b{display:block;font-size:28px;letter-spacing:-1px;margin:8px 0 3px}.metrics small{font-size:11px;color:#889ca5}.panel{background:white;border-radius:16px;border:1px solid var(--line);padding:26px 29px;margin-bottom:20px;box-shadow:var(--shadow);scroll-margin-top:12px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.panel h2{font-size:18px;letter-spacing:-.35px;margin:8px 0 6px}.panel-head p{color:#778993;font-size:12px;line-height:1.6;margin:0}.mini-tag{border:1px solid #dce9ec;border-radius:8px;padding:8px 10px;color:#64838a;background:#f6faf9;font-size:10px;font-weight:800;white-space:nowrap;letter-spacing:.8px}.dropzone{border:2px dashed #c9dedf;border-radius:12px;background:#fafdfe;text-align:center;padding:29px 16px 25px;transition:.2s}.dropzone.dragover{background:#eaf8f4;border-color:#218b7f}.drop-icon{background:#e4f4f2;color:#2a8e88;border-radius:50%;height:41px;width:41px;display:grid;place-items:center;font-size:30px;margin:0 auto 11px;line-height:1}.dropzone h3{font-size:15px;margin:8px 0}.dropzone p{color:#82949d;font-size:12px;margin:7px 0 15px;word-break:break-word}.dropzone small{display:block;margin-top:16px;color:#8aa0a5;font-size:10px}.button{cursor:pointer;padding:11px 17px;border-radius:9px;font-size:12px;font-weight:800;border:1px solid transparent;transition:filter .2s,background .2s}.button:hover:not(:disabled){filter:brightness(.94)}.button:disabled{opacity:.47;cursor:not-allowed}.button-main{color:white;background:#168078}.button-main span{padding-left:20px}.button-ghost{background:#fff;color:#315c66;border-color:#d5e3e7}.actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.progress-box{margin-top:17px;padding:12px;background:#f3f9f8;border-radius:9px;border:1px solid #deecea}.progress-top{display:flex;justify-content:space-between;font-size:11px;color:#396974;margin-bottom:8px}.progress-track{height:7px;border-radius:9px;overflow:hidden;background:#dae8e8}.progress-track div{width:0%;height:100%;background:#188078;transition:width .2s}.message{border-radius:9px;padding:12px;margin-top:14px;line-height:1.5}.error{background:#fff1f0;color:#a13b36;border:1px solid #f0cbc8}.hidden{display:none!important}.file-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.file-card{border:1px solid #dfe9ed;border-radius:11px;padding:16px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0;background:#fcfefe}.file-circle{width:34px;height:34px;border-radius:9px;background:#d8efeb;color:#277970;display:grid;place-items:center;font-weight:900}.file-card b{font-size:12px}.file-card small{font-size:11px;color:#738994}.file-card input{display:block;margin-top:6px;width:100%;font-size:10px;color:#53737c}.file-status{font-size:10px;color:#749098;line-height:1.5;word-break:break-word}.file-status.good{color:#147a53}.results-layout{display:grid;grid-template-columns:minmax(320px,1fr) minmax(290px,.93fr);gap:18px;min-height:254px}.results-table{border:1px solid var(--line);border-radius:10px;overflow:hidden}.result-header{background:#f5f8fa;display:grid;grid-template-columns:minmax(0,1fr) 61px 92px;gap:6px;padding:13px 12px;color:#627984;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.invoice-list{max-height:360px;overflow:auto}.invoice-item{display:grid;grid-template-columns:minmax(0,1fr) 61px 92px;gap:6px;width:100%;text-align:left;align-items:center;padding:13px 11px;border:0;background:white;border-top:1px solid #edf1f3;color:#264252;cursor:pointer}.invoice-item.selected,.invoice-item:hover{background:#eff8f5}.invoice-item b{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-item small{color:#748893;display:block;margin-top:5px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-item .pages{font-size:11px;color:#6d8791}.badge{font-size:9px;font-weight:850;padding:6px 7px;border-radius:6px;display:inline-block;text-align:center}.badge.ready{background:#e2f4ea;color:#167247}.badge.review{background:#fff1d2;color:#8c640c}.detail-panel{background:#fcfefe;border:1px solid var(--line);border-radius:10px;min-width:0}.detail-head{border-bottom:1px solid var(--line);padding:14px 16px}.detail-head h3{font-size:13px;margin:0 0 5px;word-break:break-all}.detail-head p{margin:0;font-size:11px;color:#758b96}.invoice-detail{padding:15px;max-height:390px;overflow:auto;line-height:1.5}.detail-kv{display:grid;grid-template-columns:100px 1fr;gap:8px;margin-bottom:8px;font-size:11px}.detail-kv span:first-child{color:#72909a}.detail-kv span:last-child{font-weight:650;overflow-wrap:anywhere}.detail-panel h4{font-size:12px;margin:13px 0 8px}.detail-table{border-collapse:collapse;width:100%;font-size:10px}.detail-table th,.detail-table td{padding:7px 5px;border-bottom:1px solid #e7eef0;text-align:left;vertical-align:top}.detail-table td:nth-child(n+2){text-align:right}.issue{background:#fff6e5;border-radius:6px;color:#87631e;margin:5px 0;padding:8px 9px;font-size:11px}.preview-link{background:transparent;color:#168078;padding:8px 0;border:0;text-decoration:underline;font-size:11px;cursor:pointer}.empty,.empty-detail{text-align:center;padding:55px 16px;color:#91a3ab;font-size:12px}.empty-icon{font-size:32px;color:#aac5c9;margin-bottom:7px}.empty b{color:#59727e}.empty p{font-size:11px}.tiny-legend{display:flex;gap:9px;font-size:10px;color:#738893}.tiny-legend span{display:flex;gap:5px;align-items:center}.tiny-legend i{width:8px;height:8px;border-radius:99px}.green{background:#2da579}.amber{background:#d9a63a}.export-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.export-options>div{background:#f7fafb;border:1px solid #e6eef0;border-radius:10px;padding:17px 18px}.export-options h3{margin:0 0 8px;font-size:13px}.export-options p{margin:0 0 16px;color:#768c97;min-height:49px;font-size:11px;line-height:1.65}.footnote{margin-top:15px;border-top:1px solid #eff3f4;padding-top:13px;font-size:10px;color:#8297a0;line-height:1.5}footer{display:flex;justify-content:space-between;padding:6px 3px 20px;color:#8599a3;font-size:10px}iframe#pdfPreview{position:fixed;inset:6vh 10vw;width:80vw;height:88vh;background:white;border:2px solid #365a69;z-index:10;box-shadow:0 0 0 500px rgba(8,20,33,.72)}@media(max-width:960px){.sidebar{width:205px}.main{width:calc(100% - 205px);padding:0 19px}.hero-illustration{display:none}.metrics{gap:8px}.metrics article{padding:15px}.results-layout{grid-template-columns:1fr}.file-grid{grid-template-columns:1fr 1fr}.hero h1{font-size:29px}}@media(max-width:640px){.shell{display:block}.sidebar{width:100%;height:auto;position:static;padding:14px}.brand{padding:3px 7px 12px}.sidebar-nav{grid-template-columns:repeat(4,1fr);gap:3px}.sidebar-nav a{font-size:10px;padding:9px 4px;display:flex;flex-direction:column;gap:4px;text-align:center}.sidebar-note,.nav-label{display:none}.main{width:100%;padding:0 12px}.hero{padding:22px}.hero h1{font-size:27px}.topbar{padding:14px 0}.metrics{grid-template-columns:repeat(2,1fr)}.panel{padding:18px 13px}.file-grid{grid-template-columns:1fr}.export-options{grid-template-columns:1fr}.panel-head{flex-wrap:wrap}.result-header,.invoice-item{grid-template-columns:minmax(0,1fr) 41px 85px}footer{gap:10px}}
/* v0.5 authentication and master administration */
.auth-screen{min-height:100vh;display:grid;place-items:center;background:linear-gradient(132deg,#edf9f6,#f5f9fb);padding:30px}.auth-panel{width:min(470px,100%);background:white;border:1px solid #dce9ec;padding:34px;border-radius:19px;box-shadow:0 18px 55px #16354610}.auth-logo{width:48px;height:48px;background:#1e7873;color:white;display:grid;place-items:center;border-radius:12px;font-weight:900;font-size:20px;margin-bottom:18px}.auth-panel h1{margin:8px 0;font-size:29px;letter-spacing:-1px}.auth-panel p{font-size:12px;color:#778b95;line-height:1.7}.auth-form{display:grid;gap:14px;margin-top:22px}.auth-form label,.master-controls label,.user-form label{display:grid;gap:6px;color:#365d66;font-weight:750;font-size:11px}.auth-form input,.user-form input,.user-form select,.master-controls input,.master-controls select{width:100%;min-width:0;border:1px solid #d6e2e6;padding:11px;border-radius:8px;color:#1e3543;background:white;font-size:12px}.auth-foot{border-top:1px solid #e8f0f2;color:#92a3a9;font-size:10px;margin-top:24px;padding-top:17px}.topbar-actions{display:flex;align-items:center;gap:9px}.small-outline{background:#fff;border:1px solid #d3e1e3;border-radius:8px;padding:8px 11px;font-size:11px;cursor:pointer;color:#27646b}.master-import{margin-top:18px;border-radius:12px;border:1px solid #e1ebed;padding:19px;background:#fafdfd}.master-import h3{font-size:14px;margin:0 0 8px}.master-import p{font-size:11px;line-height:1.6;color:#718891}.master-controls{display:grid;grid-template-columns:1fr 1fr 1.5fr auto;align-items:end;gap:12px}.notice-inline{padding:11px 13px;border-radius:8px;border:1px solid #daedec;background:#f2f9f7;color:#57717a;font-size:11px;margin:12px 0;line-height:1.6}.master-preview{max-height:365px;overflow:auto;margin-top:12px;border-radius:10px;background:#fff;border:1px solid #e6eef0}.master-preview:empty{display:none}.master-table{border-collapse:collapse;width:100%;min-width:540px;font-size:11px}.master-table th{position:sticky;top:0;background:#eaf5f3;color:#58777e;text-align:left;font-size:10px;padding:11px 9px}.master-table td{border-top:1px solid #edf1f3;padding:7px 9px}.master-table input[type=text]{width:100%;border:1px solid #dbe5e7;border-radius:6px;padding:8px;font-size:11px}.master-table td:nth-child(1),.master-table td:nth-child(4){text-align:center}.master-table td:nth-child(2){width:23%}.master-table td:nth-child(3){width:56%}.verify-row{display:flex;gap:10px;align-items:flex-start;font-size:11px;line-height:1.5;color:#4e6771;margin:14px 0}.history-list,.user-list{display:grid;gap:8px;margin-top:10px}.history-item,.user-row{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid #e4ecee;border-radius:8px;background:white;padding:11px}.history-item strong,.user-row b{font-size:11px}.history-item small,.user-row small{display:block;font-size:10px;color:#8b9ea4;margin-top:4px}.history-item button,.user-row button{border:1px solid #d5e6e6;background:#f5fafa;color:#2a776c;border-radius:7px;padding:8px;font-size:10px;cursor:pointer}.user-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.user-row button{color:#a04747;background:#fff8f8;border-color:#f1d0d0}
@media(max-width:900px){.master-controls{grid-template-columns:1fr 1fr}}@media(max-width:640px){.master-controls,.user-form{grid-template-columns:1fr}.auth-panel{padding:25px}}
