*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f3f4f6;color:#111;font-size:16px;overflow-x:hidden;padding-bottom:env(safe-area-inset-bottom,0)}a{color:#1e3a5f}.layout{display:flex;min-height:100vh;min-height:100dvh;max-width:100vw;overflow-x:hidden}.sidebar{width:240px;background:#1f2937;color:#e5e7eb;padding:16px 12px;flex-shrink:0}.app-brand{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:#fff;margin:0 0 16px;line-height:1.25;word-break:break-word}.sidebar .app-brand,.drawer .app-brand{display:block}.topbar-mobile .app-brand{margin:0;font-size:1.05rem;flex:1;min-width:0}.sidebar h1{font-size:18px;margin:0 0 12px}.sidebar a,.drawer-nav a{display:block;color:#d1d5db;padding:12px;margin-bottom:2px;text-decoration:none;border-radius:6px;font-size:16px}.sidebar a.active,.sidebar a:hover,.drawer-nav a.active,.drawer-nav a:hover{background:#374151;color:#fff}.drawer-nav a.nav-primary,.sidebar a.nav-primary{background:#1e3a5f;color:#fff;font-weight:600;margin-bottom:10px}.drawer-nav a.nav-primary.active,.sidebar a.nav-primary.active{background:#152a45}.main{flex:1;padding:20px 24px;max-width:1100px;min-width:0}.topbar-mobile{display:none;align-items:center;gap:12px;background:#1f2937;color:#fff;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top));position:sticky;top:0;z-index:30}.hamburger{background:transparent;border:1px solid #9ca3af;color:#fff;font-size:24px;line-height:1;padding:8px 14px;min-width:44px;min-height:44px;cursor:pointer;border-radius:8px}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:40}.drawer{position:fixed;top:0;left:0;bottom:0;width:min(300px,88vw);background:#1f2937;color:#e5e7eb;z-index:50;padding:16px 12px;padding-top:max(16px,env(safe-area-inset-top));overflow-y:auto;overflow-x:hidden}h2{margin:0 0 14px;font-size:1.35rem}.card{background:#fff;border:1px solid #d1d5db;padding:14px 16px;margin-bottom:12px;border-radius:10px}.btn{background:#1e3a5f;color:#fff;border:none;padding:10px 14px;cursor:pointer;margin-right:6px;margin-bottom:6px;border-radius:8px;font:inherit;font-size:15px}.btn:hover{background:#152a45}.btn.secondary{background:#6b7280}.btn.success{background:#166534}.btn.danger{background:#991b1b}.btn:disabled{opacity:.5}.btn-touch{min-height:48px;padding:14px 16px;font-size:16px;font-weight:600}.btn-block{display:block;width:100%;margin-right:0}.primary-cta{background:#1e3a5f;font-size:17px}label{display:block;margin:8px 0 4px;font-size:14px;color:#4b5563}input,textarea,select{width:100%;padding:12px;border:1px solid #cbd5e1;font:inherit;font-size:16px;border-radius:8px}textarea{min-height:140px;font-family:ui-monospace,Consolas,monospace;font-size:15px}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:8px;border-bottom:1px solid #e5e7eb;vertical-align:top}th{background:#f9fafb;font-size:13px}.badge{display:inline-block;padding:2px 8px;background:#e5e7eb;font-size:12px;margin-right:4px;border-radius:4px}.badge.warn{background:#fef3c7}.badge.ok{background:#d1fae5}.badge.internal{background:#fee2e2;color:#7f1d1d}.muted{color:#6b7280;font-size:14px}.request-search{display:flex;align-items:center;gap:8px;width:100%;max-width:100%;background:#fff;border:2px solid #1e3a5f;padding:6px 10px;margin:0 0 14px;border-radius:10px}.request-search-icon{flex-shrink:0;font-size:18px;line-height:1}.request-search input{flex:1;width:100%;min-width:0;border:none;padding:10px 4px;font-size:16px;background:transparent}.request-search input:focus{outline:none}.request-search input::-webkit-search-cancel-button{display:none}.request-search-clear{flex-shrink:0;background:none;border:none;color:#4b5563;font-size:26px;line-height:1;cursor:pointer;padding:0 4px;min-width:44px;min-height:44px}.request-search-clear:hover{color:#111}.request-row{cursor:pointer}.request-row:hover td{background:#f8fafc}.request-cards{display:none;flex-direction:column;gap:10px;margin-top:12px}.request-card{background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:14px;cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}.request-card:active{background:#f8fafc}.customer-card{min-height:88px}.pager-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap}.customer-section{margin-top:20px}.customer-section h3{margin:0 0 10px;font-size:16px}.customer-dl{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:0}.customer-dl dt{font-size:12px;color:#6b7280;margin:0}.customer-dl dd{margin:2px 0 0;font-weight:500}.customer-summary-list{margin:0;padding-left:18px;line-height:1.7}.btn.warn-report{background:#fef3c7;border-color:#d97706;color:#92400e}.btn.warn-report:hover{background:#fde68a}.btn.warn-report-sm{font-size:12px;padding:6px 8px;white-space:normal;line-height:1.25;max-width:160px}.error-banner{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:12px 14px;margin:12px 0}.error{color:#991b1b}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.login{max-width:380px;margin:80px auto;background:#fff;border:1px solid #d1d5db;padding:24px;border-radius:12px}.password-field{margin-bottom:4px}.password-input-wrap{position:relative;display:flex;align-items:center}.password-input-wrap input{padding-right:72px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:#1e3a5f;font:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:8px 10px;min-height:40px;border-radius:6px}.password-toggle:hover{background:#f3f4f6}.password-toggle:focus-visible{outline:2px solid #1e3a5f;outline-offset:1px}.pre{white-space:pre-wrap;background:#f9fafb;border:1px solid #e5e7eb;padding:10px;font-size:14px;border-radius:8px}.send-box{border:2px solid #166534;background:#f0fdf4;padding:16px;margin-top:12px;border-radius:10px}.internal-box{border:2px solid #991b1b;background:#fef2f2;padding:14px;border-radius:10px}.actions-bar{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.actions-bar .btn{margin-right:0;margin-bottom:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100;display:flex;align-items:flex-end;justify-content:center;padding:0;overflow:auto}.modal-panel{background:#fff;width:min(640px,100%);max-height:92vh;display:flex;flex-direction:column;border:1px solid #d1d5db;border-radius:16px 16px 0 0}.modal-panel.modal-wide{width:min(960px,100%)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #e5e7eb;gap:8px;position:sticky;top:0;background:#fff;z-index:1}.modal-header h3{margin:0;font-size:17px}.modal-body{padding:16px;overflow:auto;flex:1;-webkit-overflow-scrolling:touch}.pdf-frame{width:100%;height:min(70vh,700px);border:1px solid #e5e7eb;border-radius:8px}.channel-list label{display:flex;align-items:flex-start;gap:8px;margin:10px 0}.channel-list input{width:auto}.intake-textarea{min-height:180px;font-size:16px;line-height:1.5}.intake-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}.intake-address{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.intake-address code{background:#f3f4f6;border:1px solid #d1d5db;padding:8px 10px;font-size:14px;word-break:break-all;border-radius:6px}.link-button{background:none;border:none;padding:0;color:#1d4ed8;text-decoration:underline;cursor:pointer;font-size:inherit}.notice-box{border:2px solid #b45309;background:#fffbeb;padding:12px;margin-top:14px;border-radius:8px}.field-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.project-form label{font-size:13px}.attachment-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.attachment{margin:0;max-width:220px;border:1px solid #e5e7eb;padding:8px;border-radius:8px}.attachment img{max-width:100%;display:block;border-radius:4px}.attachment figcaption{font-size:12px;margin-top:6px}.share-section{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:12px}.share-section h4{margin:0 0 8px}.channel-tabs .btn.active-tab{background:#1e3a5f;color:#fff;border-color:#1e3a5f}.offer-public{max-width:820px;margin:0 auto;padding:24px 16px}.page-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.screenshot-drop{border:2px dashed #9ca3af;background:#f8fafc;padding:20px 14px;text-align:center;border-radius:12px;min-height:160px;display:flex;flex-direction:column;justify-content:center;gap:10px}.screenshot-drop.drag-over{border-color:#1e3a5f;background:#eef2ff}.screenshot-drop.has-files{border-style:solid;border-color:#166534;background:#f0fdf4}.screenshot-drop-title{font-size:18px;font-weight:600;margin:0}.intake-secondary-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.intake-secondary-row .btn{flex:1 1 140px;margin:0}.fixture-list{display:flex;flex-direction:column;gap:12px}.fixture-row{display:flex;gap:12px;align-items:flex-start}.fixture-thumb{width:96px;height:72px;object-fit:cover;border:1px solid #e5e7eb;background:#fff;flex-shrink:0;border-radius:6px}.attachment-clickable{cursor:pointer}.attachment-clickable:hover{border-color:#1e3a5f}.screenshot-viewer-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.screenshot-viewer-stage{overflow:auto;max-height:min(60vh,560px);border:1px solid #e5e7eb;background:#111;padding:8px;border-radius:8px}.screenshot-viewer-stage img{max-width:none;display:block;transition:transform .15s ease}.collapsible-card summary{cursor:pointer;font-weight:600;padding:4px 0;list-style-position:inside}.sticky-cta-bar{position:sticky;bottom:0;background:linear-gradient(transparent,#f3f4f6 28%);padding:16px 0 max(12px,env(safe-area-inset-bottom));margin-top:8px;z-index:20}.new-request-page{padding-bottom:8px}.quote-sticky-actions{display:none}.desktop-only{display:inline-flex}.mobile-only{display:none}.table-desktop{display:table;width:100%}@media (min-width: 301px){.app-brand{visibility:visible;opacity:1}.sidebar .app-brand,.topbar-mobile .app-brand,.drawer .app-brand{font-size:1.2rem;font-weight:700;color:#fff}}@media (max-width: 800px){.desktop-only{display:none!important}.mobile-only{display:block}.intake-options,.field-grid{grid-template-columns:1fr}.attachment{max-width:100%}.sidebar{display:none}.topbar-mobile{display:flex}.layout{flex-direction:column}.main{padding:12px 12px 88px;padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.grid-2{grid-template-columns:1fr}.request-search{width:100%}.screenshot-drop{min-height:240px;padding:28px 12px}.fixture-row{flex-direction:column}.fixture-thumb{width:100%;height:120px}.table-desktop{display:none}.request-cards{display:flex}.customer-dl{grid-template-columns:1fr}.modal-backdrop{align-items:stretch;padding:0}.modal-panel,.modal-panel.modal-wide{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;border:none}.pdf-frame{height:calc(100vh - 140px);height:calc(100dvh - 140px)}.actions-bar .btn{flex:1 1 calc(50% - 8px);min-height:48px;font-size:15px}.quote-sticky-actions{display:flex;position:fixed;left:0;right:0;bottom:0;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #d1d5db;z-index:25;box-shadow:0 -4px 16px #00000014}.quote-sticky-actions .btn{flex:1;margin:0;min-height:48px}.login{margin:24px 12px}th,td{font-size:14px}}@media (min-width: 801px){.modal-backdrop{align-items:center;padding:16px}.modal-panel{border-radius:12px;max-height:90vh}.sticky-cta-bar{position:static;background:none;padding:12px 0 0}.sticky-cta-bar .btn-block{width:auto;display:inline-block;min-width:220px}}.admin-layout .admin-sidebar{background:#111827;width:240px}.admin-main{max-width:1200px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:20px}.admin-stat{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:12px}.admin-table{width:100%;border-collapse:collapse;background:#fff;font-size:14px}.admin-table th,.admin-table td{border:1px solid #e5e7eb;padding:8px 10px;text-align:left;vertical-align:top}.admin-table th{background:#f9fafb}.admin-pre{background:#111827;color:#e5e7eb;padding:12px;border-radius:8px;overflow:auto;font-size:13px}button.linkish{background:none;border:none;color:#1e3a5f;cursor:pointer;font:inherit;text-decoration:underline;padding:0}.row{display:flex;flex-wrap:wrap;align-items:center}
