:root{--color-primary: #0F5B5B;--color-primary-light: #197575;--color-primary-dark: #083F3F;--color-accent: #C8A43A;--color-text: #151515;--color-background: #FFFFFF;--color-surface: #F3F6F5;--color-muted: #596663;--color-border: #D5DFDC;--color-primary-soft: #EAF3F1;--color-on-dark-muted: #D0DFDA;--color-success: #226544;--color-success-soft: #EAF6EE;--color-error: #AC2938;--color-error-soft: #FFF0F1;--color-warning: #775716;--color-warning-soft: #FAF3DF;--color-focus: #197575;--color-red-100: var(--color-error-soft);--color-red-50: var(--color-error-soft);--color-red-200: #E9BDC3;--color-red-500: var(--color-error);--color-red-600: var(--color-error);--color-green-100: var(--color-success-soft);--color-green-500: var(--color-success);--color-green-600: var(--color-success);--color-green-700: var(--color-success)}:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--color-focus)!important;outline-offset:3px!important}:where(input,select,textarea){accent-color:var(--color-primary)}:where(button,a,input,select,textarea){transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease}:where(button,input,select,textarea):disabled{cursor:not-allowed}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:var(--color-text);background:var(--color-background);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;width:100%;margin:0}body{min-width:320px}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-dark)}h1{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.2}button{border:1px solid transparent;border-radius:8px;padding:.65em 1.2em;font:inherit;font-weight:600;background:var(--color-primary);color:var(--color-background);cursor:pointer}button:hover{background:var(--color-primary-dark)}button:disabled{opacity:.6;cursor:not-allowed}input,select,textarea{font:inherit;color:var(--color-text);background:var(--color-background);border:1px solid var(--color-border);border-radius:6px;padding:8px;max-width:100%}input::placeholder,textarea::placeholder{color:var(--color-muted)}.sidebar{width:250px;height:100vh;background-color:var(--color-primary-dark);color:var(--color-accent);padding:20px;position:fixed;left:0;top:0;overflow-y:auto;z-index:1000;transform:translate(-100%);transition:transform .3s ease}.sidebar.open{transform:translate(0)}@media(min-width:769px){.sidebar{transform:translate(0)}}.sidebar-logo{text-align:center;margin-bottom:30px}.logo-image{width:150px;height:auto;max-width:100%}.sidebar ul{list-style-type:none;padding:0}.sidebar ul li{margin-bottom:10px}.sidebar ul li button{color:var(--color-accent);background:none;border:none;text-decoration:none;display:flex;align-items:center;padding:10px;border-radius:4px;transition:background-color .3s;cursor:pointer;width:100%;text-align:left}.sidebar ul li button svg{margin-right:10px}.sidebar ul li button:hover{background-color:var(--color-primary)}.logout-button{color:#ff6b6b!important}.logout-button:hover{background-color:#ff6b6b!important;color:#fff!important}.sidebar-footer{position:absolute;bottom:20px;left:20px;right:20px;background-color:var(--color-accent);border-radius:8px;padding:15px;box-shadow:0 2px 5px #0000001a;text-align:center}.motivational-quote{font-size:14px;font-style:italic;color:#333;margin:0;line-height:1.4}.sidebar ul li button:hover{color:var(--color-background)}.sidebar button:focus-visible{outline-color:var(--color-accent)!important}.sidebar-footer{position:static;margin-top:24px}.login-container{--login-accent: #ffd02a;--login-accent-strong: #f4b900;--login-surface: rgba(18, 18, 18, .94);--login-border: rgba(255, 255, 255, .1);display:grid;min-height:100vh;min-height:100dvh;width:100%;place-items:center;padding:32px 20px;overflow:hidden;position:relative;color:#fff;background:radial-gradient(circle at 50% 0%,rgba(255,208,42,.16),transparent 36%),linear-gradient(145deg,#080808,#111 48%,#050505)}.login-container:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;background-image:url(/assets/storm1-Oywe-G5a.png);background-repeat:no-repeat;background-position:center;background-size:min(900px,90vw) auto}.login-panel{width:min(100%,760px);padding:42px;position:relative;z-index:1;text-align:center;border:1px solid var(--login-border);border-radius:24px;background:var(--login-surface);box-shadow:0 24px 80px #0000008c;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-panel--form{width:min(100%,460px)}.login-brand{display:block;width:150px;max-width:45%;height:auto;margin:0 auto 28px}.login-eyebrow{margin:0 0 8px;color:var(--login-accent);font-size:.75rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.login-title{margin:0;color:#fff;font-size:clamp(1.75rem,4vw,2.45rem);line-height:1.15}.login-description{margin:12px 0 30px;color:#a8a8a8;font-size:.98rem}.access-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.access-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;width:100%;min-height:116px;margin:0;padding:22px;color:#fff;text-align:left;text-decoration:none;border:1px solid var(--login-border);border-radius:16px;background:#ffffff09;box-shadow:none;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.access-card:hover{color:#fff;border-color:#ffd02ab3;background:#ffd02a14;transform:translateY(-3px)}.access-card:focus-visible,.login-back-button:focus-visible,.login-submit-button:focus-visible{outline:3px solid rgba(255,208,42,.45);outline-offset:3px}.access-card-icon{display:grid;width:48px;height:48px;place-items:center;color:#111;border-radius:13px;background:var(--login-accent)}.access-card-icon svg,.access-card-arrow svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.access-card-copy{display:flex;min-width:0;flex-direction:column;gap:5px}.access-card-copy strong{font-size:1.05rem}.access-card-copy small{color:#9b9b9b;font-size:.78rem;line-height:1.35}.access-card-arrow{display:grid;color:#777;transition:color .18s ease,transform .18s ease}.access-card:hover .access-card-arrow{color:var(--login-accent);transform:translate(3px)}.login-help{margin:24px 0 0;color:#6f6f6f;font-size:.78rem}.login-back-button{display:flex;align-items:center;gap:8px;width:auto;margin:-12px 0 22px;padding:8px 0;color:#aaa;border:0;background:transparent;box-shadow:none}.login-back-button:hover{color:var(--login-accent);border-color:transparent;background:transparent}.login-form{display:flex;flex-direction:column;gap:18px;text-align:left}.login-field label{display:block;margin-bottom:7px;color:#d7d7d7;font-size:.84rem;font-weight:650}.login-field input{width:100%;height:48px;padding:0 14px;color:#fff;font:inherit;border:1px solid #393939;border-radius:10px;outline:none;background:#202020;transition:border-color .16s ease,box-shadow .16s ease}.login-field input::placeholder{color:#777}.login-field input:focus{border-color:var(--login-accent);box-shadow:0 0 0 3px #ffd02a1f}.login-field input:disabled{cursor:not-allowed;opacity:.65}.login-error{margin:-2px 0 0;padding:10px 12px;color:#ffb5b5;font-size:.82rem;text-align:center;border:1px solid rgba(255,91,91,.25);border-radius:9px;background:#ff434314}.login-error--access{margin-top:18px}.login-submit-button{width:100%;min-height:48px;margin:4px 0 0;color:#111;font-weight:800;border:0;border-radius:10px;background:var(--login-accent);box-shadow:none}.login-submit-button:hover:not(:disabled){color:#111;border-color:transparent;background:var(--login-accent-strong)}.login-submit-button:disabled{cursor:wait;opacity:.7}@media(max-width:640px){.login-container{align-items:start;padding:18px 14px}.login-panel{margin:auto 0;padding:30px 20px;border-radius:18px}.login-brand{width:125px;margin-bottom:22px}.login-description{margin-bottom:24px}.access-options{grid-template-columns:1fr}.access-card{min-height:96px;padding:18px}}@media(prefers-reduced-motion:reduce){.access-card,.access-card-arrow{transition:none}}.login-container{--login-accent: var(--color-primary);--login-accent-strong: var(--color-primary-dark);--login-surface: var(--color-background);--login-border: var(--color-border);color:var(--color-text);background:var(--color-surface)}.login-container:before{background-image:none}.login-panel{border-radius:16px;box-shadow:0 12px 36px #083f3f14;-webkit-backdrop-filter:none;backdrop-filter:none}.login-brand{width:180px;max-width:75%;padding:14px;background:var(--color-primary-dark);border-radius:10px}.login-title{color:var(--color-text)}.login-description,.access-card-copy small,.login-help,.login-back-button,.access-card-arrow{color:var(--color-muted)}.access-card{color:var(--color-text);background:var(--color-background);border-color:var(--color-border);border-radius:10px}.access-card:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-soft);transform:translateY(-2px)}.access-card-icon{background:var(--color-primary-dark);color:var(--color-accent)}.login-field label{color:var(--color-text)}.login-field input{color:var(--color-text);background:var(--color-background);border-color:var(--color-border)}.login-field input:focus{box-shadow:0 0 0 3px var(--color-primary-soft)}.login-field input::placeholder{color:var(--color-muted)}.login-submit-button,.login-submit-button:hover:not(:disabled){color:var(--color-background)}.login-error{background:var(--color-error-soft);color:var(--color-error);border-color:var(--color-red-200)}.quote-page{max-width:1580px;margin:0 auto;text-align:left;color:var(--color-text);padding:12px 0 40px}.quote-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.quote-eyebrow{color:var(--color-primary);font-size:11px;letter-spacing:2px;font-weight:700}.quote-heading h1{font-size:32px;margin:8px 0}.quote-heading p{color:var(--color-muted);margin:0;font-size:14px}.quote-badge{border:1px solid #554819;color:var(--color-primary);padding:7px 12px;border-radius:20px;font-size:10px;letter-spacing:1px}.quote-workspace{display:grid;grid-template-columns:310px minmax(0,1fr);align-items:start;gap:28px}.quote-editor{background:var(--color-background);padding:24px;border:1px solid var(--color-border);border-radius:12px;color-scheme:light}.quote-editor fieldset{border:0;padding:0;margin:0 0 28px;min-width:0}.quote-editor legend{font-size:14px;font-weight:700;margin-bottom:16px;padding:0}.quote-editor legend span{color:var(--color-primary);margin-right:7px;font-size:11px}.quote-editor label{display:block;font-size:12px;color:var(--color-text);margin-bottom:6px}.quote-editor small{color:var(--color-muted)}.quote-editor input:not([type=checkbox]),.quote-editor select,.quote-editor textarea{box-sizing:border-box;width:100%;min-width:0;background:var(--color-background);color:var(--color-text);border:1px solid var(--color-border);border-radius:6px;padding:10px;font:inherit;font-size:14px;margin-bottom:14px}.quote-editor textarea{resize:vertical;line-height:1.5}.quote-editor input:focus,.quote-editor select:focus,.quote-editor textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px}.quote-help{color:var(--color-muted);font-size:12px;line-height:1.6;margin:0 0 12px}.quote-print{border-top:1px solid var(--color-border);padding-top:12px;margin-top:10px}.quote-editor .quote-check{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:12px;cursor:pointer}.quote-check input{accent-color:var(--color-primary);width:17px;height:17px;margin:0}.quote-dimensions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quote-dimensions input{margin-top:6px}.quote-terms{border-left:2px solid var(--color-primary);padding-left:12px;font-size:12px;color:var(--color-muted);margin-bottom:22px}.quote-terms strong{color:var(--color-text)}.quote-terms p{margin:6px 0 0;line-height:1.7}.quote-download{background:var(--color-primary);color:#111;width:100%;font-weight:750;font-size:13px;padding:14px 8px}.quote-download:hover{background:var(--color-primary-dark);border-color:var(--color-primary)}.quote-download:disabled{opacity:.6;cursor:wait}.quote-error{color:var(--color-error);font-size:13px}.quote-save-area{grid-column:1 / -1;margin-top:22px;padding-top:20px;border-top:1px solid var(--color-border)}.quote-success{color:var(--color-success);font-size:13px}.quote-editing{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:24px;font-size:12px;color:var(--color-primary)}.quote-editing button,.quote-saved button{color:var(--color-primary);background:var(--color-background);border:1px solid var(--color-border);font-size:12px}.quote-saved{margin-top:36px;padding:24px;background:var(--color-background);border:1px solid var(--color-border);border-radius:12px}.quote-saved h2{font-size:20px;margin:0 0 20px}.quote-saved>p{color:var(--color-muted);font-size:14px}.quote-saved>.quote-error{color:var(--color-error)}.quote-saved>.quote-success{color:var(--color-success)}.quote-row-actions{display:flex;gap:8px}.quote-saved .quote-delete{color:var(--color-error);border-color:#774040}.quote-saved .quote-delete:hover:not(:disabled){background:#492525;border-color:var(--color-error)}.quote-table-scroll{overflow-x:auto}.quote-saved table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}.quote-saved th,.quote-saved td{text-align:left;padding:12px;border-bottom:1px solid var(--color-border)}.quote-saved th{color:var(--color-muted);font-size:12px}.quote-saved td:first-child{overflow-wrap:anywhere;max-width:300px}.quote-row-editing{background:#ffc4000d}.quote-saved button:disabled{opacity:.5;cursor:wait}.quote-preview{min-width:0;position:sticky;top:20px}.quote-preview-label{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;color:var(--color-muted);font-size:10px;letter-spacing:1px;margin:0 0 12px}.quote-preview-label span:last-child{letter-spacing:0;color:var(--color-muted)}.quote-preview>svg{display:block;width:100%;height:auto;box-shadow:0 14px 45px #0005;border:1px solid var(--color-border)}@media(max-width:1200px){.quote-workspace{grid-template-columns:270px minmax(0,1fr);gap:18px}.quote-editor{padding:18px}}@media(max-width:1000px){.quote-workspace{grid-template-columns:1fr}.quote-preview{position:static}.quote-editor{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.quote-download,.quote-error{grid-column:1 / -1}}@media(max-width:540px){.quote-page{padding-top:35px}.quote-heading h1{font-size:28px}.quote-badge{display:none}.quote-editor{display:block}}.quote-download{color:var(--color-background)}.quote-badge{border-color:var(--color-accent);color:var(--color-warning)}.quote-delete:hover:not(:disabled){color:var(--color-background)}.app-container{display:flex}.main-content{margin-left:250px;padding:2rem;text-align:center;width:calc(100% - 250px);position:relative;background-color:var(--color-surface);z-index:1;transition:margin-left .3s ease}.mobile-menu-toggle{display:none;position:fixed;top:10px;left:10px;background-color:var(--color-primary);color:var(--color-background);border:none;padding:10px;border-radius:4px;cursor:pointer;z-index:1001;font-size:18px}@media(max-width:768px){.main-content{margin-left:0;width:100%;padding:1rem}.mobile-menu-toggle{display:block}.main-content.sidebar-open{margin-left:250px;width:calc(100% - 250px)}}.main-content:before{content:"";position:fixed;inset:0;background-image:none;background-size:25% auto;background-repeat:no-repeat;background-position:center;opacity:.1;z-index:-1}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.main-content{min-height:100vh;min-width:0;color:var(--color-text)}.main-content table{color:var(--color-text)}.main-content button:hover:not(:disabled){filter:brightness(.92)}
