:root { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif; color:#173047; background:#f4f7f9; font-synthesis:none; }
* {box-sizing:border-box} html {min-height:100%;} body {margin:0;min-height:100vh;line-height:1.45} button,input,textarea,select{font:inherit} button{cursor:pointer} button:disabled{cursor:not-allowed;opacity:.48}
:focus-visible{outline:3px solid #4ab8a8;outline-offset:2px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:242px minmax(0,1fr)}
.sidebar{background:#132b40;color:#fff;padding:27px 17px;display:flex;flex-direction:column;gap:28px;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:11px;align-items:center;padding:0 9px}.brand-icon{height:43px;width:43px;border-radius:13px;background:#28485a;display:grid;place-items:center;font-size:24px}.brand h1{font-size:19px;letter-spacing:-.03em;margin:0;font-weight:760}.brand small{font-size:11px;color:#a4c6d2;letter-spacing:.09em;text-transform:uppercase}
.nav{display:flex;flex-direction:column;gap:5px}.nav-btn{width:100%;background:transparent;color:#c6d6de;border:0;border-radius:11px;text-align:left;padding:12px 15px;display:flex;gap:11px;align-items:center;font-weight:600}.nav-btn:hover{background:#213f52;color:#fff}.nav-btn.active{color:white;background:#2b5360}.nav-icon{width:20px;text-align:center;font-size:18px}.sidebar-foot{margin-top:auto;color:#9bb7c3;font-size:12px;padding:0 10px}.sidebar-foot strong{color:#eff8fa}
.content{min-width:0;max-width:1340px;width:100%;margin:0 auto;padding:34px clamp(18px,3.3vw,50px) 70px}
.page-head{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:25px}.eyebrow{font-size:11px;color:#438479;font-weight:800;text-transform:uppercase;letter-spacing:.11em}.page-head h2{font-size:clamp(25px,3vw,35px);line-height:1.15;letter-spacing:-.045em;margin:6px 0 5px}.subtitle{color:#6a7c89;font-size:14px;margin:0}.actions{display:flex;flex-wrap:wrap;gap:9px}
.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:10px;min-height:40px;padding:10px 15px;font-size:13px;font-weight:750;background:#173b51;color:#fff;box-shadow:none;white-space:nowrap;text-decoration:none}.btn:hover{filter:brightness(1.08)}.btn-primary{background:#147f77}.btn-secondary{background:white;color:#234152;border-color:#d8e3e8}.btn-danger{background:#fff4f4;color:#a93c38;border-color:#f3d0cd}.btn-ghost{background:transparent;color:#527184}.btn-sm{font-size:12px;min-height:32px;padding:6px 10px}.btn-block{width:100%}
.hero{display:grid;grid-template-columns:1.45fr .75fr;gap:16px;background:linear-gradient(113deg,#173348,#1c5b64);color:white;border-radius:19px;padding:29px 31px;margin-bottom:22px;overflow:hidden}.hero h3{font-size:27px;letter-spacing:-.04em;line-height:1.15;margin:9px 0}.hero p{color:#d4e7eb;max-width:490px;font-size:14px}.hero .btn{background:#f5fefa;color:#155351}.hero-art{display:flex;align-items:center;justify-content:center;font-size:90px;opacity:.32;transform:rotate(-10deg)}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{background:white;border:1px solid #e3ebef;border-radius:15px;padding:21px;box-shadow:0 2px 14px rgba(29,59,79,.025);min-width:0}.card h3{font-size:16px;letter-spacing:-.015em;margin:0 0 13px}.card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px}.metric{font-size:28px;font-weight:790;letter-spacing:-.045em;margin:4px 0;color:#173448}.metric-label{font-size:12px;color:#627987}.muted{color:#6e818b}.small{font-size:12px}.divider{border-top:1px solid #e5edef;margin:19px 0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:26px 0 12px}.section-head h3{margin:0;font-size:17px;letter-spacing:-.02em}
.list{display:grid;gap:10px}.list-item{background:white;border:1px solid #e2eaee;border-radius:13px;padding:17px;display:flex;align-items:center;justify-content:space-between;gap:15px}.list-text{min-width:0;flex:1}.list-text h4{margin:3px 0 4px;font-size:15px;overflow-wrap:anywhere}.list-meta{font-size:12px;color:#798b96}.tag{display:inline-flex;background:#e5f5f0;border-radius:7px;color:#18796f;padding:3px 7px;font-size:11px;font-weight:750}.tag.gray{background:#eef2f5;color:#657b86}.price{font-weight:800;color:#133c4a;white-space:nowrap}.empty{padding:43px 16px;text-align:center;background:#fff;border:1px dashed #d0dfe5;border-radius:15px}.empty-icon{font-size:40px;opacity:.65}.empty h3{margin:9px 0 6px}.empty p{color:#758790;margin:0 auto 18px;max-width:330px;font-size:14px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-size:12px;font-weight:720;color:#425f6b}.field input,.field textarea,.field select,.search{width:100%;background:white;border:1px solid #cfdee5;border-radius:9px;padding:10px 12px;color:#183847;min-height:40px;outline:none}.field input:focus,.field textarea:focus,.field select:focus,.search:focus{border-color:#168c81;box-shadow:0 0 0 3px #d6f1ed}.field textarea{min-height:82px;resize:vertical}.field .hint{font-size:11px;color:#7f929c}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.span2{grid-column:span 2}.span4{grid-column:span 4}
.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}.editor-layout > *{min-width:0}.sticky-summary{position:sticky;top:24px}.summary-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;font-size:13px}.summary-row span:first-child{color:#647e8b}.summary-total{font-size:27px;color:#0b706c;font-weight:820;letter-spacing:-.045em;word-wrap:anywhere}.notice{background:#eaf5f3;color:#365b61;border:1px solid #d5e8e5;border-radius:11px;padding:12px 14px;font-size:12px}.notice.warn{background:#fff7e7;border-color:#f0e2c6;color:#85602b}
.group{border:1px solid #e2ebef;border-radius:13px;overflow:hidden;margin:14px 0;background:white}.group-head{padding:13px 16px;background:#f8fafb;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #e7eef0}.group-head strong{font-size:14px}.group-head small{color:#778b94;font-size:11px}
.line-card{padding:14px 16px;border-top:1px solid #edf1f3}.line-card:first-of-type{border-top:0}.line-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}.line-no{font-size:11px;font-weight:750;color:#6a8791}.line-fields{display:grid;grid-template-columns:minmax(130px,2.3fr) minmax(65px,.7fr) minmax(90px,1.15fr) minmax(80px,1fr) minmax(100px,1fr);gap:9px}.line-fields .field label{font-size:10px}.line-fields .field input,.line-fields .field select{padding:8px 9px;min-height:37px;font-size:12px}.line-extra{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.line-amount{font-weight:800;color:#164958;font-size:14px}.group-add{padding:10px 14px;border-top:1px solid #e5edef;display:flex;gap:8px;flex-wrap:wrap}.readonly{background:#eff5f7}
.search-bar{display:flex;gap:10px;margin:17px 0 14px}.search-bar .search{max-width:450px}.filterbar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.filter{padding:7px 11px;font-size:12px;border:1px solid #d6e3e8;border-radius:9px;background:white;color:#5d7580}.filter.selected{background:#176e68;border-color:#176e68;color:white}
.table-wrap{overflow:auto;border:1px solid #e5edef;border-radius:12px}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#f6f9fa;text-align:left;font-size:11px;color:#5b7481;padding:12px;white-space:nowrap}td{padding:12px;border-top:1px solid #e6eef0;vertical-align:middle}td.num,th.num{text-align:right;white-space:nowrap}td .field input{min-width:85px}.table-actions{display:flex;gap:5px;justify-content:flex-end}.muted-row{font-size:11px;color:#7c919b}
.quote-item{display:grid;grid-template-columns:minmax(0,2fr) 110px 110px 110px 42px;align-items:end;gap:8px;padding:11px 0;border-top:1px solid #e4ecf0}.quote-item:first-child{border-top:0}.quote-item .field input{padding:8px;font-size:12px}.quote-item .price{align-self:center;font-size:13px;text-align:right}.quote-item .btn{align-self:center}
.modal-wrap{position:fixed;inset:0;background:rgba(9,30,45,.54);display:grid;place-items:center;z-index:10;padding:20px}.modal{background:white;border-radius:16px;width:min(560px,100%);max-height:85vh;overflow:auto;padding:24px;box-shadow:0 25px 75px #0b23344d}.modal h3{margin:0 0 8px;font-size:19px}.modal p{color:#6c8290;font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.picker-item{padding:12px 4px;border-bottom:1px solid #e6edf0;display:flex;align-items:center;justify-content:space-between;gap:10px}.picker-item strong{font-size:13px}.picker-item p{font-size:11px;margin:2px 0}
.toast{position:fixed;bottom:25px;right:25px;padding:12px 17px;background:#193e4d;color:white;border-radius:11px;box-shadow:0 12px 32px #1e33443d;opacity:0;transform:translateY(15px);transition:.2s;pointer-events:none;z-index:50;font-size:13px}.toast.show{opacity:1;transform:translateY(0)}
.mobile-nav{display:none}
#print-root{display:none}
@media(max-width:1100px){.editor-layout{grid-template-columns:minmax(0,1fr)}.sticky-summary{position:static}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.line-fields{grid-template-columns:minmax(0,2fr) 85px 120px 105px 110px}}
@media(max-width:790px){.app-shell{display:block}.sidebar{display:none}.mobile-nav{position:fixed;display:flex;bottom:0;left:0;right:0;padding:8px max(7px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));background:white;border-top:1px solid #e2ebed;justify-content:space-between;z-index:5;box-shadow:0 -3px 24px #13364914}.mobile-nav button{min-width:0;flex:1;padding:6px 3px;border:none;background:transparent;color:#728693;font-size:10px;display:flex;align-items:center;flex-direction:column;gap:3px;font-weight:650}.mobile-nav button span{font-size:19px}.mobile-nav button.active{color:#107d73}.content{padding:22px 16px calc(95px + env(safe-area-inset-bottom))}.page-head{align-items:flex-start;flex-direction:column}.page-head h2{font-size:27px}.hero{grid-template-columns:1fr;padding:22px}.hero-art{display:none}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.span4{grid-column:span 2}.line-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.line-fields .field:first-child{grid-column:span 2}.quote-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px}.quote-item>.field:first-child{grid-column:span 3}.quote-item .price{grid-column:2;text-align:left}.quote-item>.btn{grid-column:3;grid-row:2}.list-item{align-items:flex-start;flex-wrap:wrap}.list-item>.actions{width:100%}.toast{left:13px;bottom:calc(78px + env(safe-area-inset-bottom));right:13px;text-align:center}}
@media(max-width:450px){.grid-3{grid-template-columns:1fr 1fr}.grid-3 .card:last-child{grid-column:span 2}.grid-2{grid-template-columns:1fr}.metric{font-size:25px}.card{padding:16px}.page-head .actions{width:100%}.page-head .actions>.btn{flex:1}.line-extra{flex-wrap:wrap}.price{white-space:normal}.table-wrap{margin:0 -2px}.form-grid{gap:12px}}
@media print{ @page{size:A4;margin:14mm}body{background:white;color:black;font-family:Arial,sans-serif}.app-shell,#toast,.mobile-nav,.modal-wrap{display:none!important}#print-root{display:block!important;font-size:11px;color:#111}#print-root h1{font-size:22px;margin:0 0 5px}#print-root h2{font-size:15px;margin:22px 0 9px}#print-root .print-head{display:flex;justify-content:space-between;gap:18px;border-bottom:3px solid #214d5b;padding-bottom:14px;margin-bottom:14px}#print-root .print-muted{color:#666}#print-root .print-table{width:100%;border-collapse:collapse;font-size:10px}#print-root .print-table th,#print-root .print-table td{border:1px solid #bbb;padding:7px;vertical-align:top}#print-root .print-table th{background:#edf2f3}#print-root .right{text-align:right}#print-root .print-total{font-size:15px;font-weight:bold;text-align:right;margin-top:18px}#print-root .print-keep{break-inside:avoid} }
