/* Readability and control rhythm across customer and administrator routes. */
:root{--ui-text:#252c28;--ui-secondary:#515c55;--ui-focus:#9a752e}
body{font-family:Blacktread,'Noto Sans KR',sans-serif;font-size:16px;line-height:1.65}
body :is(button,input,select,textarea){font-family:inherit;letter-spacing:inherit}
body :is(button,.primary,.outline-button,.auth-submit){line-height:1.45;font-weight:650;max-width:100%;box-sizing:border-box}
body button:not(.product-image):not(.product-gallery-thumb){min-height:44px}
body :is(.primary,.outline-button,.auth-submit,.naver-login,.kakao-login){min-height:48px;padding:12px 20px;font-size:15px;white-space:normal;overflow-wrap:anywhere;text-align:center;align-items:center;justify-content:center}
body :is(.service-help,.service-info-list,.auth-intro,.auth-bottom,.auth-phone-help,.auth-status,.member-status,.admin-source,.prototype-note p){font-size:14px;line-height:1.75;color:var(--ui-secondary)}
body :is(.service-form,.auth-form,.editor-fields,.member-address-form,.inquiry-form) label{font-size:14px;line-height:1.6}
body :is(.service-form,.auth-form,.editor-fields,.member-address-form,.inquiry-form,.admin-filters) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){font-size:16px;line-height:1.5;min-height:48px;min-width:0;max-width:100%;box-sizing:border-box;color:var(--ui-text)}
body ::placeholder{color:#66716a;opacity:1}
body :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--ui-focus);outline-offset:3px}
body :is(.panel-actions,.row-actions,.order-actions,.editor-footer,.inquiry-actions,.member-address-actions){gap:12px;flex-wrap:wrap}
body :is(.service-card,.member-content,.checkout-summary,.admin-panel,.editor-fields,.service-form,.auth-form){min-width:0}
body :is(.service-heading,.admin-heading,.member-heading,.member-section-heading,.panel-heading){gap:16px;flex-wrap:wrap}
body :is(.service-heading h1,.page-heading h1,.admin-heading h1,.auth-card h1,.member-heading h1){font-weight:750;line-height:1.3;letter-spacing:-.035em;overflow-wrap:anywhere}
body :is(.service-card h2,.member-section-heading h2){font-weight:700;line-height:1.45}
body:not(.admin-body) :is(.product .brand-name,.product .spec,.shipping-note,.product .badge,.breadcrumb,.result-count,.business-info){font-size:13px;line-height:1.6;color:var(--ui-secondary)}
body:not(.admin-body) .product h3{font-size:17px;line-height:1.5;font-weight:700}
body:not(.admin-body) .product .add{width:44px;min-width:44px;height:44px;flex-shrink:0}
body:not(.admin-body) .toolbar{gap:16px;flex-wrap:wrap;align-items:center}
body:not(.admin-body) .toolbar select{min-width:140px;max-width:100%;min-height:44px;padding-right:32px;box-sizing:border-box}
body:not(.admin-body) .toolbar label{min-width:0;display:flex;align-items:center;gap:10px}
body .password-field button{top:2px;right:4px;height:44px;min-width:52px;font-size:13px;padding:8px}
body .auth-agreements{gap:16px}
body .auth-agreements label{font-size:14px;line-height:1.7;min-width:0}
body .auth-agreements button{min-width:52px;padding:8px 4px;font-size:13px;align-self:start}
body .auth-agreements small,body .auth-inline-policy :is(p,dd){font-size:13px;line-height:1.75;color:var(--ui-secondary)}
body .auth-inline-policy{margin-block:8px}
body .auth-form>label{margin-top:12px}
body :is(.member-text-button,.member-text-link){font-size:14px;line-height:1.6}
body .member-menu a{font-size:14px;min-height:44px;box-sizing:border-box}
body .member-section-heading>span,body .member-profile dt{font-size:14px;color:var(--ui-secondary)}
body .member-orders-pagination{gap:12px;flex-wrap:wrap}
.admin-body .admin-table :is(th,td){font-size:14px;line-height:1.6}
.admin-body .admin-product b{font-size:14px;line-height:1.55}
.admin-body :is(.admin-product small,.cell-secondary,.admin-kicker,.sidebar-caption,.admin-stats small){font-size:12px;line-height:1.6}
.admin-body :is(.text-button,.row-actions button,.panel-actions button){font-size:13px;min-height:44px;padding:8px 12px}
.admin-body .admin-source{padding-inline:20px;margin-block:16px}
.admin-body .admin-filters{gap:12px;flex-wrap:wrap}
.admin-body .admin-filters>*{min-width:0;max-width:100%}
.admin-body .status-pill{font-size:12px;line-height:1.5}
.admin-body .admin-menu-group h2{font-size:12px;color:#bec5be}
.admin-body .admin-sidebar a{font-size:14px;line-height:1.5}
@media(max-width:640px){
 html.mobile-device body{font-size:15px}
 html.mobile-device body :is(.service-heading h1,.page-heading h1,.admin-heading h1,.auth-card h1,.member-heading h1){font-size:28px}
 html.mobile-device body :is(.primary,.outline-button,.auth-submit,.naver-login,.kakao-login){font-size:15px;min-height:48px;padding:12px 16px}
 html.mobile-device body:not(.admin-body) .product h3{font-size:15px;line-height:1.5;height:45px;min-height:45px}
 html.mobile-device body:not(.admin-body) :is(.product .brand-name,.product .spec,.shipping-note,.product .badge){font-size:12px}
 html.mobile-device body:not(.admin-body) .toolbar{gap:12px}
 html.mobile-device body:not(.admin-body) .toolbar label{flex:1 1 160px}
 html.mobile-device body:not(.admin-body) .toolbar label select{flex:1;min-width:0;width:100%}
 html.mobile-device body:not(.admin-body) #sort{flex:0 1 140px;width:140px;margin-left:auto}
 html.mobile-device body .auth-agreements label{gap:10px;grid-template-columns:20px minmax(0,1fr) auto}
 html.mobile-device body .auth-agreements button{min-width:48px;padding-inline:3px}
 html.mobile-device body .member-menu a{font-size:14px}
 html.mobile-device .admin-body .admin-content{padding-inline:16px}
 html.mobile-device .admin-body .admin-table :is(th,td){font-size:13px}
 html.mobile-device .admin-body .admin-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 html.mobile-device .admin-body .admin-filters>input{grid-column:1/-1}
 html.mobile-device .admin-body .admin-heading>.primary{width:100%}
 html.mobile-device body .service-pair{grid-template-columns:1fr;gap:18px}
 html.mobile-device body .auth-card{padding-inline:20px}
 html.mobile-device body .signup-page{padding-inline:0}
}

/* Explicit mobile overrides supersede the older 10/11px workbench rules. */
html.mobile-device .admin-body .admin-main .text-button{min-height:44px;font-size:13px;padding:8px 12px}
html.mobile-device .admin-body .admin-main .admin-source{font-size:13px;line-height:1.75;padding-inline:16px;color:var(--ui-secondary)}
html.mobile-device body:not(.admin-body) .sample-note{font-size:12px;line-height:1.7;color:var(--ui-secondary)}
html.desktop-device body:not(.admin-body) .sample-note{font-size:13px;line-height:1.7;color:var(--ui-secondary)}

html.mobile-device .admin-body dialog label{font-size:14px;line-height:1.6}
body :is(.service-error,.editor-error,.auth-status[role=alert]){font-size:14px;line-height:1.7}
html.mobile-device .admin-body .detail-block-heading{flex-wrap:wrap;gap:10px}
html.mobile-device .admin-body .detail-block-heading>div{display:flex;gap:8px;flex-wrap:wrap}
body .partnership-dialog .inquiry-form label{font-size:14px;line-height:1.6}body .partnership-dialog .inquiry-actions .primary{min-height:48px;font-size:15px;padding:12px 18px}
@media(max-width:640px){html.mobile-device body:not(.admin-body) #finder{grid-template-columns:minmax(0,1fr);gap:20px}html.mobile-device body:not(.admin-body) #finder form{width:100%;min-width:0}html.mobile-device body:not(.admin-body) #finder .select-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}html.mobile-device body:not(.admin-body) #finder .select-row select{width:100%;min-width:0;min-height:48px;padding-inline:10px}html.mobile-device body:not(.admin-body) #finder .select-row>button{grid-column:1/-1;width:100%}}
