:root{--primary:#525ea7;--primary-strong:#3a468d;--sky:#5facd3;--mint:#97dde9;--surface:#f9f9fc;--text:#1a1c1e;--text-secondary:#454651;--edge:#ffffffb8;--shadow:0 12px 32px #525ea724;--danger:#a4303f;--warning:#9a6b17;--success:#0d6a4a;--radius-card:24px;--radius-control:14px}*{box-sizing:border-box}html,body,#root{height:100%}body{min-height:100vh;color:var(--text);background:radial-gradient(1100px 620px at 8% -8%, #97dde957, transparent 62%), radial-gradient(900px 560px at 96% 4%, #5facd347, transparent 58%), var(--surface);background-attachment:fixed;margin:0;font:15px/1.55 Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Malgun Gothic,sans-serif}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:650}h1{font-size:20px}h2{font-size:17px}h3{color:var(--text-secondary);font-size:14px;font-weight:600}p{margin:0}a{color:var(--primary-strong)}.app{grid-template-columns:232px 1fr;min-height:100vh;display:grid}@media (width<=860px){.app{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #525ea71f;border-right:none}}.sidebar{border-right:1px solid #525ea71f;flex-direction:column;gap:24px;padding:24px 16px;display:flex}.brand{align-items:center;gap:10px;padding:0 8px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--sky), var(--primary));border-radius:10px;flex:none;width:32px;height:32px}.brand-name{font-size:15px;font-weight:680}.brand-role{color:var(--text-secondary);font-size:12px}.nav{flex-direction:column;gap:4px;display:flex}.nav a{border-radius:var(--radius-control);min-height:44px;color:var(--text-secondary);background:0 0;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;text-decoration:none;display:flex}.nav a:hover{background:#525ea714}.nav a.active{color:var(--primary-strong);background:#525ea724;font-weight:640}.shop-picker{border-radius:var(--radius-control);border:1px solid var(--edge);background:#ffffffa8;margin-top:auto;padding:12px}.shop-picker label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;display:block}.shop-picker select{border-radius:var(--radius-control);border:1px solid #525ea733;width:100%;min-height:40px;padding:0 10px}.shop-picker .warn{color:var(--danger);margin-top:8px;font-size:11px;line-height:1.4}.main{max-width:1180px;padding:24px 32px 56px}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head .sub{color:var(--text-secondary);margin-top:4px;font-size:13px}.card{border:1px solid var(--edge);border-radius:var(--radius-card);box-shadow:var(--shadow);background:#ffffffc2;margin-bottom:16px;padding:20px}.badge{min-height:22px;color:var(--primary-strong);background:#525ea71f;border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:640;display:inline-flex}.badge.warning{color:var(--warning);background:#9a6b1724}.badge.danger{color:var(--danger);background:#a4303f1f}.badge.success{color:var(--success);background:#0d6a4a1f}label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:13px;display:flex}input,select{border-radius:var(--radius-control);min-height:40px;color:var(--text);background:#ffffffe6;border:1px solid #525ea733;padding:0 10px}button{border-radius:var(--radius-control);cursor:pointer;background:#ffffffe6;border:1px solid #525ea73d;min-height:40px;padding:0 14px}button[type=submit],button.badge{background:var(--primary);color:#fff;border-color:var(--primary)}button:disabled{opacity:.6;cursor:default}dl{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}dl dt{color:var(--text-secondary)}dl dd{margin:0}.empty-state{border-radius:var(--radius-card);text-align:left;color:var(--text-secondary);border:1px dashed #525ea752;padding:28px 24px}.empty-state h3{color:var(--text);margin-bottom:6px;font-size:15px}.empty-state code{color:var(--primary-strong);background:#525ea71a;border-radius:6px;padding:1px 6px;font-size:12px}.empty-state .cr-ref{margin-top:10px;font-size:12px}.stack{flex-direction:column;gap:16px;display:flex}.stat-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}button.stat{text-align:left;border-radius:var(--radius-card);cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;padding:16px;display:flex}button.stat.active{border-color:var(--accent)}.stat-value{font-size:28px;font-weight:600;line-height:1.1}.stat-label{font-weight:600}.stat-hint{color:var(--text-secondary);font-size:12px}.point-admin{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}.point-form{flex-direction:column;gap:12px;display:flex}.point-form h2{margin:0;font-size:17px}.point-form label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.point-form input{border-radius:var(--radius-control);font:inherit;color:var(--text);background:#fff;border:1px solid #525ea73d;padding:9px 12px;font-weight:400}.point-form input:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.point-form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.point-form-actions{gap:8px;margin-top:4px;display:flex}.point-form-actions button{border-radius:var(--radius-control);background:var(--primary);color:#fff;font:inherit;cursor:pointer;border:none;padding:10px 16px;font-weight:600}.point-form-actions button:disabled{opacity:.45;cursor:not-allowed}.point-form-actions .ghost{color:var(--text-secondary);background:0 0;border:1px solid #525ea73d}.coordinate-readout{border-radius:var(--radius-control);background:#97dde929;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px;display:grid}.coordinate-readout span{color:var(--text-secondary);font-size:12px;display:block}.coordinate-readout strong{font-variant-numeric:tabular-nums;font-size:15px}.point-list ul{flex-direction:column;gap:10px;margin:10px 0 0;padding:0;list-style:none;display:flex}.point-list li{flex-direction:column;gap:2px;display:flex}.point-list .link{font:inherit;color:var(--primary-strong);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-weight:600;text-decoration:underline}@media (width<=900px){.point-admin{grid-template-columns:minmax(0,1fr)}.point-map{height:320px}}.shop-image-row{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-top:12px;display:flex}.shop-image{object-fit:cover;border:1px solid var(--edge);border-radius:var(--radius-control);background:#0000000a;width:160px;height:112px;display:block}.shop-image.placeholder{background:#0000000f}.shop-image-item{margin:0}.shop-image-actions{gap:6px;margin-top:6px;display:flex}.shop-image-actions button{min-height:30px;padding:0 10px}.point-map{border-radius:var(--radius-control);border:1px solid var(--edge);height:420px;overflow:hidden}.coordinate-readout{color:var(--text-secondary);gap:18px;margin-top:10px;font-size:13px;display:flex}.dive-point-picks{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.dive-point-pick{border:1px solid var(--edge);background:#ffffffb3;border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;display:inline-flex}.dive-point-pick button{cursor:pointer;background:0 0;border:0;min-height:20px;padding:0 4px}.page-save-bar{border:1px solid var(--edge);border-radius:var(--radius-card);box-shadow:var(--shadow);background:#ffffffeb;align-items:center;gap:12px;margin-top:16px;padding:14px 20px;display:flex;position:sticky;bottom:0}@media (width<=900px){.point-map{height:300px}}.quote-grid{grid-template-columns:380px 1fr;align-items:start;gap:20px;display:grid}.quote-grid>*{min-width:0}@media (width<=1040px){.quote-grid{grid-template-columns:1fr}}.quote-controls{max-height:calc(100vh - 32px);padding-right:4px;position:sticky;top:16px;overflow-y:auto}@media (width<=1040px){.quote-controls{max-height:none;position:static}}.quote-controls .card{padding:16px 18px}.quote-controls h3{text-transform:uppercase;letter-spacing:.04em;color:var(--primary-strong);margin-bottom:10px;font-size:12px}details.card>summary{cursor:pointer;color:var(--primary-strong);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:12px;font-weight:650;list-style:none;display:flex}details.card>summary::-webkit-details-marker{display:none}details.card>summary:after{content:"+";color:var(--text-secondary)}details.card[open]>summary:after{content:"–"}details.card .inner{margin-top:12px}.rate-grid{grid-template-columns:1fr 96px 96px;align-items:center;gap:6px 8px;display:grid}.rate-grid .head{color:var(--text-secondary);text-align:right;font-size:11px}.rate-grid label{color:var(--text-secondary);font-size:12px;display:block}.rate-grid input{text-align:right;font-variant-numeric:tabular-nums;background:#fff6cf;border-color:#e3d385;width:100%;min-height:34px;padding:0 8px}.rate-grid input.instr{background:#fdeceb;border-color:#d9a3a3}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.quote-controls label{margin-bottom:8px}.quote-controls input[type=number],.quote-controls input[type=date],.quote-controls input[type=text],.quote-controls textarea{background:#fff6cf;border-color:#e3d385}.quote-controls input[readonly]{background:#eef1f4;border-color:#ccd5de;font-weight:650}.quote-controls textarea{border-radius:var(--radius-control);min-height:56px;font:inherit;resize:vertical;border:1px solid #525ea733;padding:8px 10px}.quote-controls .hint{color:var(--text-secondary);font-size:11px}.audience-toggle{border-radius:var(--radius-control);color:var(--danger);background:#a4303f0f;border:1px solid #a4303f33;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;font-size:13px;font-weight:640;display:flex}.audience-toggle input{width:16px;height:16px;min-height:0;accent-color:var(--danger)}.custom-table{border-collapse:collapse;width:100%}.custom-table th{color:var(--text-secondary);text-align:left;border-bottom:1px solid #525ea71f;padding:4px;font-size:11px;font-weight:600}.custom-table td{padding:4px}.custom-table input{width:100%;min-height:34px}.custom-table .del{min-height:0;color:var(--danger);cursor:pointer;background:0 0;border:none;padding:2px 6px}.add-btn{border:1px dashed var(--primary);color:var(--primary-strong);background:0 0;min-height:34px;margin-top:8px;font-size:12px}.quote-actions{flex-wrap:wrap;gap:8px;display:flex}.quote-actions .primary{background:var(--primary);color:#fff;border-color:var(--primary)}.quote-doc{color:#1a1a1a;background:#fff;border:1px solid #ccc;padding:40px 44px 36px;font-family:Arial,Helvetica,Malgun Gothic,sans-serif;position:relative}.quote-doc.preview{border-style:dashed}.quote-doc-preview-tag{color:#7a5100;background:#f6ecd4;border-radius:4px;padding:2px 8px;font-size:10.5px;position:absolute;top:10px;right:12px}.qd-head{border-bottom:3px solid #1a1a1a;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;padding-bottom:16px;display:flex}.qd-brand{letter-spacing:.5px;font-family:Georgia,Times New Roman,serif;font-size:19px;font-weight:700}.qd-sub{color:#5c5c5c;margin-top:4px;font-size:11px;line-height:1.6}.qd-meta{text-align:right}.qd-title{letter-spacing:2px;margin-bottom:6px;font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:700}.qd-meta table{border-collapse:collapse;margin-left:auto;font-size:11.5px}.qd-meta td{text-align:right;color:#5c5c5c;padding:1.5px 0 1.5px 14px}.qd-meta td.v{color:#1a1a1a;min-width:110px;font-weight:600}.qd-parties{justify-content:space-between;gap:24px;margin-bottom:22px;display:flex}.qd-label{letter-spacing:1px;color:#5c5c5c;text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:700}.qd-strong{font-size:15px;font-weight:700}.qd-section{letter-spacing:1px;color:#5c5c5c;text-transform:uppercase;margin:18px 0 8px;font-size:11px;font-weight:700}.qd-table{border-collapse:collapse;width:100%;font-size:12.5px}.qd-table thead th{text-align:left;letter-spacing:.5px;color:#5c5c5c;text-transform:uppercase;border-bottom:1.5px solid #1a1a1a;padding:6px 4px;font-size:10.5px}.qd-table th.r,.qd-table td.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.qd-table tbody td{vertical-align:top;border-bottom:1px solid #c9c9c9;padding:8px 4px}.qd-table td.desc{width:46%}.qd-table td.desc .sub{color:#5c5c5c;margin-top:2px;font-size:10.5px;display:block}.qd-table td.desc .tag{color:#b3392b;margin-top:2px;font-size:10.5px;font-weight:700;display:block}.qd-table tr.discount td{color:#b3392b}.qd-table .was{color:#b3392b;text-decoration:line-through;display:block}.qd-table .was.small{font-size:.8em;font-weight:400}.qd-table tfoot td{border-top:1.5px solid #1a1a1a;padding:9px 4px 4px;font-weight:700}.qd-totals{justify-content:flex-end;margin-top:18px;display:flex}.qd-totals-box{width:300px}.qd-total-line{color:#5c5c5c;justify-content:space-between;padding:5px 0;font-size:12.5px;display:flex}.qd-total-line.grand{color:#1a1a1a;border-top:2px solid #1a1a1a;margin-top:4px;padding-top:9px;font-size:15px;font-weight:700}.qd-total-line .amt{font-variant-numeric:tabular-nums}.qd-notes{color:#5c5c5c;border-top:1px solid #c9c9c9;margin-top:22px;padding-top:12px;font-size:11px;line-height:1.8}.qd-notes p{margin:0 0 4px}.qd-footer{text-align:center;border-top:1px solid #c9c9c9;margin-top:30px;padding-top:14px;font-family:Georgia,Times New Roman,serif;font-size:13px;font-style:italic}@media (width<=640px){.quote-doc{padding:22px 16px}.qd-head,.qd-parties{flex-direction:column}.qd-meta{text-align:left}.qd-meta table{margin-left:0}.qd-totals-box{width:100%}}@media print{body{background:#fff}.sidebar,.quote-controls,.page-head,.quote-doc-preview-tag,.quote-history,.no-print{display:none!important}.app{display:block}.main{max-width:none;padding:0}.quote-grid{display:block}.quote-doc{border:none;padding:0}}.auth-modes{gap:8px;display:flex}.auth-consents{border:0;min-width:0;margin:0;padding:0}.auth-check{flex-direction:row;align-items:center;gap:8px;min-height:44px}.auth-check input{width:20px;height:20px;min-height:20px}.auth-legal{white-space:pre-wrap;overflow-wrap:anywhere;max-height:300px;font:inherit;overflow:auto}.auth-form summary{cursor:pointer;min-height:44px;color:var(--primary-strong)}.auth-form button{min-height:44px}
