.owned-app { width:min(100%,520px); min-height:100vh; padding:calc(env(safe-area-inset-top) + 10px) 22px calc(28px + env(safe-area-inset-bottom)); background:linear-gradient(155deg,#fff 0%,#f8f9fd 55%,#f4f6fb 100%); color:var(--ink,#182b46); }
.owned-list { display:grid; gap:18px; }
.owned-create { display:flex; flex-direction:column; align-items:center; margin:42px 0 28px; padding:16px 0; }
.owned-create .register-button { width:min(100%,260px); margin-top:0; text-align:center; text-decoration:none; }
.owned-create p,.owned-submissions p { font-size:15px; line-height:1.6; }
.owned-submissions { margin-bottom:24px; }
.owned-submissions .content-card { margin:12px 0; padding:14px; border-radius:12px; background:#f0f3fc; }
.owned-submissions h2 { margin:0; font-size:18px; }
.owned-list[hidden] { display:none; }
/* 나의 컨텐츠 / 무료 컨텐츠 group titles (2026-11-11). */
.owned-group-title { margin:8px 0 -6px; color:var(--ink, #152b45); font-size:17px; font-weight:700; }
.owned-production-list:not([hidden]) { margin-bottom:18px; }

.owned-card { padding:14px 15px 12px; border:1px solid #d5d5d5; border-radius:15px; background:#fff; }
.owned-cover-link { position:relative; display:block; width:92%; margin:0 auto; color:inherit; text-decoration:none; }
.owned-cover { display:block; width:100%; height:auto; max-height:340px; object-fit:contain; }
.owned-cover-actions { position:absolute; right:8px; bottom:8px; display:flex; align-items:center; gap:4px; }
.owned-info { display:block; padding:12px 0 0; color:inherit; text-align:center; text-decoration:none; }
.owned-info h2 { margin:0; color:#252a35; font-size:19px; line-height:1.35; font-weight:900; }
.owned-subtitle { margin:6px 0 0; color:#354e6d; font-size:14px; line-height:1.45; }
.owned-byline { margin:8px 0 0; color:#292e3b; font-size:14px; font-weight:800; }
@media (min-width:521px) { .owned-app { box-shadow:0 0 28px #0b193018; } }

/* Account controls live below the contents and creation action. */
.owned-auth { margin:8px 0 24px; padding:24px 20px; border:1px solid #e7e8ef; border-radius:22px; background:#fff; box-shadow:0 8px 24px #182b4606; }
.owned-account-heading { display:flex; align-items:center; gap:12px; }
.owned-account-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:15px; color:#ff075f; background:#fff0f5; font-size:19px; }
.owned-auth .owned-eyebrow { margin:0 0 4px; color:#8c93a3; font-size:10px; font-weight:800; letter-spacing:.14em; }
.owned-auth h2 { margin:0; font-size:19px; letter-spacing:-.04em; }
.owned-auth p { font-size:13px; line-height:1.7; overflow-wrap:anywhere; color:#657088; }
#ownedAuthStatus { margin:14px 0 20px; }
#ownedSignInMethods { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
#ownedSignInMethods[hidden],.owned-sort-bar[hidden] { display:none; }
.owned-auth button { display:flex; justify-content:center; align-items:center; gap:10px; min-height:48px; padding:10px 12px; border:1px solid #e1e4eb; border-radius:12px; font:inherit; font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap; }
#ownedGoogleSignIn { grid-column:1/-1; width:100%; color:#263248; background:#fff; font-size:15px; }
.owned-provider-mark { font:bold 20px Arial,sans-serif; }
.owned-social-google .owned-provider-mark { color:#4285f4; }
.owned-social-naver { background:#edf9f2; color:#16794c; }
.owned-social-kakao { background:#fff9d8; color:#645517; }
.owned-auth button:disabled { cursor:default; }
.owned-auth small { font-size:10px; font-weight:400; }
#ownedSignOut { width:100%; color:#657088; background:#f7f8fb; }
#ownedSignOut[hidden] { display:none; }
.owned-auth details { margin-top:18px; padding-top:16px; border-top:1px solid #edf0f5; }
.owned-auth summary { padding:5px 0; color:#657088; font-size:13px; cursor:pointer; }
.owned-auth label { display:block; margin:14px 0 10px; font-size:13px; }
.owned-auth input { display:block; width:100%; box-sizing:border-box; min-height:48px; padding:12px; margin-top:7px; border:1px solid #dce1ea; border-radius:10px; font:inherit; background:#fafbfe; }
.owned-auth form button { width:100%; color:#fff; background:var(--accent,#ff075f); border-color:transparent; }
.owned-sort-bar { display:flex; align-items:center; gap:10px; justify-content:space-between; margin:0 0 16px; }
.owned-sort-bar label { font-size:13px; color:#657088; }
.owned-sort-bar select,.owned-position select { min-height:42px; padding:8px 12px; border:1px solid #e1e4eb; border-radius:10px; font:inherit; background:#fff; color:#263248; }
.owned-position { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:14px; padding-top:12px; border-top:1px solid #f0f2f6; color:#7b8597; font-size:12px; }
.owned-cover-missing { display:grid; place-items:center; padding:20px; border-radius:10px; background:#f6f7fb; color:#8590a3; font-size:13px; }

/* 목소리편지 준비중 popup (2026-11-11). */
.owned-voice-dialog { width:min(calc(100% - 32px), 320px); padding:24px 20px; border:0; border-radius:16px; text-align:center; }
.owned-voice-dialog::backdrop { background:rgba(15, 23, 42, .45); }
.owned-voice-dialog p { margin:0 0 16px; color:var(--ink, #152b45); font-size:17px; font-weight:700; }
.owned-voice-dialog .register-button { width:100%; }
.owned-voice-close { display:block; width:100%; min-height:44px; margin-top:8px; border:0; background:none; color:#68758a; font:inherit; font-size:15px; cursor:pointer; }

/* 목소리편지 사례 (2026-11-11). */
.owned-voice-samples { margin-top:18px; }
.owned-sample-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }
.owned-sample-actions .register-button { display:flex; align-items:center; justify-content:center; min-height:44px; padding:0 10px; font-size:15px; white-space:nowrap; text-decoration:none; }

/* 내 컨텐츠 groups (2026-11-11): space between 나의 목소리편지 and 나의 카드북. */
.owned-voice-letters { margin-bottom:28px; }
.owned-cardbook-title { margin:0 0 12px; }

/* 비밀번호 컨텐츠 표시 (2026-11-11). */
.owned-lock-note { margin:6px 0 0; color:#68758a; font-size:13px; font-weight:700; }

/* 키워드로 검색 (2026-11-13 user design): pink box, handwritten placeholder; the count sits left of 보기 순서. */
.owned-search { box-sizing:border-box; display:block; width:100%; min-height:44px; margin:0 0 14px; padding:8px 14px; border:2px solid var(--red, #ff075f); border-radius:6px; background:#fff; color:#263248; font:inherit; font-size:16px; }
.owned-search::placeholder { color:#4b5563; font-family:"Poor Story","Malgun Gothic",sans-serif; font-size:17px; }
.owned-search:focus-visible { outline:none; border-color:var(--red, #ff075f); }
.owned-search[hidden],.owned-card[hidden] { display:none; }
.owned-count { font-size:15px; color:#263248; }
