@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap');

:root{--bg:#f4f6f4;--ink:#1a3027;--green:#1f6249;--line:#dfe7e1;--muted:#708079;--white:#fff;--soft:#e8f3eb}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);font-family:Inter,system-ui,Arial,sans-serif;color:var(--ink)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.app{display:flex;min-height:100vh}
aside{width:238px;flex:none;background:#163c2f;color:white;padding:24px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:10px;padding:0 9px 24px;border-bottom:1px solid #ffffff25}
.brand img{width:48px;height:48px;object-fit:contain}
.brand b{font-size:14px}
.brand small{display:block;color:#b7d2c3;font-size:11px}
.nav{margin-top:23px;display:grid;gap:6px}
.nav button,.nav a{display:block;width:100%;background:none;border:0;color:#d4e4db;text-align:left;padding:13px;border-radius:9px;text-decoration:none;font-size:14px}
.nav button.active,.nav button:hover,.nav a.active,.nav a:hover{background:#ffffff1e;color:white}
.foot{margin-top:auto;padding:16px 12px 0;font-size:11px;color:#bdd3c5;line-height:1.8}
main{flex:1;min-width:0;padding:30px 36px 60px;max-width:1500px}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}
h1{font-size:28px;margin:5px 0}
h2{font-size:20px;margin:0 0 15px}
h3{font-size:16px;margin:0 0 13px}
.muted{color:var(--muted)}
.small{font-size:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:var(--green);color:white;padding:11px 16px;border-radius:9px;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.2}
.btn.secondary{background:#e8eee9;color:#224b37}
.btn.danger{background:#fae8e6;color:#a53636}
.btn:disabled,.btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.card,.panel{background:white;border:1px solid var(--line);border-radius:15px;padding:21px;box-shadow:0 3px 13px #123d2406}
.card strong{font-size:27px;display:block;margin-top:10px}
.panel{margin-top:20px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13px}
th{text-align:left;color:var(--muted);font-weight:600;padding:13px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:14px 10px;border-bottom:1px solid #eef1ef;vertical-align:middle}
tr:last-child td{border-bottom:0}
td button,td a.table-action{border:0;background:none;color:var(--green);font-weight:700;cursor:pointer;text-decoration:none}
.tag{display:inline-block;border-radius:30px;padding:5px 9px;font-size:11px;font-weight:700;background:#e8f3eb;color:#246446}
.tag.gray{background:#edf0ee;color:#62746a}
.tag.orange{background:#fff1d7;color:#8a5b0e}
.tag.red{background:#ffebeb;color:#aa3434}
.field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:650;color:#44594d}
.field input,.field select,.field textarea,.search{width:100%;padding:11px 12px;border:1px solid #d8e3da;border-radius:9px;background:white;color:#203a2c;outline-color:#80b397}
.field textarea{min-height:80px;resize:vertical}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.full{grid-column:1/-1}
.wide{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}
.note{padding:13px 15px;background:#f0f6f1;border-radius:9px;color:#4c6656;font-size:12px;line-height:1.7}
.warning{background:#fff6e5;color:#795719}
.danger-note{background:#ffebeb;color:#9b2c2c}
.line{border-top:1px solid var(--line);margin:16px 0}
.quote{background:#fff;border:1px solid var(--line);border-radius:12px;padding:25px;font-size:13px;line-height:1.6}
.quote .logo{display:flex;gap:12px;align-items:center}
.quote .logo img{width:60px;height:60px;object-fit:contain}
.quote h2{font-size:19px;margin:0}
.quote table td,.quote table th{padding:8px}
.quote .total{font-size:20px;font-weight:800;color:var(--green)}
.modalbg{position:fixed;inset:0;background:#071c149c;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:white;width:min(750px,100%);max-height:92vh;overflow:auto;border-radius:16px;padding:24px}
.modal.wide-modal{width:min(1000px,100%)}
.modalhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.x{border:0;background:#edf1ee;border-radius:8px;padding:8px 12px}
.service{display:grid;grid-template-columns:1fr 120px 38px;gap:8px;margin:8px 0}
.service input{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px}
.service button{border:0;background:#fbe9e8;color:#a33;border-radius:8px}
.servicehead{font-size:12px;color:var(--muted)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.empty{padding:30px;text-align:center;color:var(--muted)}
.pill{font-size:11px;padding:7px 11px;border-radius:99px;background:#e5f0e9;color:#286048;font-weight:600}
.pill.locked{background:#ffebeb;color:#aa3434}
.stickyactions{position:sticky;bottom:0;background:white;border-top:1px solid var(--line);padding-top:12px}
.link{color:var(--green);text-decoration:underline;cursor:pointer}
.checkline{display:flex;align-items:center;gap:8px;font-size:13px;flex-direction:row}
.checkline input{width:auto}
.datebox{font-size:13px;border:1px solid var(--line);padding:12px;border-radius:9px;margin-bottom:8px}
.mobilebar{display:none}
.hidden{display:none!important}
.scopebox{background:#f5f8f3;border:1px solid #dbe6d8;border-radius:12px;padding:16px 18px;margin:14px 0;font-size:12px;color:#273b2c}
.scopebox li{margin-bottom:5px}
.scopebox h3{color:#294e31}
@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}.wide{grid-template-columns:1fr}main{padding:25px}}
@media(max-width:720px){.app{display:block}aside{position:static;width:100%;height:auto;padding:12px}.brand{padding:5px 8px 12px}.nav{display:flex;overflow-x:auto;margin:8px 0 0}.nav button,.nav a{white-space:nowrap;padding:9px;width:auto}.foot{display:none}main{padding:18px}.cards{grid-template-columns:repeat(2,1fr);gap:9px}.card{padding:14px}.card strong{font-size:19px}.grid,.split{grid-template-columns:1fr}.full{grid-column:auto}.modal{padding:16px}.service{grid-template-columns:1fr 85px 32px}}
@media print{aside,.top,.no-print,.modalhead,.stickyactions{display:none!important}main{padding:0}.modalbg{position:static;background:white;padding:0}.modal{max-height:none;overflow:visible;width:100%;padding:0;border:0}.quote{border:0}.app{display:block}body{background:white}.scopebox{break-inside:avoid;background:#fff}}
