/*
 * Project-owned additions to the patient surface.
 *
 * public/user-assets/css/styles.css is vendored publishing output — it is replaced
 * wholesale on every drop from the galderma_nemluvio_user repo, so nothing the project
 * writes may live inside it (.claude/rules/publishing-assets.md: overrides belong in
 * public/css/). This file is loaded with @css immediately AFTER the publishing sheet in
 * every view that pushes it, so these rules win the cascade.
 *
 * Loaded by: layouts/user/base.blade.php (every shell screen),
 * user/auth/login-phone.blade.php, test/ui-primitives.blade.php (guard "user").
 */

/* Publishing draws no logout control (B21a). The form is this project's (B9: sign-out
   must be a POST), sits below the 100dvh screen, and only needs centring — the button
   itself takes the sheet's .btn-link. */
#user-logout {
    display: flex;
    justify-content: center;
    padding: 1.2rem 0;
}

/* The sheet fixes .container at height:100dvh, and since f2ef2ff both footers are
   placed from the bottom edge of .wrap (position:relative + translateY(-100%), loaded
   after it). On a screen taller than the phone the content overflows the fixed box,
   .wrap stays one screen tall, and the footer is drawn across the middle of the form.
   Publishing avoids that by dropping the class on its long pages, which loses the
   full-height gray column on a short one; a minimum height gives both. */
.container.reserve {
    height: auto;
    min-height: 100dvh;
}

/* Content render partial (B29) — the shared read-only chrome for Article,
   Video, PDF and Cardnews. Order from figma con-002 / con-005:
   제목 → 이미지 → 등록일 → 메디컬 코드 → 본문. */
.content__title {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
}

.content__thumbnail img {
    width: 100%;
    height: auto;
}

.content__meta {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    color: #888;
    font-size: 0.8125rem;
}

.content__medical-code {
    color: #aaa;
}

.content__body {
    margin-top: 16px;
    line-height: 1.6;
}

/* The editor emits ordered/unordered lists and <i>; the browser reset in the publishing
   sheet strips list markers and italics, so restore them for editor output only —
   same three rules the admin sheet already carries. */
.ck-content ol {
    list-style: decimal !important;
}

.ck-content li {
    padding: initial !important;
    margin: initial !important;
    list-style: inherit !important;
}

.ck-content i,
.ck-content em {
    font-style: italic;
}

/* 우클릭 방지 (F7 · 2.2 서비스 정책 row 13) — DETERRENCE, not protection. Raises the
   effort of a casual long-press or right-click save; it does not prevent one, and
   must never be described as if it did. The matching contextmenu/dragstart
   suppression is in public/js/user/content.js, and the files themselves are behind
   short-lived signed URLs (B17). Scoped to the detail and the list (F7a: the patient
   detail no longer renders through B29's component), so nothing else on the patient
   surface loses text selection. */
#content img,
#content video,
#content-list img {
    -webkit-touch-callout: none;
    user-select: none;
    -webkit-user-select: none;
}

/* A read-only field (이름 from Kakao, the 주소 찾기 results) takes the look the
   publishing sheet gives `input:disabled`. Publishing draws these `disabled`, but a
   disabled input is not submitted, and these are part of the form. */
.input-field[readonly] {
    background: #E6E6E6;
}

/* …except a field that is read-only because a picker or a popup fills it (환급 신청's
   병원명 and two dates): publishing draws those as ordinary inputs, and gray would
   read as "cannot be set". */
.input-field[readonly][data-chooser] {
    background: transparent;
}

/* The 주소 찾기 popup (F5b). Publishing draws no address layer in its current
   pop.html, so this one is the project's: Daum's lookup embedded edge to edge in the
   sheet's own .pop__inner. */
#pop_address .pop__inner {
    padding-top: 0;
    overflow: hidden;
}

#address-search-layer {
    height: 46rem;
    margin: 0 -1.6rem;
}

/* A picker anchor (F9a). Publishing draws a date or a time as text plus a [선택]
   button; the project's picker (B14) needs an <input> to open against. The input
   stays in the DOM where the picker should appear and is taken out of sight — the
   button opens it, the text beside the label is what the patient reads. Not
   display:none: the picker positions itself from the input's box. */
[data-picker-anchor] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

/* The card buttons on 물품 신청 내역 / 환급 신청 내역 (.btn-default-layout). The sheet
   pads them 4.2rem a side, which at 360px leaves a two-button row about 5rem of text
   each — "신청 수정" breaks onto two lines. Narrower padding and no wrapping; the
   sheet's own width, height, colour and radius stand. */
.btn-default-wrap .btn-default-layout {
    padding-right: 1rem;
    padding-left: 1rem;
    white-space: nowrap;
}

/* …and where one of them is a link rather than publishing's <button> (신청 수정, 배송
   조회 — navigation, so an <a>), centre its label the way a button centres its own. */
.btn-default-wrap a.btn-default-layout {
    display: flex;
    align-items: center;
    justify-content: center;
}

