@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{--navy:#102235;--teal:#0a8c9a;--paper:#f4f7f9;--border:#dce5e9;--text:#1b2e41;--muted:#647887;--cyan:#66d4de;--cyan-soft:#dff8fb;--danger:#c74848;--success:#097d61}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--text);font:15px/1.48 'DM Sans',system-ui,Arial,sans-serif}
button,.filebutton{cursor:pointer;font-family:inherit}
img{max-width:100%}
[hidden]{display:none!important}

.auth-shell{min-height:100vh;background:radial-gradient(circle at top right,#0aa0ad2a,transparent 26%),linear-gradient(135deg,#091522 0%,#102235 38%,#0c4f61 100%);display:grid;place-items:center;padding:28px}
.auth-wrap{width:min(1180px,100%);display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:stretch}
.auth-hero,.auth-panel{min-width:0}
.auth-brand-card,.login-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px);border-radius:24px;box-shadow:0 20px 50px rgba(3,11,20,.35)}
.auth-brand-card{height:100%;padding:34px;color:#fff;position:relative;overflow:hidden}
.auth-brand-card::before,.auth-brand-card::after{content:'';position:absolute;border-radius:50%;filter:blur(8px);opacity:.4}
.auth-brand-card::before{width:220px;height:220px;right:-40px;top:-60px;background:radial-gradient(circle,var(--cyan),transparent 70%)}
.auth-brand-card::after{width:180px;height:180px;left:-50px;bottom:-70px;background:radial-gradient(circle,#10b8c7,transparent 70%)}
.auth-logo{width:280px;max-width:100%;margin-bottom:18px;position:relative;z-index:1}
.eyebrow{color:var(--teal)!important;letter-spacing:.14em;font-size:11px;font-weight:800!important;text-transform:uppercase}
.auth-brand-card .eyebrow{color:#92ebf1!important}
.auth-brand-card h1{font-size:42px;line-height:1.04;margin:8px 0 12px;position:relative;z-index:1}
.auth-copy{max-width:600px;color:#d6ebf0;position:relative;z-index:1}
.auth-points{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px;position:relative;z-index:1}
.auth-points div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:14px;border-radius:16px}
.auth-points b{display:block;font-size:16px;margin-bottom:4px}
.auth-points span{font-size:12px;color:#d0e2ea}
.auth-panel{display:grid}
.login-card{background:#fff;color:var(--text);padding:28px;display:flex;flex-direction:column;justify-content:center}
.mini-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.mini-brand img{width:52px;height:52px;object-fit:contain}
.mini-brand strong{font-size:22px;letter-spacing:.05em}.mini-brand em{font-style:normal;color:var(--teal)}.mini-brand small{display:block;color:var(--muted)}
.login-card h2{font-size:28px;margin:6px 0 6px}
.login-form{display:grid;gap:14px;margin-top:10px}
.login-tip{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--cyan-soft);border:1px solid #b8e8ee;display:grid;gap:3px}
.login-tip span{font-weight:800;color:var(--navy)}
.login-tip small{color:var(--muted)}
.login-message{min-height:20px;margin:10px 0 0;color:var(--danger);font-size:13px;font-weight:700}

.top{background:var(--navy);color:white;min-height:78px;display:flex;align-items:center;justify-content:space-between;padding:12px max(24px,calc((100vw - 1370px)/2));gap:15px;flex-wrap:wrap}
.brand{display:flex;gap:12px;align-items:center}.brand strong{font-size:20px;letter-spacing:.07em}.brand em{color:var(--cyan);font-style:normal}.brand small{display:block;font-size:11px;color:#afc2cd}.app-symbol{width:46px;height:46px;object-fit:contain}
.top nav{display:flex;gap:6px;flex-wrap:wrap}.tab{color:#b3cbd4;background:transparent;border:0;cursor:pointer;padding:10px 15px;border-radius:8px;font-weight:700}.tab.active,.tab:hover{background:#244155;color:white}
.session-box{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(255,255,255,.06)}
.session-box small{display:block;color:#abc1cb;text-transform:capitalize}
main{max-width:1370px;margin:auto;padding:30px 24px 80px}.titleline{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:26px}.titleline h1{font-size:31px;margin:0}.titleline p{margin:3px 0;color:var(--muted)}
.columns{display:grid;grid-template-columns:minmax(0,1fr) 328px;gap:20px}.maincol{min-width:0}.panel{background:#fff;border:1px solid var(--border);border-radius:15px;padding:23px;margin-bottom:20px;box-shadow:0 3px 12px #183c5210}.panel h2{font-size:18px;margin:0 0 17px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:block;font-size:12px;font-weight:750;color:#486073}label span{color:#da4343}.blocklabel{margin-top:15px}
input,select,textarea{width:100%;margin-top:5px;border:1px solid #ccd9e1;background:white;border-radius:8px;color:#172d42;padding:11px 12px;font:inherit;font-size:14px;outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#0b96a5;box-shadow:0 0 0 3px #0b96a51c}
.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px}.sectionhead h2{margin-bottom:3px}.sectionhead p,.tip{font-size:12px;color:var(--muted);margin-top:0}.searchwrap{max-width:260px;flex:1}
.categorytabs{display:flex;gap:7px;overflow:auto;padding:8px 0 17px}.chip{border:1px solid #cbdbe2;border-radius:99px;background:#fff;padding:7px 12px;white-space:nowrap;font-size:12px;font-weight:700;color:#526778;cursor:pointer}.chip.active{background:#087f8c;color:white;border-color:#087f8c}
.service{border:1px solid #e3ebee;border-radius:10px;padding:13px;margin-bottom:9px}.service.selected{border-color:#37a2ac;background:#f2fbfc}.service-top{display:flex;gap:11px;align-items:flex-start}.service input[type=checkbox]{width:18px;height:18px;margin:2px 0;accent-color:#058b9a;flex:none}.service-title{font-size:14px;font-weight:800;cursor:pointer}.service-desc{font-size:12px;color:var(--muted);margin:3px 0}.service-price{font-size:13px;font-weight:800;color:#09838f;white-space:nowrap;margin-left:auto}.service-fields{display:grid;grid-template-columns:110px 170px 1fr;gap:10px;margin:13px 0 0 28px}.service-fields label{font-size:11px}.service-fields input{padding:8px}
.sticky{position:sticky;top:12px}.selectedlist{max-height:250px;overflow:auto}.selected-item{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0f2;padding:9px 0;font-size:12px}.selected-item b{white-space:nowrap}.muted{color:var(--muted)}
.totals{margin-top:17px;border-top:1px solid var(--border);padding-top:7px}.totals div{display:flex;justify-content:space-between;margin:9px 0;font-size:13px}.totals .grand{font-size:16px;border-top:1px solid var(--border);padding-top:16px;margin-top:14px}.grand b{color:#008c99;font-size:19px}.actions{display:grid;gap:9px;margin-top:20px}
button.primary,button.secondary,button.ghost,.filebutton{border-radius:9px;padding:11px 16px;font-weight:800;border:1px solid transparent}button.primary{background:#078d9c;color:white}button.secondary,.filebutton{background:#e9f6f7;color:#04727f;border-color:#b9d9dd}button.ghost{background:white;color:#294960;border-color:#bdccd5}button:hover,.filebutton:hover{filter:brightness(.95)}.compact{padding:10px 13px!important}
.tools,.buttonrow{display:flex;gap:10px;align-items:center}.tools input{max-width:450px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:660px}th{text-align:left;background:#102235;color:white;font-size:12px;padding:13px}td{padding:9px 12px;border-bottom:1px solid #e2e9ec}td input{width:145px;padding:8px}.ratecat{color:#087f8c;font-size:11px}.iconbutton{background:#fff;border:1px solid #dbe4e9;border-radius:7px;padding:7px 10px}
.historyrow,.userrow{display:flex;align-items:center;gap:15px;justify-content:space-between;border-bottom:1px solid #e7ecef;padding:15px 2px}.historyrow p,.userrow p{margin:4px 0;color:#678;font-size:12px}.historybuttons,.userbuttons{display:flex;gap:7px;flex-wrap:wrap}
.userbadge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;background:#edf7f8;color:#0b7f8d;text-transform:uppercase;margin-left:6px}.userbadge.viewer{background:#eef2f5;color:#526778}.userbadge.editor{background:#eef8f4;color:#146c55}.userbadge.admin{background:#e6f5f7;color:#006a76}.status-pill{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.status-pill.active{background:#e8f7f0;color:var(--success)}.status-pill.inactive{background:#fdecec;color:var(--danger)}
.users-list .empty{padding:8px 0;color:var(--muted)}
.toast{position:fixed;bottom:18px;right:18px;color:white;background:#173b48;border-radius:9px;padding:11px 18px;display:none;z-index:50;max-width:340px}
.private-tag{font-size:10px;color:#087f8c;font-weight:600;display:inline-block;margin-left:4px}.condition-row{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#f7fafb;padding:8px 12px;margin:6px 0;border:1px solid #e2ecef;border-radius:8px}.condition-row input{width:15px;margin:0;accent-color:#087f8c}.condition-copy{font-size:12px;flex:1;color:#385364}
#printArea{display:none}.filebutton{display:inline-block;font-size:13px}
dialog{border:1px solid #cadde2;border-radius:16px;max-width:560px;width:calc(100vw - 28px);max-height:90vh;overflow:auto;padding:26px;box-shadow:0 15px 70px #1235}dialog::backdrop{background:#1022359c}dialog label{margin-top:12px}dialog h2{margin:0 0 14px}
.readonly-banner{margin-bottom:16px;padding:12px 14px;border-radius:12px;background:#fff7df;border:1px solid #f1de95;color:#745c00;font-size:13px;font-weight:700}
.locked-note{font-size:12px;color:var(--muted)}

@media(max-width:980px){.auth-wrap{grid-template-columns:1fr}.auth-points{grid-template-columns:1fr}.auth-brand-card h1{font-size:34px}}
@media(max-width:850px){.top{flex-direction:column;align-items:stretch;padding:13px 17px}.top nav{justify-content:flex-start;overflow-x:auto}.tab{flex:none;padding:9px 10px;font-size:12px}main{padding:20px 13px}.columns{grid-template-columns:1fr}.sticky{position:static}.sidebar{order:2}.panel{padding:16px}.titleline h1{font-size:25px}.sectionhead{flex-direction:column;align-items:stretch}.searchwrap{max-width:none}.service-price{font-size:12px}.service-fields{grid-template-columns:90px minmax(130px,1fr);margin-left:0}.service-fields label:last-child{grid-column:1/-1}.titleline{align-items:flex-start;flex-direction:column}.formgrid{grid-template-columns:1fr}.tools,.historyrow,.userrow{flex-wrap:wrap}.historybuttons,.userbuttons{width:100%}.buttonrow{flex-wrap:wrap}.session-box{width:100%;justify-content:space-between}}

@page{size:A4;margin:15mm}
@media print{body{background:white!important;font:11px/1.5 Arial,sans-serif!important}body>#auth-shell,body>#app-shell,body>.toast{display:none!important}#printArea{display:block!important;color:#1e3343}.pdf-header{border-bottom:4px solid #087f8c;display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;margin-bottom:20px}.pdf-companyline{font-size:10px;margin-bottom:14px;color:#527182}.pdf-brand-image{width:210px;max-height:55px;object-fit:contain;object-position:left center}.pdf-head-right{text-align:right}.pdf-tag{font-size:10px;text-transform:uppercase;color:#5b6c77}.pdf-meta{width:100%;border-collapse:collapse;margin-bottom:19px;table-layout:fixed}.pdf-meta td{border:0;padding:4px 7px;vertical-align:top;overflow-wrap:anywhere}.pdf-heading{color:#087f8c;font-size:13px;margin-top:18px}.pdf-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:0!important}.pdf-table th{background:#102235!important;color:white!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:10px}.pdf-table td{border-bottom:1px solid #dbe4e9;padding:9px 6px;font-size:10px;vertical-align:top;overflow-wrap:anywhere}.pdf-desc{color:#647887}.pdf-totals{width:43%;margin:18px 0 0 auto}.pdf-totals div{display:flex;justify-content:space-between;border-bottom:1px solid #e1e5e9;padding:5px 2px}.pdf-totals .final{font-weight:800;font-size:15px;color:#007f8b;border-top:2px solid #102235}.pdf-notes{margin-top:22px;font-size:10px;white-space:normal}.pdf-notes ol{padding-left:19px;margin:7px 0}.pdf-notes li{margin:5px 0;break-inside:avoid}.pdf-signature{display:flex!important;align-items:center;justify-content:flex-end;gap:22px;margin-top:28px;break-inside:avoid}.pdf-signature img{width:110px;height:110px;object-fit:contain}.pdf-sign-text{text-align:center;min-width:160px;border-top:1px solid #9cb0b7;padding-top:5px;font-size:10px}.pdf-foot{border-top:1px solid #d7e0e5;margin-top:35px;padding-top:12px;font-size:9px;color:#536879}}
