:root{font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,sans-serif;line-height:1.5;font-weight:400;color:#14261f;background-color:#f7faf8;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,sans-serif;line-height:1.5;font-weight:400;color:#14261f;background-color:#f7faf8;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px}.upload-page{min-height:100vh;min-height:100dvh;padding:0;background:radial-gradient(circle at top right,#fce7cf 0%,transparent 42%),radial-gradient(circle at bottom left,#d6f4ec 0%,transparent 38%),#f7faf8;display:flex;align-items:stretch;justify-content:center}.upload-card{width:min(390px,100%);height:min(100dvh,calc(100vw * (844 / 390)));max-height:844px;margin:0 auto;background:#fff;border-radius:24px;border:1px solid #dde9e3;box-shadow:0 12px 35px #1b433214;padding:20px 16px calc(16px + env(safe-area-inset-bottom));overflow-y:auto}.eyebrow{display:inline-flex;margin:0;padding:6px 12px;background:#ebf7f1;color:#1d6d53;border-radius:999px;font-size:.82rem;font-weight:600}.history-section{margin-top:12px}.history-title{margin:0 0 8px;color:#2d5f4c;font-size:.88rem;font-weight:700}.history-grid{display:grid;gap:8px}.history-item{display:flex;align-items:center;gap:8px}.history-open{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px;border:1px solid #d7e9df;border-radius:10px;background:#f8fcfa;width:100%;text-align:left;cursor:pointer}.history-open:hover{border-color:#bddace;background:#f3faf6}.history-open p{margin:0;color:#274738;font-size:.88rem}.history-delete{border:1px solid #d8d8d8;border-radius:8px;background:#fff;color:#5a5a5a;font-size:.78rem;font-weight:600;padding:8px 10px;cursor:pointer;white-space:nowrap}.history-delete:hover{border-color:#c6c6c6}.history-index{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;background:#deefe6;color:#1d5d43;font-size:.75rem;font-weight:700}h1{margin:16px 0 8px;font-size:clamp(1.5rem,2vw + 1rem,2.2rem);color:#123125}.upload-main-title{white-space:nowrap;font-size:clamp(1.1rem,3.8vw,1.7rem)}.description{margin:0;color:#476056;white-space:nowrap;font-size:clamp(.8rem,2.6vw,1rem)}.upload-grid{margin-top:24px;display:grid;gap:12px;grid-template-columns:1fr}.upload-box{border:1px solid #c8ddd3;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;cursor:pointer;background:#fbfefc;min-height:260px;transition:border-color .2s ease,transform .2s ease}.upload-box:active{transform:scale(.995)}.upload-box:hover{border-color:#89b9a3}.upload-header{display:flex;align-items:center;justify-content:flex-start;gap:8px}.upload-box input{display:none}.file-trigger{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:9px 12px;border-radius:10px;border:1px solid #bfd8cc;background:#fff;color:#1e4b39;font-size:.92rem;font-weight:600}.upload-title{font-weight:700;color:#173628}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:700;color:#815a0d;background:#fff4da}.status-pill.done{color:#18583e;background:#ddf5eb}.placeholder{display:grid;place-items:center;border:1px dashed #9ec7b3;border-radius:10px;color:#537166;font-size:.78rem;text-align:center;padding:6px;min-height:60px}.preview-image{width:100%;height:200px;object-fit:cover;border-radius:10px;border:1px solid #c8ddd3}.tap-hint{color:#527065;font-size:.86rem}.submit-bar{position:sticky;bottom:0;margin-top:20px;padding-top:8px;background:linear-gradient(to top,#fff 72%,#fff0);display:flex;flex-direction:column;align-items:center}.submit-button{width:100%;margin-top:20px;border:none;border-radius:12px;padding:14px;background:#1f7a5a;color:#fff;font-size:1rem;font-weight:700}.submit-button:disabled{background:#a8c6ba;cursor:not-allowed}.upload-hint-bubble{margin:0 0 8px;padding:7px 12px;border-radius:999px;background:#e9f7dd;color:#3f3f3f;font-size:1.29rem;font-weight:600}.analysis-overlay{position:fixed;inset:0;background:#12201a47;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;z-index:50;padding:20px}.analysis-dialog{width:min(330px,100%);background:#ffffffe6;border:1px solid #d3e5da;border-radius:18px;box-shadow:0 18px 44px #16352833;display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 18px}.analysis-dialog p{margin:0;color:#264334;font-size:1rem;font-weight:700;text-align:center}.analysis-spinner{width:56px;aspect-ratio:1;border-radius:999px;border:5px solid #d9efe2;border-top-color:#2e8d66;animation:spin 1s linear infinite,pulse 1.6s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{box-shadow:0 0 #2e8d6661}50%{box-shadow:0 0 0 11px #2e8d6600}}.feedback{margin:14px 0 0;font-size:.92rem}.feedback.error{color:#aa2e2e}.result-card{margin-top:16px;border:1px solid #cde2d8;border-radius:14px;background:#f8fdf9;padding:14px}.result-card-large{margin-top:20px;min-height:280px}.result-label{margin:0 0 6px;color:#2a6f54;font-size:.82rem;font-weight:700}.result-card h2{margin:0;color:#153427;font-size:1.2rem}.result-summary{margin:8px 0 0;color:#35584a;font-size:.95rem}.result-usage{margin:10px 0 0;color:#2f5e4b;font-size:.92rem}.result-confidence{margin:6px 0 0;color:#1f6f54;font-size:.9rem;font-weight:700}.result-warning{margin:10px 0 0;color:#7d3f12;font-size:.9rem}@media(max-width:768px){.upload-card{width:100%;border:none;box-shadow:none;border-radius:0;height:100dvh;max-height:none}.upload-box{min-height:230px}.preview-image{height:190px}.submit-bar{padding-bottom:env(safe-area-inset-bottom)}.submit-button{min-height:52px;font-size:1.03rem}}.file-trigger-row{display:flex;gap:8px;flex-wrap:wrap}.file-trigger-secondary{background:#eff7f3}.submit-button-secondary{margin-top:10px;background:#0f4c81}.submit-button-secondary:disabled{background:#95b1c9}.submit-button-tertiary{margin-top:10px;background:#6b7280}.submit-button-tertiary:disabled{background:#b3b7bf}.file-trigger-row{gap:10px}.file-trigger{flex:1;min-height:46px;padding:12px 16px;font-size:1rem}.placeholder{min-height:44px;padding:4px;font-size:.72rem}.placeholder{border:none;min-height:auto;padding:0;font-size:1rem;font-weight:600}.upload-header{justify-content:center}.upload-title{text-align:center}
