:root{color:#102238;font-synthesis:none;text-rendering:optimizelegibility;--navy:#071a2d;--ink:#102238;--cyan:#36b6f4;--blue:#2d8cff;--orange:#ffaa1a;--purple:#8b43f6;--success:#147b5b;--danger:#b43333;--canvas:#f4f7fb;--border:#d7e2ee;--muted:#607187;background:#f4f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--canvas);min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a,button,input,textarea,select{outline-offset:3px}:focus-visible{outline:3px solid var(--blue);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;font-size:clamp(2rem,5vw,3.7rem);line-height:1.02}h2{letter-spacing:-.03em;font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.08}h3{line-height:1.2}.eyebrow{color:var(--blue);letter-spacing:.13em;text-transform:uppercase;font-size:.75rem;font-weight:800;display:block}.muted{color:var(--muted)}.brand-mark{background:var(--navy);color:#fff;border:2px solid var(--cyan);place-items:center;width:58px;height:58px;display:grid;position:relative}.brand-mark:after{content:"";background:var(--orange);width:12px;height:12px;position:absolute;bottom:-6px;right:-6px}.brand-mark span{letter-spacing:-.08em;font-weight:900}.brand-mark.compact{flex:0 0 40px;width:40px;height:40px}.brand-mark.compact:after{width:8px;height:8px;bottom:-4px;right:-4px}.button-primary,.button-secondary,.button-quiet,.export-bar button,.update-notice button{border:1px solid #0000;min-height:44px;padding:.7rem 1rem;font-weight:750;transition:background .15s,color .15s,border-color .15s,transform .15s}.button-primary{background:var(--navy);color:#fff;border-color:var(--navy)}.button-primary:hover:not(:disabled){background:#0d2d4a;transform:translateY(-1px)}.button-secondary{color:var(--ink);border-color:var(--border);background:#fff}.button-secondary:hover:not(:disabled){border-color:var(--blue);color:#1666c9}.button-quiet{color:var(--muted);background:0 0;border-color:#0000}.button-quiet:hover:not(:disabled){color:var(--ink);background:#eaf0f6}.button-wide{width:100%}.text-button{min-height:44px;color:var(--blue);background:0 0;border:0;padding:0 .5rem;font-weight:700}.text-button.danger{color:var(--danger)}.auth-shell{background:var(--navy);place-items:center;min-height:100vh;padding:2rem;display:grid;position:relative;overflow:hidden}.auth-shell:before{content:"";background-image:linear-gradient(#36b6f40e 1px,#0000 1px),linear-gradient(90deg,#36b6f40e 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 80%);mask-image:linear-gradient(#000,#0000 80%)}.auth-art{pointer-events:none;position:absolute;inset:0}.orb{border:1px solid;display:block;position:absolute;transform:rotate(45deg)}.orb-cyan{width:380px;height:380px;color:var(--cyan);opacity:.23;top:9%;left:-180px}.orb-orange{width:180px;height:180px;color:var(--orange);opacity:.3;top:-70px;right:8%}.orb-purple{width:240px;height:240px;color:var(--purple);opacity:.2;bottom:5%;right:-120px}.auth-card{border-top:5px solid var(--cyan);background:#fff;width:min(100%,480px);padding:clamp(2rem,6vw,3.5rem);position:relative;box-shadow:0 30px 100px #00000057}.auth-card .brand-mark{margin-bottom:2.2rem}.auth-card h1{margin:.65rem 0 1.1rem;font-size:clamp(2rem,7vw,3rem)}.auth-card>p{color:var(--muted);margin-bottom:2rem;line-height:1.65}.auth-card form{gap:.65rem;display:grid}.auth-card form label{margin-top:.35rem;font-weight:750}.auth-card form input{border:1px solid var(--border);background:#fbfdff;width:100%;min-height:50px;padding:.75rem}.auth-card form input:focus{border-color:var(--blue)}.auth-card form button{margin-top:.75rem}.auth-card>small{color:var(--muted);margin-top:1.5rem;line-height:1.5;display:block}.form-error{color:var(--danger);margin:.35rem 0;font-weight:650}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--border);z-index:20;background:#fff;grid-template-columns:260px 1fr auto;align-items:center;height:72px;padding:0 clamp(1rem,3vw,2.5rem);display:grid;position:sticky;top:0}.app-brand{color:var(--ink);align-items:center;gap:.9rem;text-decoration:none;display:flex}.app-brand>span:last-child{display:grid}.app-brand strong{font-size:.98rem}.app-brand small{color:var(--muted);font-size:.72rem}.app-header nav{justify-self:center;height:100%;display:flex}.app-header nav button{min-width:105px;height:100%;color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;font-weight:700}.app-header nav button:hover,.app-header nav button.active{color:var(--ink);border-bottom-color:var(--cyan)}.header-actions{align-items:center;gap:.5rem;display:flex}.network-state{border:1px solid var(--border);padding:.35rem .55rem;font-size:.75rem;font-weight:750}.network-state:before{content:"";border-radius:50%;width:7px;height:7px;margin-right:.4rem;display:inline-block}.network-state.online:before{background:var(--success)}.network-state.offline:before{background:var(--danger)}.workspace{width:min(1600px,100%);margin:0 auto;padding:clamp(1rem,3vw,2.5rem)}.workspace-panel{border:1px solid var(--border);background:#fff}.panel-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:2rem;padding:clamp(1.5rem,3vw,2.4rem);display:flex}.panel-heading h2{margin:.45rem 0 .6rem}.panel-heading p{color:var(--muted);margin:0;line-height:1.55}.save-state{white-space:nowrap;border:1px solid var(--border);padding:.45rem .65rem;font-size:.78rem;font-weight:750}.state-saving:before,.state-saved:before,.state-save-failed:before,.state-conflict-detected:before,.state-not-saved:before{content:"";border-radius:50%;width:7px;height:7px;margin-right:.45rem;display:inline-block}.state-saving:before,.state-not-saved:before{background:var(--orange)}.state-saved:before{background:var(--success)}.state-save-failed:before,.state-conflict-detected:before{background:var(--danger)}.records-panel{min-height:620px}.record-list{display:grid}.record-row{text-align:left;border:0;border-bottom:1px solid var(--border);width:100%;min-height:76px;color:var(--ink);background:#fff;grid-template-columns:90px minmax(180px,1.4fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(170px,1fr) auto;align-items:center;gap:1rem;padding:1rem 1.5rem;display:grid}.record-row:hover{background:#f8fbfe}.record-row>span:not(.record-status),.record-row time{color:var(--muted);font-size:.88rem}.record-row b{color:var(--blue);font-size:.86rem}.record-status{text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:850}.record-status.draft{color:#805300}.record-status.issued{color:var(--success)}.record-status.archived{color:var(--muted)}.empty-state{text-align:center;align-content:center;place-items:center;min-height:470px;padding:2rem;display:grid}.empty-state>span{color:var(--cyan);opacity:.3;font-size:4rem;font-weight:900}.empty-state h3{margin:0;font-size:1.5rem}.empty-state p{color:var(--muted)}.settings-panel{max-width:980px;margin:0 auto}.settings-panel form{padding:clamp(1.5rem,3vw,2.4rem)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem;display:grid}.form-grid.compact{gap:.8rem}.span-2{grid-column:span 2}.field{align-content:start;gap:.4rem;min-width:0;font-size:.86rem;font-weight:700;display:grid}.field>small{color:var(--muted);font-weight:400;line-height:1.35}.field input,.field textarea,.field select{width:100%;min-height:46px;color:var(--ink);background:#fbfdff;border:1px solid #bdcada;border-radius:0;padding:.72rem .78rem}.field textarea{resize:vertical;line-height:1.5}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);background:#fff}.field input:read-only{color:var(--muted);background:#eef3f8}.form-actions{justify-content:flex-end;padding-top:.75rem;display:flex}.editor-layout{grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:1.4rem;display:grid}.editor-panel{min-width:0}.editor-panel form{display:grid}.editor-panel fieldset{border:0;border-bottom:1px solid var(--border);min-width:0;margin:0;padding:clamp(1.5rem,3vw,2.4rem)}.editor-panel legend{align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:0;font-size:1.1rem;font-weight:850;display:flex}.editor-panel legend span,.section-number{color:var(--cyan);letter-spacing:.06em;font-size:.8rem;font-weight:900}.fieldset-intro{color:var(--muted);margin-top:-.55rem;line-height:1.55}.segmented{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.segmented label{background:#fbfdff;border:1px solid #bdcada;align-items:center;gap:.65rem;min-height:56px;padding:.8rem;display:flex}.segmented label:has(input:checked){border-color:var(--blue);box-shadow:inset 4px 0 var(--cyan);background:#f3f9ff}.segmented input{width:18px;height:18px}.manual-lines{gap:1rem;display:grid}.manual-line{border:1px solid var(--border);background:#f9fbfd;padding:1rem}.manual-line-heading{justify-content:space-between;align-items:center;margin-bottom:.85rem;display:flex}.check-field{align-items:center;gap:.65rem;min-height:44px;font-size:.86rem;font-weight:650;display:flex}.check-field input{width:20px;height:20px}.editor-actions{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);z-index:5;background:#fffffff5;justify-content:flex-end;align-items:center;gap:.7rem;padding:1rem clamp(1.5rem,3vw,2.4rem);display:flex;position:sticky;bottom:0}.summary-column{gap:1rem;display:grid;position:sticky;top:94px}.totals-card,.catalog-card{border:1px solid var(--border);background:#fff;padding:1.3rem}.totals-card{border-top:4px solid var(--cyan)}.totals-card h3{margin:.45rem 0 .3rem;font-size:1.45rem}.totals-card>p{color:var(--muted);font-size:.88rem}.totals-card>small{color:var(--muted);margin-top:1rem;line-height:1.4;display:block}.totals-card dl{margin:1.1rem 0 0}.totals-card dl div{border-top:1px solid var(--border);justify-content:space-between;gap:.75rem;padding:.55rem 0;display:flex}.totals-card dt{color:var(--muted)}.totals-card dd{margin:0;font-weight:750}.totals-card .grand-total{background:var(--orange);color:var(--navy);border:0;margin:.45rem -.55rem 0;padding:.8rem .55rem}.totals-card .grand-total dt{color:var(--navy);font-weight:750}.catalog-card{border-left:4px solid var(--purple);gap:.25rem;display:grid}.catalog-card span,.catalog-card small{color:var(--muted);font-size:.75rem}.offline-banner,.error-banner,.success-banner{border-left:4px solid;padding:1rem 1.25rem;line-height:1.5}.offline-banner{border-color:var(--orange);color:#5e4100;background:#fff7e6}.error-banner{border-color:var(--danger);color:#752020;background:#fff0f0}.success-banner{border-color:var(--success);color:#125a44;background:#edf9f5}.loading-block{min-height:400px;color:var(--muted);place-items:center;display:grid}.review-panel{border:1px solid var(--border);background:#fff;grid-column:1/-1;margin-top:.6rem}.review-panel .panel-heading{align-items:center}.quote-document{width:min(100%,920px);color:var(--ink);border:1px solid var(--border);background:#fff;margin:2rem auto;padding:clamp(1.2rem,5vw,4rem);box-shadow:0 22px 65px #1022381c}.quote-header{border-top:8px solid var(--navy);grid-template-columns:1fr minmax(220px,.44fr);gap:2rem;padding-top:1.8rem;display:grid}.quote-header h2{color:var(--navy);margin:.25rem 0 .8rem;font-size:clamp(2.2rem,8vw,4.4rem)}.quote-header p,.quote-client p{color:var(--muted);margin:.2rem 0;font-size:.9rem}.quote-meta{margin:0}.quote-meta div{border-top:1px solid var(--border);padding:.65rem 0}.quote-meta dt{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:750}.quote-meta dd{margin:.25rem 0 0;font-weight:800}.quote-client{background:var(--canvas);border-left:4px solid var(--cyan);grid-template-columns:42px 1fr;gap:.75rem;margin:2.4rem 0;padding:1.25rem;display:grid}.quote-client h3{margin:.25rem 0 .5rem;font-size:1.45rem}.quote-section-heading{align-items:baseline;gap:.75rem;margin:2rem 0 .75rem;display:flex}.quote-section-heading h3{margin:0;font-size:1.12rem}.responsive-table{overflow-x:auto}.quote-document table{border-collapse:collapse;width:100%;font-size:.88rem}.quote-document th{background:var(--navy);color:#fff;text-align:left;padding:.8rem}.quote-document th:nth-child(2),.quote-document td:nth-child(2){text-align:center;width:60px}.quote-document th:last-child,.quote-document td:last-child{text-align:right;width:150px}.quote-document td{border-bottom:1px solid var(--border);vertical-align:top;padding:.9rem .8rem}.quote-document tbody tr:nth-child(odd){background:var(--canvas)}.quote-document td small{color:var(--muted);margin-top:.25rem;line-height:1.4;display:block}.quote-summary{max-width:520px;margin-left:auto}.quote-summary dl,.quote-terms dl{margin:0}.quote-summary dl div,.quote-terms dl div{border-top:1px solid var(--border);grid-template-columns:minmax(120px,.6fr) 1fr;gap:1rem;padding:.6rem .75rem;display:grid}.quote-summary dt,.quote-terms dt{color:var(--muted)}.quote-summary dd,.quote-terms dd{text-align:right;white-space:pre-wrap;margin:0;font-weight:700}.quote-summary .grand-total{background:var(--orange);color:var(--navy);border:0;padding:1rem .75rem}.quote-summary .grand-total dt{color:var(--navy);font-weight:800}.quote-summary .grand-total dd{font-size:1.15rem}.quote-terms dd{text-align:left;font-weight:500;line-height:1.45}.quote-footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;gap:1rem;margin-top:2.4rem;padding-top:1rem;font-size:.7rem;display:flex}.export-bar{background:var(--navy);color:#fff;z-index:8;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.55rem;padding:1rem clamp(1rem,3vw,2rem);display:flex;position:sticky;bottom:0}.export-bar>div{margin-right:auto;display:grid}.export-bar span{color:#b7c6d5;font-size:.78rem}.export-bar button{color:#fff;background:#102f4d;border-color:#31506c}.export-bar button:hover:not(:disabled){border-color:var(--cyan)}.update-notice{z-index:50;background:var(--navy);color:#fff;border-left:4px solid var(--cyan);align-items:center;gap:.5rem;padding:.8rem;display:flex;position:fixed;top:84px;right:1rem;box-shadow:0 18px 50px #00000040}.update-notice button{color:var(--ink);background:#fff}.page-loading{min-height:65vh;color:var(--muted);justify-content:center;align-items:center;gap:.8rem;font-weight:650;display:flex}.page-loading.full{min-height:100vh}.spinner{border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}.fatal-state{text-align:center;align-content:center;place-items:center;min-height:100vh;padding:2rem;display:grid}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (max-width:1020px){.app-header{grid-template-columns:1fr auto}.app-header nav{border-top:1px solid var(--border);z-index:30;background:#fff;grid-template-columns:repeat(3,1fr);height:64px;display:grid;position:fixed;inset:auto 0 0}.app-header nav button{border-top:3px solid #0000;border-bottom:0;min-width:0}.app-header nav button.active{border-top-color:var(--cyan)}.workspace{padding-bottom:84px}.editor-layout{grid-template-columns:minmax(0,1fr)}.summary-column{grid-row:1;grid-template-columns:1fr 1fr;position:static}.record-row{grid-template-columns:80px minmax(180px,1fr) minmax(120px,.7fr) auto}.record-row>span:nth-of-type(3),.record-row time{display:none}}@media (max-width:680px){.auth-shell{align-items:center;padding:1rem}.auth-card{padding:1.6rem}.app-header{height:64px;padding:0 .85rem}.app-brand>span:last-child,.header-actions .network-state{display:none}.workspace{padding:.75rem .75rem 84px}.panel-heading{flex-direction:column;gap:1rem;padding:1.25rem}.panel-heading .save-state{align-self:flex-start}.form-grid,.form-grid.compact{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:span 1}.editor-panel fieldset{padding:1.25rem}.segmented{grid-template-columns:1fr}.editor-actions{flex-direction:column;justify-content:stretch;padding:.75rem}.editor-actions button{width:100%}.summary-column{grid-template-columns:1fr}.record-row{grid-template-columns:70px 1fr auto;gap:.6rem;padding:.9rem}.record-row>span:nth-of-type(2),.record-row>span:nth-of-type(3),.record-row time{display:none}.quote-document{box-shadow:none;border:0;margin:0;padding:1.1rem}.quote-header{grid-template-columns:1fr;gap:1rem}.quote-header h2{font-size:2.35rem}.quote-client{margin:1.5rem 0}.quote-document table,.quote-document thead,.quote-document tbody,.quote-document tr,.quote-document th,.quote-document td{display:block;text-align:left!important;width:100%!important}.quote-document thead{clip:rect(0 0 0 0);height:1px;position:absolute;overflow:hidden;width:1px!important}.quote-document tr{border-bottom:1px solid var(--border);padding:.75rem}.quote-document td{border:0;padding:.2rem 0}.quote-document td:nth-child(2):before{content:"Quantity: ";color:var(--muted)}.quote-document td:last-child{font-weight:800}.quote-summary{max-width:none}.quote-summary dl div,.quote-terms dl div{grid-template-columns:1fr;gap:.2rem}.quote-summary dd,.quote-terms dd{text-align:left}.quote-footer{flex-direction:column}.export-bar{align-items:stretch}.export-bar>div{width:100%;margin-bottom:.5rem}.export-bar button{flex:44%}.update-notice{flex-wrap:wrap;inset:76px .75rem auto}}@media print{.app-header,.editor-panel,.summary-column,.review-panel>.panel-heading,.export-bar,.update-notice{display:none!important}body,.workspace,.review-panel{background:#fff;border:0;padding:0}.quote-document{box-shadow:none;border:0;width:100%;margin:0}}
