:root{--bs-primary:#7367f0;--bs-primary-rgb:115,103,240;--app-ink:#38344c;--app-muted:#77758b;--app-line:#e8e6ef;--app-bg:#f7f7fb;--app-nav-height:72px;--app-font:Inter,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}body{font-family:var(--app-font);background:var(--app-bg);color:var(--app-ink);margin:0;line-height:1.6}a{text-decoration:none}button,input,textarea{font:inherit}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-size:clamp(1.55rem,4vw,2rem);letter-spacing:-.035em;line-height:1.3;margin:7px 0 9px;font-weight:700}h2{font-size:1.1rem;font-weight:650;margin:0}h3{font-size:1.05rem;font-weight:650;margin:0}.ti{flex-shrink:0;font-size:1.25rem;vertical-align:middle}.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:normal;line-height:1.35;padding:11px 17px;border-radius:10px;box-shadow:none!important}.btn-primary{background:#7367f0;border-color:#7367f0;color:white}.btn-primary:hover,.btn-primary:focus{background:#6356df;border-color:#6356df}.btn-outline-primary{color:#7367f0;border-color:#c4bffc}.btn-outline-primary:hover{background:#7367f0;border-color:#7367f0;color:white}.btn-icon{width:44px;padding:10px}.btn-lg{min-height:48px;font-size:1rem}.form-control{min-height:48px;max-width:100%;font-size:16px;border-radius:9px;border-color:#dcd9e7;color:var(--app-ink);padding:11px 13px}.form-control:focus{border-color:#7367f0;box-shadow:0 0 0 3px #7367f01a}.form-label{font-size:.875rem;color:var(--app-ink);margin-bottom:7px;font-weight:550}.form-text{color:var(--app-muted);font-size:.78rem;line-height:1.5}.card{border:1px solid var(--app-line);border-radius:16px;box-shadow:0 3px 18px #38344c04;min-width:0}.card-body{padding:24px}.app-header{background:#fff;border-bottom:1px solid var(--app-line)}.app-header-inner{max-width:1120px;margin:auto;padding:17px 24px;display:flex;gap:24px;align-items:center}.brand{color:var(--app-ink);font-size:1.1rem;font-weight:750;display:flex;align-items:center;gap:10px;min-width:0;line-height:1.3}.brand-mark{display:grid;place-items:center;background:#7367f0;width:37px;height:41px;color:#fff;border-radius:10px;flex-shrink:0}.brand-light{font-weight:450}.app-header-inner>form{margin-left:auto}.desktop-nav{display:flex;align-items:center;gap:8px;margin-left:auto}.desktop-nav a{display:flex;align-items:center;gap:8px;padding:10px 16px;color:var(--app-muted);border-radius:9px}.desktop-nav a.active{color:#7367f0;background:#f0edff}.app-header-inner .desktop-nav+form{margin-left:0}.app-main{max-width:1120px;margin:0 auto;padding:36px 24px 55px}.form-container{max-width:800px}.page-heading{margin:0 0 25px}.page-heading p{color:var(--app-muted);margin:0;font-size:.95rem}.eyebrow{font-size:.68rem;letter-spacing:.12em;font-weight:750;color:#7367f0}.heading-with-action{display:flex;gap:20px;align-items:center;justify-content:space-between}.back-link{display:inline-flex;gap:8px;align-items:center;color:var(--app-muted);font-size:.85rem;min-height:44px;margin-bottom:14px}.back-link:hover{color:#7367f0}.notice{background:#eeecff;border:1px solid #ded9ff;border-radius:12px;display:flex;gap:12px;padding:15px 17px;margin-bottom:24px;color:#5d5496;font-size:.85rem;align-items:flex-start}.notice>.ti{margin-top:3px}.notice a{color:#5f51d5;text-decoration:underline}.settings-card{margin-bottom:20px}.section-heading{display:flex;align-items:center;gap:12px;margin-bottom:24px}.section-icon{width:42px;height:42px;border-radius:10px;background:#f0edff;color:#7367f0;display:grid;place-items:center;flex-shrink:0}.section-heading h2{font-size:1rem}.section-heading p{color:var(--app-muted);font-size:.8rem;margin:3px 0 0;line-height:1.5}.form-fields{display:flex;flex-direction:column;gap:20px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{min-width:0}.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin:27px 0 0}.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.upload-help{color:var(--app-muted);font-size:.76rem;margin-top:-8px;margin-bottom:20px}.signature-preview{height:148px;border:1px dashed #d6d2e5;border-radius:10px;background:#faf9fc;display:flex;align-items:center;justify-content:center;margin-bottom:14px;padding:14px;overflow:hidden}.signature-preview img{max-width:100%;max-height:118px;object-fit:contain}.signature-preview [data-signature-empty]{display:flex;align-items:center;gap:9px;color:#aaa4bc;font-size:.78rem}.signature-preview [hidden]{display:none!important}.signature-remove{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:8px;font-size:.8rem}.signature-remove .form-check-input{margin:0;width:19px;height:19px;flex-shrink:0}.signature-editor input[type=file]{font-size:.8rem;padding:10px;overflow:hidden;min-width:0}.signature-editor input[type=file]::file-selector-button{margin:-10px 10px -10px -10px;padding:12px 8px;font-size:.75rem}.search-form{display:flex;gap:10px;margin-bottom:30px}.search-input{position:relative;flex:1;min-width:0}.search-input>.ti{position:absolute;left:16px;top:16px;color:#9690a9;font-size:1.1rem}.search-input input{padding-left:44px;background:white}.list-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 17px}.list-heading>span,.list-heading p{color:var(--app-muted);font-size:.8rem;margin:4px 0 0}.invoice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.invoice-card{color:inherit;transition:transform .15s,border-color .15s}.invoice-card:hover{transform:translateY(-2px);border-color:#beb6ff;color:inherit}.invoice-card-top{display:flex;align-items:center;gap:10px;margin-bottom:22px}.invoice-icon{color:#7367f0;background:#f0edff;display:grid;place-items:center;width:39px;height:43px;border-radius:9px;flex-shrink:0}.invoice-number{font-size:.87rem;font-weight:650;overflow-wrap:anywhere}.invoice-card h3{margin-bottom:7px}.invoice-period{font-size:.8rem;color:var(--app-muted);min-height:38px;margin-bottom:21px}.invoice-card-footer{border-top:1px solid var(--app-line);padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.invoice-card-footer span{color:var(--app-muted);font-size:.75rem}.invoice-card-footer strong{font-size:.95rem;color:#7367f0;overflow-wrap:anywhere}.empty-state{grid-column:1/-1;text-align:center}.empty-state .card-body{padding:48px 20px}.empty-icon{display:grid;place-items:center;width:72px;height:72px;background:#f0edff;color:#7367f0;border-radius:20px;margin:0 auto 22px}.empty-icon>.ti{font-size:2rem}.empty-state p{font-size:.88rem;color:var(--app-muted);margin:10px 0 23px}.invoice-summary{margin-bottom:32px}.summary-top{display:flex;justify-content:space-between;gap:20px;align-items:center}.summary-top>div{min-width:0}.summary-stats{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:25px 0;margin-top:22px;border-top:1px solid var(--app-line);border-bottom:1px solid var(--app-line)}.summary-stats>div{min-width:0}.summary-stats span{display:block;font-size:.8rem;color:var(--app-muted);margin-bottom:5px}.summary-stats strong{display:block;font-size:1.65rem;letter-spacing:-.04em;line-height:1.3;overflow-wrap:anywhere}.summary-stats small{font-size:.85rem;font-weight:450;letter-spacing:0}.summary-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}.item-cards{display:none}.desktop-items table{font-size:.8rem;table-layout:fixed}.desktop-items th{font-size:.66rem;padding:15px 10px;white-space:normal}.desktop-items td{padding:14px 10px;overflow-wrap:anywhere;vertical-align:middle}.desktop-items th:first-child{width:5%}.desktop-items th:nth-child(2){width:12%}.desktop-items th:nth-child(7){width:17%}.desktop-items th:last-child{width:8%}.price-cell{font-weight:600}.dropdown-menu{border:1px solid var(--app-line);border-radius:12px;box-shadow:0 8px 30px #38344c1a}.dropdown-item{min-height:44px;display:flex;align-items:center;gap:10px;font-size:.85rem}.dropdown-item:disabled{color:#aaa;pointer-events:none}.invoice-danger{display:flex;justify-content:flex-end;margin-top:28px}.sticky-action{display:none}.mobile-nav{display:none}.login-container{max-width:490px;padding-top:65px}.login-card .card-body{padding:34px}.login-mark{display:grid;place-items:center;width:54px;height:54px;background:#f0edff;color:#7367f0;border-radius:14px;margin-bottom:22px}.login-mark>.ti{font-size:1.8rem}.login-card h1{font-size:1.6rem}.skip-link{position:fixed;top:-100px;left:15px;background:#fff;padding:10px;z-index:2000}.skip-link:focus{top:10px}.preview-toolbar{background:#fff;border-bottom:1px solid var(--app-line);padding:16px 24px;display:flex;align-items:center;gap:18px;position:relative;z-index:2}.preview-toolbar>span{font-weight:600;overflow-wrap:anywhere;min-width:0}.preview-actions{display:flex;gap:10px;margin-left:auto}.preview-hint{text-align:center;color:var(--app-muted);font-size:.8rem;margin:22px 20px 4px}.document-scroll{overflow:auto;padding:24px 16px 40px}.paper{width:210mm;min-height:297mm;background:#fff;box-shadow:0 4px 24px #38344c15;margin:0 auto;padding:14mm 12mm}
@media(max-width:1000px){.invoice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-items{display:none}.item-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.item-card-top{display:flex;gap:10px;align-items:flex-start}.position-badge{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;background:#f0edff;color:#7367f0;font-size:.8rem;font-weight:700;flex-shrink:0}.item-title{flex:1;min-width:0}.item-title h3{font-size:.95rem;line-height:1.5}.item-title p{font-size:.75rem;color:var(--app-muted);margin:4px 0 0}.item-card-top>.dropdown{margin-top:-6px}.item-facts{margin:21px 0 18px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.item-facts>div{min-width:0}.item-facts dt{font-weight:450;font-size:.7rem;color:var(--app-muted)}.item-facts dd{font-size:.85rem;margin:3px 0 0;overflow-wrap:anywhere}.item-facts>div:last-child{grid-column:1/-1}.item-price{display:flex;gap:10px;justify-content:space-between;align-items:center;border-top:1px solid var(--app-line);padding-top:14px;flex-wrap:wrap}.item-price span{font-size:.8rem;color:var(--app-muted)}.item-price strong{font-size:1.1rem;overflow-wrap:anywhere}}
@media(max-width:767px){.app-header-inner{padding:13px 18px;gap:10px}.brand{font-size:1rem}.desktop-nav{display:none}.app-main{padding:25px 18px calc(108px + env(safe-area-inset-bottom))}.heading-with-action{align-items:flex-start;flex-direction:column;gap:19px}.heading-with-action>.btn{width:100%}.card-body{padding:20px}.field-grid,.signature-grid{grid-template-columns:1fr}.form-fields{gap:19px}.form-actions{flex-direction:column}.form-actions>*{width:100%}.signature-grid{gap:28px}.invoice-grid,.item-cards{grid-template-columns:1fr}.invoice-card .card-body{padding:21px}.invoice-card-top{margin-bottom:18px}.invoice-period{min-height:0}.search-form{gap:8px;flex-wrap:wrap}.search-input{flex-basis:calc(100% - 75px)}.search-form>.btn{padding:10px 12px}.search-form>.btn:last-child:nth-child(3){min-width:100%;margin-top:4px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:1000;display:flex;justify-content:space-around;min-height:var(--app-nav-height);padding:7px 10px calc(7px + env(safe-area-inset-bottom));background:#fffffffa;border-top:1px solid var(--app-line);backdrop-filter:blur(10px)}.mobile-nav a{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;color:#938da5;font-size:.66rem;min-width:74px;min-height:55px;border-radius:10px;padding:6px 8px}.mobile-nav a>.ti{font-size:1.4rem}.mobile-nav a.active{color:#7367f0;background:#f0edff}.summary-top{align-items:flex-start;flex-direction:column;gap:16px}.summary-top>.btn{width:100%}.summary-stats{gap:15px}.summary-stats strong{font-size:1.4rem}.summary-stats small{display:block;margin-top:4px;font-size:.75rem}.summary-actions{flex-direction:column}.summary-actions>*{width:100%}.sticky-action{display:block;position:fixed;bottom:calc(var(--app-nav-height) + env(safe-area-inset-bottom));left:0;right:0;padding:12px 18px;background:#f7f7fbf5;border-top:1px solid var(--app-line);z-index:990}.sticky-action>.btn{width:100%}.app-main:has(.sticky-action){padding-bottom:calc(185px + env(safe-area-inset-bottom))}.invoice-danger{justify-content:stretch}.invoice-danger form,.invoice-danger button{width:100%}.login-container{padding-top:35px}.login-card .card-body{padding:25px}.preview-toolbar{padding:14px;flex-wrap:wrap;gap:12px}.preview-toolbar>span{margin-left:auto}.preview-actions{width:100%;margin:0}.preview-actions>*{flex:1}.paper{margin:0}.alert{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.required-mark::before{content:"*"}
@media(max-width:767px){.app-header-inner .desktop-nav+form{margin-left:auto}}
.desktop-items .table-responsive{overflow:visible}

.job-modal .modal-dialog{max-width:580px}
.job-modal .modal-content{border-radius:16px;border:1px solid var(--app-line);overflow:hidden}
.job-modal .modal-header{padding:20px 24px;flex-shrink:0;border-bottom:1px solid var(--app-line);gap:12px}
.job-modal .modal-title{font-size:1.2rem}
.job-modal .btn-close{min-width:44px;min-height:44px;padding:10px;box-sizing:border-box;background-size:14px;opacity:.65;margin:0 -10px 0 0}
.job-modal .modal-body{padding:22px 24px;overscroll-behavior:contain;min-height:0}
.job-modal .modal-footer{padding:15px 20px;border-top:1px solid var(--app-line);gap:8px;flex-shrink:0;background:#fff}
.job-modal .modal-footer .btn{margin:0;font-size:.8rem;padding:11px 12px}
.job-modal [hidden]{display:none!important}
.job-toast-container{z-index:1100;max-width:100%}
.job-toast-container .toast{max-width:100%}
@media(max-width:767px){
 .job-modal{top:var(--job-viewport-top,0);height:var(--job-viewport-height,100dvh);padding:0!important}
 .job-modal .modal-dialog{max-width:none;width:100%;height:calc(var(--job-viewport-height,100dvh) - 12px);max-height:calc(var(--job-viewport-height,100dvh) - 12px);margin:12px 0 0;align-items:stretch}
 .job-modal .modal-content{height:100%;max-height:100%;border-radius:18px 18px 0 0}
 .job-modal .modal-header{padding:15px 18px}
 .job-modal .modal-body{padding:18px}
 .job-modal .modal-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr}
 .job-modal [data-job-save]{grid-column:1/-1;grid-row:1;font-size:.95rem}
 .job-modal .modal-footer .btn{min-height:44px}
}

