:root{color:#17231d;background:#f2f5f7;font-family:Inter,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}main{max-width:1480px;margin:auto;padding:34px 28px}header{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}small{letter-spacing:.08em;color:#68756f}h1{margin:7px 0;font-size:34px}h2{font-size:23px}h3{margin:0 0 12px;font-size:16px}button,.button{color:#fff;cursor:pointer;font:inherit;background:#167556;border:0;border-radius:9px;padding:11px 16px;font-weight:600;transition:all .18s}button:hover,.button:hover{filter:brightness(.95);transform:translateY(-1px)}button:disabled{opacity:.55;cursor:wait}.secondary{color:#245c46;background:#e8f0ec}.cards{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.cards article,.panel{background:#fff;border:1px solid #dfe6e2;border-radius:14px;padding:20px;box-shadow:0 2px 10px #1a322709}.cards strong{margin:10px 0 5px;font-size:26px;display:block}.summary{position:relative;overflow:hidden;border-left-width:5px!important}.summary:after{content:"";opacity:.06;background:currentColor;border-radius:50%;width:90px;height:90px;position:absolute;top:-25px;right:-20px}.summary.green{color:#167556;border-left-color:#35a879}.summary.blue{color:#2369a8;border-left-color:#4b98d1}.summary.violet{color:#6851a5;border-left-color:#8a74c5}.summary.amber{color:#9a6715;border-left-color:#e0a83a}.summary span,.summary small{color:#67736d}.summary small{letter-spacing:0}.panel{margin-bottom:18px}.panel h2{margin:0}.section-title{justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px;display:flex}.section-title p{color:#6b7771;margin:5px 0 0}.project-search{background:#f8faf9;max-width:310px}.create-project{border:1px dashed #b9cbc2;border-radius:10px;margin:12px 0 16px}.create-project summary{color:#167556;cursor:pointer;padding:12px 15px;font-weight:700}.create-project .project-form{padding:0 14px 14px}.project-form{grid-template-columns:.7fr 1.4fr 1fr 1fr auto;gap:9px;margin-bottom:0;display:grid}input,select{width:100%;font:inherit;background:#fff;border:1px solid #cfdbd5;border-radius:8px;padding:10px}input:focus,select:focus{border-color:#399878;outline:3px solid #2377561f}.table-wrap{overflow:auto}table{border-collapse:separate;border-spacing:0;width:100%}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #edf1ef;padding:13px 12px}th{color:#69746e;text-transform:uppercase;letter-spacing:.04em;z-index:1;background:#f7f9f8;font-size:12px;position:sticky;top:0}th small{text-transform:none;letter-spacing:0}.projects-table tbody tr:not(.payment-panel-row):hover{background:#f7fbf9}.selected-row{background:#f0f8f5!important}.project-name{white-space:normal;min-width:180px;display:block}.project-code{color:#78847e;margin-top:4px;font-size:12px;display:block}.money-cell{font-weight:650}.projects-table td>span:not(.progress):not(.project-code):not(.metric-percent){color:#8a948f;margin-bottom:3px;font-size:12px;display:block}.metric-percent{color:#167556;background:#e3f3eb;border-radius:12px;margin-left:7px;padding:3px 6px;font-size:11px;display:inline-block}.text-green{color:#15704f}.text-red{color:#bd3d3d}.text-blue{color:#2369a8}.text-amber{color:#a5680e}.progress{background:#e4ebee;border-radius:5px;width:105px;height:5px;margin-top:7px;display:block;overflow:hidden}.progress i{background:#438ed0;border-radius:5px;height:100%;display:block}.row-actions{gap:6px;display:flex}.payment-button{background:#316fa8}.empty{color:#68726d}.document-card{border:1px solid #e1e7e3;border-radius:10px;margin:10px 0;overflow:hidden}.document-head{text-align:left;color:#17231d;background:#fff;border-radius:0;justify-content:space-between;align-items:center;width:100%;padding:15px;display:flex}.document-head span{flex-direction:column;gap:4px;display:flex}.document-head small{letter-spacing:0}.status{color:#765d16;background:#fff2cf;border-radius:20px;padding:6px 9px;font-size:12px}.status.approved{color:#1f6b4f;background:#dff3e8}.status.failed{color:#9b3029;background:#fde4e2}.document-card>.secondary{margin:0 15px 14px}.lines{background:#fafcfb;border-top:1px solid #e6ebe8}.line{border-bottom:1px solid #e6ebe8;grid-template-columns:minmax(280px,1fr) auto;align-items:center;gap:15px;padding:14px 16px;display:grid}.line:last-child{border-bottom:0}.line.reviewed{opacity:.75}.line-info{flex-direction:column;gap:5px;display:flex}.line-info span{color:#637069;font-size:14px}.allocation{align-items:center;gap:7px;display:flex}.allocation select{min-width:210px}.done{color:#1f6b4f;font-weight:600}@media (width<=1100px){.cards{grid-template-columns:repeat(2,1fr)}}@media (width<=850px){main{padding:24px 14px}.project-form{grid-template-columns:1fr 1fr}.line{grid-template-columns:1fr}.allocation{flex-wrap:wrap}.section-title{flex-direction:column;align-items:stretch}.project-search{max-width:none}}@media (width<=650px){header{flex-direction:column;align-items:flex-start;gap:18px}.cards,.project-form{grid-template-columns:1fr}.allocation select{min-width:100%}}.global-search{z-index:14;max-width:1480px;margin:0 auto;padding:9px 28px 0;position:sticky;top:58px}.global-search-box{background:#fff;border:1px solid #cfdcd6;border-radius:12px;grid-template-columns:28px 1fr auto;align-items:center;display:grid;overflow:hidden;box-shadow:0 3px 14px #16342914}.global-search-box>span{color:#28795e;text-align:center;font-size:22px}.global-search-box input{border:0;outline:0;padding:11px 4px}.global-search-box input:focus{outline:0}.global-search-box button{color:#64736c;background:0 0;border-radius:0;padding:8px 13px;font-size:20px}.global-search-results{background:#fff;border:1px solid #d6e1dc;border-radius:0 0 12px 12px;max-height:min(560px,65vh);position:absolute;left:28px;right:28px;overflow:auto;box-shadow:0 14px 30px #142e242b}.global-search-caption{color:#6a7871;border-bottom:1px solid #e6ece9;justify-content:space-between;align-items:center;padding:9px 13px;font-size:12px;display:flex}.global-search-caption button{color:#496258;background:#edf3f0;padding:5px 8px}.global-search-result{color:#203b30;border-bottom:1px solid #edf1ef;grid-template-columns:90px 1fr;gap:11px;padding:11px 14px;text-decoration:none;display:grid}.global-search-result:hover{background:#f3faf7}.global-search-result>b{color:#28664f;text-align:center;background:#e3f1eb;border-radius:10px;align-self:start;padding:4px 7px;font-size:11px}.global-search-result span>*{display:block}.global-search-result small{color:#6b7972;letter-spacing:0;margin-top:3px}.global-search-result.result-invoice>b{color:#8a5c07;background:#fff0cf}.global-search-result.result-supplier>b{color:#275f9a;background:#e7f0fb}.global-search-result.result-payment>b{color:#6b38a1;background:#efe8ff}.global-search-result.result-purchase>b{color:#94541d;background:#f7eadf}@media (width<=750px){.global-search{padding-left:14px;padding-right:14px;top:58px}.global-search-results{left:14px;right:14px}.global-search-result{grid-template-columns:74px 1fr}}.edit-form{grid-template-columns:.7fr 1.4fr 1fr 1fr auto auto;gap:8px;display:grid}.compact{padding:7px 10px;font-size:13px}@media (width<=850px){.edit-form{grid-template-columns:1fr 1fr}}@media (width<=650px){.edit-form{grid-template-columns:1fr}}.notice{border-radius:10px;justify-content:space-between;align-items:center;gap:16px;margin:0 0 18px;padding:13px 16px;font-weight:600;display:flex}.notice.success{color:#176b3a;background:#e8f7ee;border:1px solid #a9dfbd}.notice.error{color:#9d261f;background:#fff2f0;border:1px solid #f0b7b2}.notice button{color:inherit;cursor:pointer;background:0 0;border:0;font-size:22px;line-height:1}.document-check{background:#f5f8f6;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;padding:16px;display:flex}.document-check label{align-items:center;gap:7px;font-size:14px;display:flex}.document-check label:first-child{flex-direction:column;align-items:flex-start}.document-check input[type=number]{width:170px}.category-select{max-width:240px;margin-top:8px;padding:7px}.stock-row{border-bottom:1px solid #edf0ee;grid-template-columns:minmax(220px,1fr) minmax(210px,1fr) 130px auto;align-items:center;gap:12px;padding:14px 0;display:grid}.stock-row>div span{color:#68726d;margin-top:5px;font-size:14px;display:block}@media (width<=850px){.stock-row{grid-template-columns:1fr 1fr}}.payment-panel-row td{border-bottom:2px solid #dceae4;padding:0}.payment-panel{background:linear-gradient(110deg,#f1f8f5,#f4f7fb);grid-template-columns:minmax(420px,1.2fr) minmax(300px,.8fr);gap:24px;padding:20px;display:grid}.payment-entry{background:#fff;border:1px solid #dce8e2;border-radius:11px;padding:16px}.payment-fields{grid-template-columns:1fr 160px 1.2fr auto;align-items:end;gap:10px;display:grid}.payment-fields label{color:#637069;font-size:12px;font-weight:650}.payment-fields input{margin-top:5px;display:block}.payment-history{background:#fff;border:1px solid #dce4ea;border-radius:11px;padding:16px}.payment-history-row{border-bottom:1px solid #edf0f2;justify-content:space-between;align-items:center;padding:8px 0;display:flex}.payment-history-row span{flex-direction:column;display:flex}.payment-history-row small{letter-spacing:0;margin-top:2px}.danger-link{color:#b54040;background:0 0;padding:5px;font-size:12px}.danger-link:hover{background:#fdeceb;transform:none}@media (width<=1050px){.payment-panel{grid-template-columns:1fr}.payment-fields{grid-template-columns:1fr 1fr}.payment-fields button{grid-column:1/-1}}.login-page{background:linear-gradient(145deg,#edf4f0,#dcebe5);place-items:center;min-height:100vh;padding:24px;display:grid}.login-page form{background:#fff;border:1px solid #d5e1db;border-radius:18px;gap:13px;width:min(430px,100%);padding:34px;display:grid;box-shadow:0 18px 55px #14392b24}.login-page h1{margin:0 0 8px}.login-page input{padding:13px;font-size:16px}.login-page button{margin-top:4px;padding:13px}.login-error{color:#a3302a;background:#fde8e6;border-radius:8px;margin:0;padding:10px}.app-nav .nav-brand{color:#fff;letter-spacing:.07em;padding-left:0;font-weight:850}.app-nav .nav-brand:hover{color:#bfe9d8;background:0 0}.app-nav .nav-user{color:#fff;flex-direction:column;margin-left:auto;padding:0 8px;font-weight:650;line-height:1.15;display:flex}.app-nav .nav-user small{color:#bcd8cd;letter-spacing:.04em;margin-top:3px;font-size:10px}.app-nav .nav-logout{background:#2a6452;padding:7px 10px;font-size:12px}@media (width<=1100px){.app-nav .nav-brand{display:none}}@media (width<=900px){.app-nav .nav-user{display:none}.app-nav .nav-logout{margin-left:auto}}.document-removal{z-index:20;position:fixed;bottom:22px;right:24px}.delete-document-button{background:#9f3f3f;box-shadow:0 5px 18px #69222238}.removal-dialog{background:#fff;border:1px solid #ebcece;border-radius:13px;width:min(430px,100vw - 28px);padding:18px;box-shadow:0 12px 38px #2a1e1e33}.removal-dialog strong{font-size:17px}.removal-dialog p{color:#6f7471;margin:5px 0 12px;font-size:13px}.removal-dialog span{color:#a13232;margin-top:9px;font-size:13px;display:block}.removal-dialog>div{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.danger-button{background:#b54444}.parties-panel>p{color:#69766f;margin-top:-5px}.party-document{border-top:1px solid #e2e9e5}.party-head{color:#193e32;text-align:left;background:0 0;justify-content:space-between;align-items:center;width:100%;padding:13px 5px;display:flex}.party-head span>*{display:block}.party-head small{color:#6e7b74;margin-top:4px}.invoice-totals{text-align:right}.invoice-totals b{color:#193e32}.invoice-totals small{color:#8152a5}.vat-lines{padding:0 10px 10px 20px}.invoice-number-edit{background:#eef6f2;border-radius:9px;align-items:end;gap:10px;margin-bottom:10px;padding:12px;display:flex}.invoice-number-edit label{font-size:12px;font-weight:700}.invoice-number-edit input{min-width:220px;margin-top:4px;display:block}.invoice-number-edit>span{color:#267054;align-self:center;font-size:12px}.vat-lines .invoice-line{background:#f6f1fa;border-radius:7px;grid-template-columns:minmax(250px,2fr) minmax(90px,.6fr) minmax(100px,.7fr) minmax(110px,.8fr) minmax(100px,.7fr);align-items:center;gap:12px;padding:8px 10px;font-size:12px;display:grid}.vat-lines .invoice-line+.invoice-line{margin-top:4px}.invoice-line b{white-space:nowrap;color:#193e32}.invoice-line em{white-space:nowrap;color:#724493;font-style:normal;font-weight:700}.invoice-line-head{color:#65586e;font-weight:700;background:#e8e0ef!important}@media (width<=850px){.party-head{flex-direction:column;align-items:flex-start;gap:8px}.invoice-totals{text-align:left}.invoice-number-edit{flex-direction:column;align-items:stretch}.invoice-number-edit input{min-width:0}.vat-lines .invoice-line{grid-template-columns:1fr 1fr}.invoice-line-head{display:none!important}}.batch-card{background:linear-gradient(120deg,#e3f4ed,#f5faf8);border:1px solid #b9d9cc;border-radius:14px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:16px;padding:22px 24px;display:flex}.batch-card h2{color:#174c3b;margin:0 0 7px}.batch-card p{color:#52665d;margin:0}.batch-button{white-space:nowrap;background:#176f53}.batch-results{background:#fff;border:1px solid #dbe6e1;border-radius:12px;margin:-5px 0 18px;overflow:hidden}.batch-result{border-bottom:1px solid #edf1ef;border-left:5px solid #35a879;justify-content:space-between;align-items:center;padding:11px 14px;display:flex}.batch-result:last-child{border-bottom:0}.batch-result span,.batch-result small{display:block}.batch-result small{letter-spacing:0;margin-top:3px}.batch-result b{color:#267053;font-size:12px}.batch-result.duplicate{border-left-color:#e0a83a}.batch-result.duplicate b{color:#946313}.batch-result.failed{border-left-color:#cf5454}.batch-result.failed b{color:#a83e3e}.app-nav{z-index:15;background:#173b31;gap:8px;padding:10px max(28px,50vw - 712px);display:flex;position:sticky;top:0;box-shadow:0 2px 12px #0f271f2e}.app-nav a{color:#dcebe5;border-radius:8px;padding:9px 14px;font-weight:650;text-decoration:none}.app-nav a.active,.app-nav a:hover{color:#176247;background:#fff}.purchase-toolbar{background:#eaf3ef;border:1px solid #cfe0d8;border-radius:13px;grid-template-columns:1.2fr 1fr auto;align-items:end;gap:12px;margin-bottom:18px;padding:18px;display:grid}.purchase-toolbar label{color:#52665d;font-size:12px;font-weight:700}.purchase-toolbar select{margin-top:5px;display:block}.upload-project{text-align:center;align-self:end}.purchase-notice{color:#725819;background:#fff3d4;border-radius:9px;margin:-7px 0 18px;padding:12px 15px}.supplier-shortcut{color:#285d78;background:#eaf5fb;border-radius:9px;justify-content:space-between;gap:16px;margin:-7px 0 18px;padding:12px 15px;display:flex}.supplier-shortcut a{color:#176247;font-weight:700}.purchase-group{margin-top:20px}.purchase-group h3{color:#245d49;background:#eef7f3;border-left:4px solid #278365;padding:8px 11px}.purchase-group td:first-child strong,.purchase-group td:first-child small{display:block}.purchase-group td:first-child small{letter-spacing:0;margin-top:4px}.purchase-group input{min-width:135px;padding:8px}.purchase-status{min-width:130px;font-weight:700}.purchase-status.required{color:#805e10;background:#fff3d5}.purchase-status.ordered{color:#255f8e;background:#e1effa}.purchase-status.received{color:#246747;background:#e3f4e9}.purchase-status.issued{color:#644b8b;background:#eee8f8}.import-row{border-bottom:1px solid #edf1ef;justify-content:space-between;align-items:center;padding:12px 2px;display:flex}.import-row span,.import-row small{display:block}.import-row small{letter-spacing:0;margin-top:3px}@media (width<=750px){.purchase-toolbar{grid-template-columns:1fr}.batch-card{flex-direction:column;align-items:stretch}.batch-button{text-align:center}.app-nav{padding-left:14px}}.purchase-search{align-items:center;gap:12px;margin-bottom:12px;display:flex}.purchase-search input{background:#fff;max-width:560px}.purchase-search span{color:#68766f;font-size:12px}@media (width<=700px){.purchase-search{flex-direction:column;align-items:stretch}}.project-register header p{color:#65736d;margin:5px 0 0}.project-message{color:#1e654a;background:#e1f3e9;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:15px;padding:12px 15px;display:flex}.project-message button{color:inherit;background:0 0;padding:2px 8px;font-size:20px}.project-overview{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;display:grid}.project-overview article{background:#fff;border-left:5px solid #39866b;border-radius:13px;padding:18px 20px}.project-overview article.warning{border-left-color:#e0a83a}.project-overview article.danger{border-left-color:#c84747}.project-overview span{color:#68756f;display:block}.project-overview strong{margin-top:7px;font-size:27px;display:block}.project-create-card{background:#f4faf7;border:1px solid #cddfd7;border-radius:13px;margin-bottom:18px}.project-create-card summary{color:#176f53;cursor:pointer;padding:16px 18px;font-weight:750}.project-detail-form{grid-template-columns:repeat(4,1fr);gap:13px;padding:5px 18px 18px;display:grid}.project-detail-form label{color:#596a62;font-size:12px;font-weight:700}.project-detail-form input,.project-detail-form select{margin-top:5px;display:block}.project-detail-form .wide{grid-column:span 2}.color-field{align-items:center;gap:9px;margin-top:5px;display:flex}.color-field input{width:55px;height:41px;margin:0;padding:3px}.color-field code{font-size:12px}.project-detail-form>button,.form-actions{align-self:end}.form-actions{gap:8px;display:flex}.project-card-list{gap:12px;display:grid}.project-record{background:#fff;border:1px solid #dfe7e3;border-left:7px solid #64748b;border-radius:11px;padding:0;overflow:hidden}.record-main{grid-template-columns:1.7fr 1fr 1.1fr 1fr auto;align-items:center;gap:18px;padding:17px;display:grid}.record-main h3{margin:5px 0;font-size:18px}.record-main>div>span{color:#718078;margin-bottom:5px;font-size:12px;display:block}.contract-label{font-weight:750;color:#176f53!important}.record-main em{margin-top:6px;font-style:normal;display:block}.stage-badge,.schedule{color:#fff;border-radius:16px;width:max-content;padding:5px 9px;font-size:12px;display:inline-block}.schedule.normal{color:#22684e;background:#e3f1eb}.schedule.soon{color:#805d10;background:#fff1cf}.schedule.urgent{color:#914e08;background:#ffe2bd}.schedule.late{color:#a13232;background:#fde0df}.schedule.done{color:#22684e;background:#dcefe4}.schedule.neutral{color:#66736c;background:#edf0ef}.record-address{color:#59675f;background:#f8faf9;border-top:1px solid #edf1ef;padding:10px 17px;font-size:13px}.project-record .project-detail-form{padding-top:18px}@media (width<=1000px){.record-main,.project-detail-form{grid-template-columns:1fr 1fr}}@media (width<=650px){.project-overview,.record-main,.project-detail-form{grid-template-columns:1fr}.project-detail-form .wide{grid-column:auto}}.project-upload-actions{align-items:center;gap:12px;min-width:460px;display:flex}.project-upload-actions select{background:#fff;min-width:290px}.project-documents{background:#fbfdfc;border-top:1px solid #e3ebe7}.project-documents summary{color:#286850;cursor:pointer;padding:11px 17px;font-size:13px;font-weight:700}.project-documents summary b{background:#dceee6;border-radius:12px;justify-content:center;min-width:24px;margin-left:5px;padding:2px 7px;display:inline-flex}.project-documents>p{color:#718078;margin:0;padding:3px 17px 15px;font-size:13px}.project-document-list{gap:6px;padding:0 17px 14px;display:grid}.project-document{color:#26654d;background:#edf7f2;border-radius:8px;justify-content:space-between;gap:15px;padding:9px 11px;font-size:12px;display:flex}.project-document span>*{display:block}.project-document small{color:#6a7972;margin-top:2px}.project-document em{color:#a13232;margin-top:4px;font-style:normal}.project-document.failed{color:#9b3030;background:#fdebea}.project-tabs{gap:8px;margin:18px 0;display:flex}.project-tabs button{color:#486057;background:#fff;border:1px solid #d6e2dc;padding:11px 20px}.project-tabs button.active{color:#fff;background:#176b50;border-color:#176b50}.project-overview article.done{color:#176b46;background:#e5f5eb}.project-record.archived{background:#f8fcf9;border-left-color:#15803d!important}.completion{border-radius:14px;margin-top:4px;padding:5px 9px;font-size:12px;display:inline-flex}.completion.pending{color:#865c08;background:#fff0cf}.completion.ready{color:#246a49;background:#dff3e7}.project-folder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:4px 17px 16px;display:grid}.project-folder{background:#fff;border:1px solid #dce7e2;border-radius:12px;flex-direction:column;min-height:170px;display:flex;overflow:hidden}.folder-technical{border-top:4px solid #3b82f6}.folder-measurement{border-top:4px solid #d97706}.folder-closing{border-top:4px solid #16a34a}.folder-payment{border-top:4px solid #7c3aed}.folder-head{background:#f7faf8;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;padding:12px;display:grid}.folder-head>span{font-size:23px}.folder-head h4{color:#263d34;margin:0}.folder-head small{color:#728078}.folder-head>b{color:#315e4c;background:#e4eee9;border-radius:50%;place-items:center;min-width:26px;height:26px;display:grid}.folder-files{flex:1;gap:5px;padding:10px 12px;display:grid}.folder-file{background:#f0f6f3;border-radius:6px;justify-content:space-between;gap:8px;padding:7px;font-size:12px;display:flex}.folder-file span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-file small{color:#63766d}.folder-files>em{color:#87928d;font-size:12px;font-style:normal}.folder-upload{color:#286850;text-align:center;cursor:pointer;border:1px dashed #6d9c88;border-radius:7px;margin:0 12px 12px;padding:8px}.final-payment-form{grid-template-columns:1fr 1fr;gap:8px;padding:12px;display:grid}.final-payment-form button{grid-column:1/-1}.payment-complete{color:#176b46;text-align:center;background:#e3f5e9;border-radius:8px;margin:13px;padding:14px;font-weight:700}.archive-rule{color:#8d6110;background:#f4f8f6;border-top:1px solid #e0e9e5;align-items:center;gap:12px;padding:12px 17px;font-size:12px;display:flex}.archive-rule span{background:#fff0cf;border-radius:12px;padding:5px 8px}.archive-rule span.done{color:#246a49;background:#dff3e7}.archive-rule strong{color:#506159;margin-left:auto}.empty-projects{color:#718078;text-align:center;padding:30px}.folder-file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.project-finance-strip{background:#dce7e2;border:1px solid #dce7e2;border-radius:10px;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0 17px 12px;display:grid;overflow:hidden}.project-finance-strip>span{background:#f8fbf9;flex-direction:column;gap:3px;min-width:0;padding:10px 12px;display:flex}.project-finance-strip small{color:#65756d;font-size:11px}.project-finance-strip strong{color:#263d34;font-size:14px}.project-finance-strip em{color:#74837b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-style:normal;overflow:hidden}.project-finance-strip .positive{background:#eef8f2}.project-finance-strip .positive strong{color:#176b46}.project-finance-strip .negative{background:#fff0f0}.project-finance-strip .negative strong{color:#a83232}@media (width<=1000px){.project-finance-strip{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.project-finance-strip{grid-template-columns:1fr}}.folder-file-info span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.folder-file-delete{color:#991b1b;cursor:pointer;background:#fee2e2;border:0;border-radius:8px;flex:none;padding:6px 9px;font-size:12px;font-weight:700}.folder-file-delete:hover{background:#fecaca}.folder-file-delete:focus-visible{outline-offset:2px;outline:3px solid #fca5a5}.folder-file-actions{flex-shrink:0;align-items:center;gap:5px;display:flex}.folder-file-open{color:#1d4ed8;font:inherit;background:#eff6ff;border:1px solid #93c5fd;border-radius:6px;padding:5px 8px;text-decoration:none}.folder-file-open:hover{background:#dbeafe}.folder-file-open:focus-visible{outline-offset:2px;outline:3px solid #93c5fd}.attention-panel{color:#744b08;background:#fff7e6;border-left:5px solid #d97706;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0;padding:14px 18px;display:flex}.attention-panel strong{margin-right:5px;font-size:16px}.attention-panel span{background:#fff;border-radius:14px;padding:5px 9px}.attention-panel button{margin-left:auto}.project-filters{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.project-filters select{min-height:40px}.project-filters label{align-items:center;gap:6px;font-size:13px;display:flex}.project-filters label input{width:auto}.confirm-closing{color:#fff;cursor:pointer;background:#166534;border:0;border-radius:7px;margin:0 12px 8px;padding:8px}.closing-confirmed{color:#166534;text-align:center;background:#dcfce7;border-radius:7px;margin:0 12px 8px;padding:8px;font-weight:700}.incomplete-finance{color:#9a6700!important;background:#fff8df!important}.incomplete-finance strong{font-size:14px!important}@media (width<=700px){.project-upload-actions{flex-direction:column;align-items:stretch;min-width:0}.project-upload-actions select{min-width:0}.project-folder-grid{grid-template-columns:1fr}.archive-rule{flex-direction:column;align-items:flex-start}.archive-rule strong{margin-left:0}}.calendar-page header{align-items:center}.calendar-page header p{color:#65736d;margin:5px 0 0}.month-switch{background:#fff;border-radius:12px;align-items:center;gap:14px;padding:8px;display:flex}.month-switch strong{text-align:center;text-transform:capitalize;min-width:170px}.calendar-summary{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px;display:grid}.calendar-summary article{background:#fff;border-left:6px solid #28795e;border-radius:13px;padding:20px}.calendar-summary article.installations{border-left-color:#287fbd}.calendar-summary article.vat{border-left-color:#8b5bb5}.calendar-summary span,.calendar-summary b{color:#68756f;display:block}.calendar-summary strong{margin:7px 0;font-size:29px;display:block}.calendar-columns{grid-template-columns:1fr 1fr;gap:18px;display:grid}.calendar-row{border-bottom:1px solid #e6ece9;grid-template-columns:100px 1fr auto;align-items:center;gap:12px;padding:13px 0;display:grid}.calendar-row:last-child{border-bottom:0}.calendar-row time{color:#216b52;font-weight:700}.calendar-row span>*{display:block}.calendar-row small{color:#728079;margin-top:4px}.calendar-row>b{color:#193e32}@media (width<=850px){.calendar-summary,.calendar-columns,.calendar-row{grid-template-columns:1fr}.month-switch strong{min-width:120px}}.calendar-legend{color:#596a62;justify-content:flex-end;gap:18px;margin:-7px 0 8px;font-size:13px;display:flex}.calendar-legend span{align-items:center;gap:6px;display:flex}.three-months{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.month-grid{background:#fff;border:1px solid #dfe7e3;border-radius:13px;padding:13px}.month-grid.current{border:2px solid #28795e;box-shadow:0 6px 18px #234f3c14}.month-grid h2{text-align:center;text-transform:capitalize;margin:0 0 10px;font-size:17px}.weekday-row,.day-grid{grid-template-columns:repeat(7,1fr);display:grid}.weekday-row b{text-align:center;color:#87918c;padding:4px;font-size:10px}.calendar-day{background:#fbfcfb;border:1px solid #edf1ef;min-height:40px;padding:4px}.calendar-day>strong{font-size:11px}.calendar-day>span{flex-wrap:wrap;gap:3px;margin-top:5px;display:flex}.calendar-day.has-contract{background:#edf8f2}.calendar-day.has-installation{box-shadow:inset 0 -3px #2b83bd}.contract-dot,.installation-dot{background:#2d966c;border-radius:50%;width:8px;height:8px;display:inline-block}.installation-dot{background:#2b83bd}.empty-day{background:#f5f7f6}@media (width<=1100px){.three-months{grid-template-columns:1fr}.calendar-day{min-height:52px}}@media (width<=850px){.calendar-summary,.calendar-columns,.calendar-row{grid-template-columns:1fr}.month-switch strong{min-width:120px}}.calendar-day{color:inherit;text-align:left;font:inherit;cursor:pointer}.calendar-day:hover{background:#f2faf6;border-color:#75aa97;position:relative}.calendar-day:focus-visible{outline-offset:-2px;outline:3px solid #8fcab4;position:relative}.calendar-day.selected{outline-offset:-3px;border-color:#145a43;outline:3px solid #28795e;position:relative}.empty-day{cursor:default}.selected-day-panel{border-left:6px solid #28795e;margin:-2px 0 18px}.selected-day-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.selected-day-heading small{color:#65736d}.selected-day-heading h2{text-transform:capitalize;margin:3px 0}.selected-events{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.selected-event{background:#edf8f2;border-radius:10px;gap:4px;padding:13px 14px;display:grid}.selected-event>span{color:#28795e;text-transform:uppercase;font-size:12px;font-weight:800}.selected-event>b{color:#174c3a;margin-top:3px}.selected-event small{color:#68756f}.selected-event.installation-event{background:#eef6fb}.selected-event.installation-event>span{color:#196c9f}@media (width<=850px){.selected-events{grid-template-columns:1fr}}.calendar-summary article.overhead{background:#f5f0ff;border-top:4px solid #7c3aed}.calendar-summary article.overhead strong{color:#6d28d9}.overhead-panel{border-left:5px solid #7c3aed;justify-content:space-between;align-items:end;gap:24px;margin-bottom:20px;display:flex}.overhead-panel h2{margin:3px 0 6px}.overhead-panel p{color:#64748b;max-width:650px;margin:0}.overhead-panel form{grid-template-columns:repeat(3,minmax(130px,1fr)) auto;align-items:end;gap:10px;min-width:680px;display:grid}.overhead-panel label{color:#475569;gap:5px;font-size:13px;font-weight:700;display:grid}.overhead-panel input{box-sizing:border-box;width:100%}.overhead-allocation{margin-bottom:20px}.overhead-allocation td small{color:#64748b;margin-top:3px;display:block}.overhead-allocation td:last-child strong{color:#6d28d9}@media (width<=900px){.calendar-summary{grid-template-columns:1fr}.overhead-panel{flex-direction:column;align-items:stretch}.overhead-panel form{grid-template-columns:1fr;min-width:0}}.calendar-summary{grid-template-columns:repeat(3,1fr)}.calendar-summary article.invoices{background:#fff8e8;border-left-color:#d97706}.calendar-summary article.payments{background:#f5f0ff;border-left-color:#7c3aed}.invoice-dot,.payment-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.invoice-dot{background:#d97706}.payment-dot{background:#7c3aed}.calendar-day.has-invoice{border-top-color:#f0a33c}.calendar-day.has-payment{border-right-color:#8b5cf6}.selected-event.invoice-event{background:#fff6df}.selected-event.invoice-event>span{color:#a65d05}.selected-event.payment-event{background:#f4efff}.selected-event.payment-event>span{color:#6d28d9}@media (width<=900px){.calendar-summary{grid-template-columns:1fr}}.invoices-page header p{color:#66736d;margin:5px 0 0}.invoice-summary{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.invoice-summary button{color:#263d34;text-align:left;background:#fff;border:2px solid #0000;border-radius:12px;padding:15px 18px}.invoice-summary button.selected{border-color:#2b7b5f}.invoice-summary button.warning{background:#fff7e7}.invoice-summary button.blue{background:#eaf5fb}.invoice-summary button.danger{background:#fdecec}.invoice-summary span,.invoice-summary strong{display:block}.invoice-summary strong{margin-top:5px;font-size:24px}.invoice-tools{grid-template-columns:1fr 240px;gap:12px;margin-bottom:14px;display:grid}.invoice-card{background:#fff;border:1px solid #dfe7e3;border-left:6px solid #38906d;border-radius:10px;margin-bottom:9px;overflow:hidden}.invoice-card.incomplete{border-left-color:#d99a26}.invoice-card.failed{border-left-color:#bd4141}.invoice-card-head{grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:8px 12px;display:grid}.invoice-open{color:#203a30;text-align:left;background:0 0;justify-content:space-between;gap:20px;padding:5px;display:flex}.invoice-open span>*{display:block}.invoice-open span:last-child{text-align:right}.invoice-open small{color:#707d76;margin-top:4px}.invoice-badges{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.badge{color:#65736c;white-space:nowrap;background:#edf1ef;border-radius:12px;padding:4px 7px;font-size:10px;font-style:normal}.badge.warning{color:#835d08;background:#fff0cd}.badge.ready,.badge.approved{color:#256349;background:#dff1e7}.badge.blue{color:#21698f;background:#dceef8}.badge.failed{color:#9c3030;background:#f8dada}.invoice-details{background:#fafcfb;border-top:1px solid #e8eeeb;padding:14px 17px}.invoice-parties{grid-template-columns:1fr 1fr 1.3fr;gap:12px;margin-bottom:13px;display:grid}.invoice-parties span>*{display:block}.invoice-parties small{color:#78847e}.invoice-parties strong{margin-top:3px}.invoice-detail-head,.invoice-detail-row{grid-template-columns:minmax(260px,2fr) 110px 110px 120px 110px;gap:10px;padding:8px 10px;font-size:12px;display:grid}.invoice-detail-head{color:#647169;background:#e5eee9;border-radius:7px;font-weight:700}.invoice-detail-row{border-bottom:1px solid #e7ece9}.invoice-detail-row em{color:#724493;font-style:normal;font-weight:700}.invoice-error{color:#993131;background:#fde7e7;border-radius:7px;margin-bottom:10px;padding:9px}.invoice-edit{grid-template-columns:repeat(3,1fr);gap:11px;padding:15px;display:grid}.invoice-edit label{font-size:12px;font-weight:700}.invoice-edit input{margin-top:4px;display:block}.invoice-edit-actions{align-items:end;gap:8px;display:flex}@media (width<=950px){.invoice-summary{grid-template-columns:1fr 1fr}.invoice-card-head{grid-template-columns:1fr}.invoice-open{flex-direction:column}.invoice-open span:last-child{text-align:left}.invoice-badges{justify-content:flex-start}.invoice-edit,.invoice-parties{grid-template-columns:1fr 1fr}.invoice-detail-head{display:none}.invoice-detail-row{grid-template-columns:1fr 1fr}}@media (width<=600px){.invoice-summary,.invoice-tools,.invoice-edit,.invoice-parties{grid-template-columns:1fr}}.document-month-group{margin:18px 0 24px}.document-month-group>h3{color:#264d3e;text-transform:capitalize;border-bottom:2px solid #dce8e2;align-items:center;gap:9px;margin:0 0 10px;padding-bottom:8px;display:flex}.document-month-group>h3 b{color:#315f4e;background:#e3eee9;border-radius:50%;place-items:center;min-width:26px;height:26px;font-size:12px;display:grid}.payment-chronology{margin-bottom:18px}.payment-history-item{border-bottom:1px solid #e4ebe7;grid-template-columns:105px minmax(220px,1fr) 150px 150px;align-items:center;gap:12px;padding:11px 8px;display:grid}.payment-history-item time{color:#355e4e;font-weight:700}.payment-history-item span>*{display:block}.payment-history-item small{color:#6e7c75;margin-top:3px}.payment-history-item>b{text-align:right;color:#176b50}.payment-history-item>em{color:#55665e;text-align:center;background:#eef3f1;border-radius:12px;padding:5px 8px;font-size:11px;font-style:normal}.invoice-month-group>.invoice-card:last-child{margin-bottom:0}@media (width<=750px){.payment-history-item{grid-template-columns:1fr}.payment-history-item>b{text-align:left}}.financial-register-grid{grid-template-columns:minmax(0,1.25fr) minmax(420px,.75fr);align-items:start;gap:18px;display:grid}.financial-register-grid .invoice-register{order:1;min-width:0}.financial-register-grid .payment-chronology{order:2;min-width:0;margin-bottom:0}.financial-register-grid .payment-history-item{grid-template-columns:88px minmax(0,1fr);gap:8px}.financial-register-grid .payment-history-item>b{text-align:left}.financial-register-grid .payment-history-item>em{justify-self:start}.financial-register-grid .invoice-open{width:100%}@media (width<=1250px){.financial-register-grid{grid-template-columns:1fr}.financial-register-grid .invoice-register,.financial-register-grid .payment-chronology{order:initial}}.invoice-card.payment-unpaid{border-left-color:#c94b4b}.invoice-card.payment-partial{border-left-color:#dc982e}.invoice-card.payment-paid{border-left-color:#299267}.badge.payment-unpaid,.invoice-summary .payment-unpaid{color:#982f2f;background:#fde7e7}.badge.payment-partial,.invoice-summary .payment-partial{color:#865c08;background:#fff0cf}.badge.payment-paid,.invoice-summary .payment-paid{color:#246a49;background:#dff3e7}.payment-orders{background:#f3f8f6;border:1px solid #dbe7e1;border-radius:9px;margin:12px 0;padding:13px}.payment-title{justify-content:space-between;align-items:center;display:flex}.payment-title h3{margin:0}.payment-upload{grid-template-columns:1fr 150px 150px 1.3fr auto;gap:8px;margin:12px 0;display:grid}.payment-row{border-bottom:1px solid #dfe8e4;justify-content:space-between;padding:9px 2px;display:flex}.payment-row span>*{display:block}.payment-row small{letter-spacing:0;margin-top:3px}.payment-queue{border-top:5px solid #7b61a8;margin-bottom:18px}.payment-queue-title{justify-content:space-between;align-items:center;display:flex}.payment-queue-title h2{margin:0}.payment-queue-title p{color:#6c7772;margin:5px 0}.payment-queue-title>strong{color:#62458e;background:#eee8f7;border-radius:50%;place-items:center;width:42px;height:42px;font-size:20px;display:grid}.queue-create{background:#f4f0fa;border-radius:10px;grid-template-columns:145px 150px 140px 1fr 1.3fr auto;gap:8px;margin:15px 0;padding:12px;display:grid}.queue-row{border-top:1px solid #e5e0ea;grid-template-columns:minmax(250px,1.2fr) 170px minmax(250px,1fr) 130px auto;align-items:center;gap:9px;padding:11px;display:grid}.queue-row>span>*{display:block}.queue-row small{color:#748079}.queue-row em{color:#70558f;margin-top:3px;font-size:12px;font-style:normal}.queue-balance strong{color:#b06116}.queue-partial{background:#fffbf2}@media (width<=1100px){.queue-create{grid-template-columns:1fr 1fr 1fr}.queue-row{grid-template-columns:1fr 1fr}.queue-row select{grid-column:1/-1}}@media (width<=950px){.payment-upload{grid-template-columns:1fr 1fr}.payment-upload button{grid-column:1/-1}}@media (width<=650px){.queue-create,.queue-row{grid-template-columns:1fr}}.batch-upload-panel{background:linear-gradient(110deg,#e9f6f1,#f4f8fb);border:1px solid #cce0d7;border-radius:12px;grid-template-columns:1fr auto auto;align-items:center;gap:12px;margin-bottom:14px;padding:17px;display:grid}.batch-upload-panel div>*{display:block}.batch-upload-panel small{letter-spacing:0;margin-top:4px}.batch-upload-panel .payment-batch{background:#236f9b}.batch-message{color:#70550d;background:#fff2cf;border-radius:8px;margin-bottom:12px;padding:11px 14px}@media (width<=850px){.batch-upload-panel{grid-template-columns:1fr}.batch-upload-panel .button{text-align:center}}.suppliers-page header p{color:#66736d;margin:5px 0 0}.supplier-summary{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.supplier-summary article{background:#edf6f2;border-radius:12px;padding:17px}.supplier-summary span,.supplier-summary strong{display:block}.supplier-summary strong{margin-top:5px;font-size:22px}.supplier-search{width:min(520px,100%);margin-bottom:16px}.supplier-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.supplier-card{color:#203a30;background:#fff;border:1px solid #dce7e2;border-left:5px solid #2d8767;border-radius:10px;justify-content:space-between;gap:16px;padding:15px;text-decoration:none;display:flex}.supplier-card:hover{background:#f3faf7}.supplier-card span>*{display:block}.supplier-card span:last-child{text-align:right}.supplier-card small{letter-spacing:0;margin-top:5px}.supplier-card em{margin-top:5px;font-size:12px;font-style:normal}.supplier-card .debt{color:#a25e08}.supplier-card .settled{color:#22704f}@media (width<=750px){.supplier-summary,.supplier-grid{grid-template-columns:1fr}}.system-page header p{color:#65736d;margin:5px 0 0}.system-health{grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px;display:grid}.health-card{background:#fff;border:1px solid #dfe6e2;border-top:5px solid #2c936b;border-radius:14px;padding:20px}.health-card.warning{background:#fffaf0;border-top-color:#d79a2b}.health-card span,.health-card small{color:#68756f;display:block}.health-card strong{margin:9px 0 5px;font-size:20px;display:block}.health-card small{letter-spacing:0}.system-counters>div{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px;display:grid}.system-counters span{color:#526159;background:#f3f8f5;border-radius:10px;padding:15px}.system-counters b{color:#176e51;margin-bottom:3px;font-size:24px;display:block}.system-counters span.attention{background:#fff4dc}.system-counters span.attention b{color:#a5670d}.storage-panel>p{color:#65736d}.storage-panel label{color:#56645d;margin-top:15px;font-weight:650;display:block}.storage-panel code{color:#254c3d;word-break:break-all;background:#f2f5f3;border-radius:8px;margin-top:6px;padding:12px;font-family:Consolas,monospace;font-weight:400;display:block}.backup-advice{background:#edf7fc;border-left:4px solid #2d83b7;gap:12px;margin-top:18px;padding:14px;display:flex}.backup-advice span{color:#52636b}@media (width<=900px){.system-health{grid-template-columns:1fr}.system-counters>div{grid-template-columns:1fr 1fr}}@media (width<=600px){.system-counters>div{grid-template-columns:1fr}.backup-advice{flex-direction:column}}.audit-list{gap:7px;margin-top:14px;display:grid}.audit-list>div{background:#f5f8f6;border-radius:8px;grid-template-columns:160px 160px 1fr;gap:12px;padding:9px 11px;font-size:13px;display:grid}.audit-list time{color:#6b7d74}.audit-list strong{color:#244c3c}.audit-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=800px){.audit-list>div{grid-template-columns:1fr}.audit-list span{white-space:normal}}.users-panel form{grid-template-columns:2fr 2fr 1.3fr 1fr auto;gap:8px;margin:14px 0;display:grid}.user-list{gap:7px;display:grid}.user-list>div{background:#f5f8f6;border-radius:8px;grid-template-columns:1fr 180px 110px 130px;align-items:center;gap:10px;padding:10px;display:grid}.user-list span{display:grid}.user-list small{color:#6b7d74}.user-list label{align-items:center;gap:5px;display:flex}.user-list label input{width:auto}@media (width<=800px){.users-panel form,.user-list>div{grid-template-columns:1fr}}.warehouse-page header p{color:#68776f;margin:4px 0}.warehouse-summary{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px;display:grid}.warehouse-summary article{background:#fff;border:1px solid #dbe5e0;border-radius:13px;padding:18px 20px}.warehouse-summary article:first-child{border-left:5px solid #d59632}.warehouse-summary article:nth-child(2){border-left:5px solid #3184b7}.warehouse-summary article:nth-child(3){border-left:5px solid #34875c}.warehouse-summary span,.warehouse-summary small{color:#66756e;display:block}.warehouse-summary strong{margin:7px 0;font-size:25px;display:block}.warehouse-search{margin-bottom:16px}.warehouse-search input{max-width:520px}.warehouse-notice{color:#215e48;background:#e5f3ec;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:12px 15px;display:flex}.warehouse-notice button{color:#215e48;background:0 0;padding:2px 7px;font-size:20px}.zone-title{align-items:center;gap:12px;margin-bottom:15px;display:flex}.zone-title>span{background:#edf2ef;border-radius:50%;flex:0 0 36px;place-items:center;height:36px;font-weight:800;display:grid}.zone-title.pending>span{color:#96600e;background:#fff0d8}.zone-title.stock>span{color:#216f9d;background:#e2f1fa}.zone-title.production>span{color:#236d49;background:#dff2e7}.zone-title h2{margin:0}.zone-title p{color:#6a7771;margin:3px 0 0}.warehouse-list{gap:8px;display:grid}.warehouse-list>article{border:1px solid #e2e9e5;border-radius:10px;grid-template-columns:minmax(280px,1fr) 130px 140px auto;align-items:center;gap:12px;padding:12px;display:grid}.warehouse-list article>div:first-child{gap:4px;display:grid}.warehouse-list small,.production-table small{letter-spacing:0;color:#728078}.warehouse-list em,.production-table em{color:#196d50;font-style:normal;font-weight:750}.issue-controls{grid-template-columns:minmax(170px,1fr) 95px auto;gap:7px;display:grid!important}.production-table{overflow:auto}.production-head,.production-table>article{border-bottom:1px solid #e6ece9;grid-template-columns:minmax(250px,1.3fr) minmax(190px,1fr) 120px 130px 100px;align-items:center;gap:10px;min-width:900px;padding:11px 12px;display:grid}.production-head{color:#6c7972;text-transform:uppercase;background:#f5f8f6;font-size:12px;font-weight:700}.production-table article>div,.production-table article>span{gap:3px;display:grid}.production-table time{color:#5e6e66}@media (width<=1050px){.warehouse-list>article{grid-template-columns:1fr 110px 120px}.issue-controls{grid-column:1/-1}.warehouse-summary{grid-template-columns:1fr}}@media (width<=650px){.warehouse-list>article{grid-template-columns:1fr 1fr}.warehouse-list>article>div:first-child,.warehouse-list>article>button{grid-column:1/-1}.issue-controls{grid-template-columns:1fr}.warehouse-search input{max-width:none}}
