html.app-body,body.app-body{background:var(--app-bg)}.app-shell{background:var(--app-bg);max-width:430px;height:100dvh;max-height:100dvh;font-family:var(--font-noto-serif),"Noto Serif KR",serif;color:var(--app-text);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.app-main{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1 1 0;min-height:0;overflow-y:auto}.app-page{padding:20px 32px}.app-page-title{letter-spacing:4px;color:var(--app-text);margin-bottom:20px;font-size:22px;font-weight:200}.app-section{margin-bottom:24px}.app-card{background:var(--app-card-surface);border:1px solid var(--app-card-border);box-shadow:var(--app-shadow-soft);border-radius:12px;padding:16px}.app-card-ink{background:var(--app-ink);color:var(--app-hanji);border:1px solid #2c2c2e4d;border-radius:12px;padding:16px}.app-accent-bar{border-top:2px solid var(--app-ink)}.app-btn{cursor:pointer;letter-spacing:1px;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:none;border-radius:8px;outline:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-family:inherit;font-size:15px;font-weight:300;transition:opacity .15s;display:inline-flex}@media (hover:hover){.app-btn:hover{opacity:.85}}.app-btn:active{opacity:.7}.app-btn:focus-visible{outline:2px solid var(--app-gold);outline-offset:2px}.app-btn:disabled{opacity:.4;cursor:not-allowed}.app-btn-primary{background:var(--app-ink);color:var(--app-hanji)}.app-btn-secondary{background:var(--app-surface);color:var(--app-text);border:1px solid var(--app-border)}.app-btn-full{width:100%}.app-input{background:var(--app-surface);border:1px solid var(--app-border);width:100%;color:var(--app-text);border-radius:8px;outline:none;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .2s}.app-input:focus{border-color:var(--app-gold)}.app-input::placeholder{color:var(--app-text-tertiary)}.app-loading{min-height:60vh;color:var(--app-text-secondary);justify-content:center;align-items:center;font-size:14px;display:flex}.app-chat-header{border-bottom:.5px solid var(--app-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.app-chat-messages{flex-direction:column;flex:1;padding:16px 16px 24px;display:flex;overflow-y:auto}@media (min-width:768px){.app-shell{max-width:768px}.app-page{padding:28px 48px}.app-chat-header{padding:14px 32px}.app-chat-messages{padding:24px 32px 32px}}
