:root{--bg:#fafaf7;--surface:#fff;--fg:#1a1916;--muted:#6b6964;--line:#e8e5df;--accent:#9b533d;--radius:12px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:'Malgun Gothic','Segoe UI',sans-serif;font-size:15px;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.4;letter-spacing:-.02em}h2{font-size:21px;line-height:1.5}h3{font-size:17px}img{max-width:100%;display:block}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--accent);font-size:14px;min-height:24px;margin:12px 0 0}.notice{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;font-size:14px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{display:flex;gap:16px;align-items:center;justify-content:space-between}.stack{display:grid;gap:18px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:10px 18px;border:1px solid var(--fg);border-radius:10px;background:var(--fg);color:var(--surface);font-size:14px;white-space:nowrap}.btn.secondary{background:var(--surface);color:var(--fg);border-color:var(--line)}.btn.small-btn{min-height:38px;padding:7px 12px;font-size:12px}.btn.text{background:transparent;border-color:transparent;color:var(--muted);padding:8px}.btn:hover{opacity:.86}.field{display:grid;gap:7px}.field>label,.field-label{font-size:13px;color:var(--muted)}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--fg)}textarea{min-height:90px;resize:vertical}input[type=checkbox],input[type=radio]{accent-color:var(--fg);width:18px;height:18px;vertical-align:middle}fieldset{border:0;padding:0;margin:0;min-width:0}legend{padding:0;font-size:15px;margin-bottom:14px}.checks{display:flex;gap:10px 16px;flex-wrap:wrap}.checks label{display:inline-flex;align-items:center;gap:7px;min-height:38px;font-size:13px}.header{padding:16px 28px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-weight:600;letter-spacing:.04em;font-size:16px}.header nav{display:flex;gap:18px;align-items:center;font-size:13px}.header nav a{color:var(--muted)}.header .btn{min-height:34px;font-size:12px;padding:5px 12px}.login{width:min(410px,100%);margin:11vh auto;padding:0 24px}.login .brand{display:block;margin-bottom:32px}.login h1{font-size:27px}.login form{display:grid;gap:18px;margin-top:28px}.login form .btn{width:100%}.login nav{margin-top:24px;text-align:center;color:var(--muted);font-size:13px}.privacy-note{font-size:12px;color:var(--muted);line-height:1.7}.picker{width:min(680px,100%);margin:24px auto;padding:0 20px}.space-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.space-select{display:flex;gap:12px;align-items:center}.space-select label{font-size:13px;color:var(--muted);white-space:nowrap}.space-select select{min-width:145px;font-size:16px}.counter{font-size:13px;color:var(--muted);white-space:nowrap}.card-well{overflow:hidden;padding:8px;margin:-8px}.swipe-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface);touch-action:pan-y;user-select:none;cursor:grab;will-change:transform,opacity}.swipe-card:active{cursor:grabbing}.swipe-card img{height:min(53vh,480px);min-height:260px;width:100%;object-fit:contain;pointer-events:none}.caption{margin:0;padding:13px 14px;border-top:1px solid var(--line);font-size:13px;text-align:center;color:var(--muted)}.caption strong{font-weight:500;color:var(--fg)}.stamp{position:absolute;top:20px;z-index:2;opacity:0;padding:10px 15px;border:2px solid var(--fg);border-radius:8px;background:var(--surface);font-size:17px;font-weight:600;pointer-events:none}.stamp.left{left:20px}.stamp.right{right:20px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.choices button{min-height:56px;border:1px solid var(--fg);border-radius:12px;font-size:18px;font-weight:600;background:var(--surface);color:var(--fg)}.choices button:last-child{background:var(--fg);color:var(--surface)}.hint{font-size:12px;color:var(--muted);text-align:center;margin:12px 0}.survey{display:grid;gap:24px;margin-top:26px}.survey fieldset{padding-bottom:20px;border-bottom:1px solid var(--line)}.survey-options{display:flex;gap:12px}.survey-options label{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 18px;background:var(--surface);border:1px solid var(--line);border-radius:8px;cursor:pointer}.brief{width:min(920px,100%);margin:30px auto;padding:0 24px}.brief-head{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:28px}.eyebrow{font-size:11px;color:var(--accent);letter-spacing:.09em;margin-bottom:12px}.evidence{display:flex;gap:28px;padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid var(--line);flex-wrap:wrap}.evidence strong{font-size:24px;font-weight:500;display:block}.evidence span{font-size:12px;color:var(--muted)}.brief-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.panel h2{font-size:18px;margin-bottom:14px}.panel ul{margin:0;padding-left:20px;font-size:14px;line-height:1.8}.tags{display:flex;gap:9px;flex-wrap:wrap}.tag{font-size:13px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 10px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.photo-grid figure{margin:0;min-width:0}.photo-grid img{height:180px;width:100%;object-fit:contain;background:var(--surface);border:1px solid var(--line);border-radius:10px}.photo-grid figcaption{font-size:12px;color:var(--muted);margin-top:8px}.customer-record{margin-top:32px;padding-top:26px;border-top:1px solid var(--line)}.customer-record form{display:grid;gap:16px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px}.consent input{flex-shrink:0;margin-top:4px}.saved{padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.admin-shell{display:grid;grid-template-columns:200px minmax(0,1fr);width:min(1300px,100%);margin:0 auto;min-height:calc(100vh - 75px)}.admin-nav{padding:28px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.admin-nav button{padding:12px 14px;border:0;border-radius:8px;text-align:left;background:transparent;color:var(--muted);min-height:46px}.admin-nav button.active{background:var(--fg);color:var(--surface)}.admin-main{padding:30px;min-width:0}.admin-main>h1{margin-bottom:6px}.admin-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:24px;margin-top:24px;align-items:start}.admin-layout .panel{padding:20px}.admin-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.portfolio-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}.portfolio-card img{height:160px;width:100%;object-fit:contain;background:var(--bg);border-radius:8px}.portfolio-card h3{font-size:14px;margin:12px 0 4px}.portfolio-card .muted{font-size:12px}.category-list{display:grid;gap:10px;margin-top:24px}.category-item{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.question-editor{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:10px;display:grid;gap:12px}.question-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px}.question-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.table-wrap{overflow-x:auto}.records-table{width:100%;border-collapse:collapse;font-size:13px}.records-table th,.records-table td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top}.records-table th{color:var(--muted);font-weight:500;white-space:nowrap}.records-table td.phone{white-space:nowrap}.records-table .btn{min-height:34px;font-size:12px;padding:5px 10px}.dialog-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--fg) 35%,transparent);z-index:30;overflow:auto;padding:32px 16px}.dialog{max-width:980px;margin:auto;background:var(--bg);border-radius:16px;padding:24px}.dialog .brief{padding:0;margin:24px 0;width:100%}.dialog .customer-record{display:none}.dialog .brief .brief-head .row{display:none}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:50;background:var(--fg);color:var(--surface);padding:10px 18px;border-radius:10px;font-size:13px;max-width:90%;opacity:0;pointer-events:none}#toast.visible{opacity:1}.loading{text-align:center;padding:60px 20px;color:var(--muted)}.empty{text-align:center;padding:40px 16px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.photo-picker{width:100%;margin:18px 0 0;padding:0 28px}.photo-picker .space-row{margin-bottom:12px}.photo-stage{position:relative;height:max(240px,calc(100dvh - 300px));background:var(--bg)}.photo-picker .swipe-card img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:center;visibility:hidden}.photo-picker .swipe-card img[data-ready=true]{visibility:visible}.photo-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;color:var(--muted);font-size:14px}.photo-load[hidden],.photo-load button[hidden]{display:none}.photo-picker .choices{max-width:680px;margin:16px auto 0}.photo-picker .hint{margin:8px 0}.photo-picker .swipe-card{border-radius:12px}
@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-nav{flex-direction:row;overflow-x:auto;gap:8px;border-right:0;border-bottom:1px solid var(--line);padding:12px 16px}.admin-nav button{white-space:nowrap}.admin-main{padding:24px 20px}.admin-layout{grid-template-columns:1fr}.admin-layout>.panel{max-width:none}.admin-photos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.header{padding:14px 20px}.header .brand{font-size:14px}.header nav{gap:12px;font-size:12px}.header .btn{padding:5px 8px}.picker{margin-top:18px}.space-select{gap:8px}.space-select select{min-width:140px}.swipe-card img{height:clamp(250px,calc(100dvh - 280px),440px);min-height:0}.choices{gap:12px;margin-top:16px}.choices button{font-size:17px;min-height:54px}.caption{font-size:12px;padding:12px 10px}.login{margin:8vh auto}.brief{padding:0 20px;margin-top:24px}.brief-head{display:block}.brief-head h1{font-size:25px}.brief-head>.row{margin-top:16px}.brief-grid,.form-two{grid-template-columns:1fr}.evidence{gap:22px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid img{height:150px}.admin-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-card img{height:140px}.question-row{grid-template-columns:1fr}.records-table{min-width:620px}.dialog-backdrop{padding:14px 8px}.dialog{padding:18px 12px}.panel{padding:18px}.survey legend{font-size:15px}.survey-options label{padding:10px 16px}.question-editor{padding:16px}}
@media(max-width:600px){.photo-picker{padding:0 12px;margin-top:12px}.photo-picker .space-row{margin-bottom:10px}.photo-stage{height:max(220px,calc(100dvh - 265px))}.photo-picker .swipe-card img{height:100%}.photo-picker .caption{padding:10px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-picker .choices{margin-top:12px}.photo-picker .hint{margin:7px 0}.photo-picker .swipe-card{border-radius:10px}}
@media print{body{background:white;color:black}.header,.admin-nav,.admin-main,.dialog>.spread,.brief-head .row,.customer-record,.restart,.hint,#toast{display:none!important}.dialog-backdrop{position:static;background:none;padding:0}.dialog{max-width:none;padding:0;margin:0}.brief{width:100%;max-width:none;padding:0;margin:0}.panel,figure,.evidence{break-inside:avoid}.brief-grid{grid-template-columns:1fr 1fr}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-grid img{height:120px}.panel{padding:14px}.brand{display:block}h1,h2{break-after:avoid}@page{margin:14mm}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
