:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#e8ecff;background:radial-gradient(circle at top,#1d2b68,#0b1023 42%,#050816);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-width:320px}button,input,textarea{font:inherit}a{color:#7dd3fc}.page-shell{position:relative;min-height:100vh;overflow:hidden}.background-orb{position:absolute;border-radius:999px;filter:blur(80px);opacity:.35;pointer-events:none}.orb-left{top:-60px;left:-80px;width:280px;height:280px;background:#38bdf8}.orb-right{top:120px;right:-80px;width:320px;height:320px;background:#8b5cf6}.layout{position:relative;z-index:1;max-width:1400px;margin:0 auto;padding:40px 24px 56px}.hero-card,.panel,.summary-card{border:1px solid rgba(148,163,184,.18);background:#090e22ad;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 24px 60px #02061759}.hero-card{padding:32px;border-radius:28px;margin-bottom:24px}.eyebrow{display:inline-block;padding:6px 10px;border-radius:999px;background:#3b82f624;color:#93c5fd;font-size:.85rem;letter-spacing:.03em}.hero-card h1{margin:16px 0 12px;font-size:clamp(2rem,3vw,3.5rem);line-height:1.05}.hero-text{max-width:840px;margin:0;color:#cbd5e1;font-size:1.05rem}.hero-status{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:10px 14px;border-radius:999px;background:#0f172ab3;color:#bfdbfe;font-size:.95rem}.status-dot{width:10px;height:10px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 6px #22c55e1f}.content-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:24px;align-items:start}.panel{border-radius:24px;padding:28px}.panel h2{margin:0 0 8px;font-size:1.4rem}.panel p{margin:0;color:#cbd5e1}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.estimate-form{display:grid;gap:18px}.field{display:grid;gap:10px}.field-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.field-input-row{display:flex;align-items:stretch;gap:10px}.field-input-row input{flex:1 1 auto}.field-input-row .secondary-button{white-space:nowrap}.field span{color:#dbeafe;font-weight:600}.field input,.field textarea,.field select{width:100%;border:1px solid rgba(148,163,184,.22);border-radius:16px;background:#0f172ab8;color:#f8fafc;padding:14px 16px;outline:none;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.field input::placeholder,.field textarea::placeholder{color:#94a3b8}.field input:focus,.field textarea:focus,.field select:focus{border-color:#60a5facc;box-shadow:0 0 0 4px #3b82f629}.field textarea{resize:vertical;min-height:140px}.field select{appearance:none}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.form-footer-copy{display:grid;gap:6px;min-width:0}.request-timer-value{color:#e2e8f0;font-weight:700}.helper-text{color:#94a3b8;font-size:.95rem}.primary-button,.secondary-button{border:0;border-radius:14px;padding:12px 18px;cursor:pointer;transition:transform .2s ease,opacity .2s ease,box-shadow .2s ease}.primary-button{background:linear-gradient(135deg,#38bdf8,#6366f1);color:#fff;font-weight:700;box-shadow:0 16px 32px #2563eb47}.secondary-button{background:#1e293be6;color:#dbeafe;border:1px solid rgba(148,163,184,.22)}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.primary-button:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.secondary-button:disabled{opacity:.65;cursor:not-allowed;transform:none}.message{margin-top:18px;padding:14px 16px;border-radius:16px}.message-error{background:#7f1d1d61;border:1px solid rgba(248,113,113,.3);color:#fecaca}.info-list{margin:18px 0 24px;padding-left:20px;color:#dbeafe}.info-list li+li{margin-top:10px}.info-panel-preview-caption{margin:0 0 4px;font-size:.85rem;color:#94a3b8}.info-panel-preview{margin-bottom:20px}.info-panel-preview .table-wrapper{margin-top:0}.info-panel-preview table{min-width:960px;font-size:.8rem}.info-panel-preview th,.info-panel-preview td{padding:10px 8px}.info-panel-preview-link{color:#7dd3fc;text-decoration:underline;text-underline-offset:2px;cursor:default}.hint-card{padding:16px 18px;border-radius:18px;background:#1e293bb3;color:#cbd5e1}.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin:24px 0}.summary-card{border-radius:22px;padding:20px 22px}.summary-card strong,.meta-card strong{display:block;margin-top:8px;font-size:1rem;line-height:1.4;overflow-wrap:anywhere}.summary-label{color:#93c5fd;font-size:.88rem;text-transform:uppercase;letter-spacing:.04em}.summary-subtle{display:block;margin-top:6px;font-size:.82rem;color:#94a3b8;font-weight:400}.accent-card{background:linear-gradient(135deg,#0ea5e940,#4f46e54d),#090e22b8}.result-panel{overflow:hidden}.result-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px}.table-wrapper{overflow-x:auto;margin-top:22px;border-radius:18px;border:1px solid rgba(148,163,184,.14)}table{width:100%;min-width:1280px;border-collapse:collapse;background:#0f172a8f}.table-data-button{border-radius:10px;padding:8px 12px;font-size:.88rem;font-weight:600;cursor:pointer;border:1px solid rgba(148,163,184,.35);background:#1e293bf2;color:#e2e8f0;transition:transform .15s ease,opacity .15s ease}.table-data-button:hover:not(:disabled){transform:translateY(-1px);border-color:#60a5fa8c}.table-data-button:disabled{opacity:.45;cursor:not-allowed;transform:none}thead{background:#1e293bf2}th,td{padding:16px 14px;text-align:left;border-bottom:1px solid rgba(148,163,184,.12);vertical-align:top}th{color:#dbeafe;font-size:.88rem}td{color:#e2e8f0}.result-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:20px}.meta-card{padding:16px 18px;border-radius:18px;background:#0f172ab3;border:1px solid rgba(148,163,184,.12)}.tabs-root{margin-top:18px;margin-bottom:20px}.tabs-list{display:inline-flex;padding:4px;border-radius:999px;background:#0f172acc;border:1px solid rgba(148,163,184,.4);gap:4px}.tab-button{position:relative;border:0;border-radius:999px;padding:8px 16px;font-size:.95rem;color:#cbd5e1;background:transparent;cursor:pointer;transition:background .2s ease,color .2s ease,transform .15s ease}.tab-button-active{background:linear-gradient(135deg,#38bdf83d,#818cf866),#0f172ae6;color:#f9fafb;transform:translateY(-.5px)}.photo-panel,.photo-preview-strip{margin-top:8px}.photo-preview-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-top:8px}.photo-preview-item{padding:8px 10px;border-radius:12px;background:#0f172ae6;border:1px solid rgba(148,163,184,.3);display:flex;flex-direction:column;gap:2px}.photo-preview-name{font-size:.9rem;color:#e5e7eb;overflow-wrap:anywhere}.photo-preview-size{font-size:.8rem;color:#9ca3af}.photo-preview-more{padding:8px 10px;border-radius:12px;border:1px dashed rgba(148,163,184,.6);color:#cbd5e1;font-size:.9rem;display:flex;align-items:center;justify-content:center}.photo-actions{display:flex;gap:10px;flex-wrap:wrap}.photo-result{margin-top:22px;padding:18px 20px;border-radius:20px;border:1px solid rgba(56,189,248,.45);background:linear-gradient(135deg,#38bdf81a,#818cf82e),#0f172aeb}.photo-result-header strong{display:block;margin-top:6px}.photo-result-file{margin-top:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.photo-result-icon{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;background:#3b82f6e6;color:#eff6ff;font-size:.75rem;font-weight:600}.photo-result-name{font-size:.95rem;color:#e5e7eb}.empty-state{margin-top:24px;text-align:center;padding:42px 28px}.modal-layer{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px}.modal-backdrop{position:absolute;inset:0;border:0;padding:0;margin:0;cursor:pointer;background:#020617b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-panel{position:relative;z-index:1;width:min(720px,100%);max-height:min(86vh,900px);overflow:hidden;display:flex;flex-direction:column;border-radius:22px;border:1px solid rgba(148,163,184,.28);background:#090e22f5;box-shadow:0 28px 80px #0206178c}.modal-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px 0}.modal-panel-title{margin:0;font-size:1.15rem;line-height:1.35;color:#f8fafc}.modal-close-button{flex-shrink:0;padding:8px 14px;font-size:.88rem}.modal-panel-subtitle{margin:8px 22px 0;color:#cbd5e1;font-size:.95rem}.modal-section{margin-bottom:1.25rem}.modal-section:last-child{margin-bottom:0}.modal-section-title{margin:0 0 .5rem;font-size:.95rem;font-weight:600;color:#e2e8f0;letter-spacing:.02em}.modal-calculation-block{margin:0;padding:12px 14px;border-radius:14px;background:#0f172abf;border:1px solid rgba(148,163,184,.14);color:#f1f5f9;font-size:.95rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.modal-calculation-block a{color:#7dd3fc;text-decoration:underline;text-underline-offset:2px}.modal-calculation-block a:hover{color:#bae6fd}.modal-panel-body{padding:16px 22px 22px;overflow:auto;display:grid;gap:16px}.modal-text-block{white-space:pre-wrap;color:#e2e8f0;font-size:.95rem;line-height:1.5;padding:12px 14px;border-radius:14px;background:#0f172abf;border:1px solid rgba(148,163,184,.14)}.modal-table-wrap{border-radius:14px;border:1px solid rgba(148,163,184,.14);overflow:auto;max-height:48vh}.modal-table{width:100%;min-width:0;font-size:.9rem}.modal-table th,.modal-table td{padding:10px 12px;vertical-align:top}.modal-table tbody tr:nth-child(2n){background:#0f172a59}@media(max-width:1180px){.content-grid,.summary-grid,.result-meta{grid-template-columns:1fr}}@media(max-width:720px){.layout{padding:20px 14px 40px}.hero-card,.panel,.summary-card{border-radius:20px}.hero-card,.panel{padding:22px}.panel-header,.form-footer{flex-direction:column;align-items:stretch}.hero-status{display:flex;border-radius:18px}.tabs-list{width:100%;justify-content:space-between}}
