/* 2026-10-23: shared controls; preserve each site's layout and brand colors. */
:root { --ui-accent:var(--g-primary,var(--portal-primary,var(--c-accent,#237451))); --ui-border:var(--g-border,var(--portal-border,var(--c-border,#dce2df))); }
body :is(.bsk_btn,.kb_btn,.btn_submit,.btn_cancel,.btn_close,.btn_b01,.btn_b02,.btn_b03,.btn_b04,.write_btn,.popup_btn_primary,.popup_btn_cancel,.sc_close_btn,.pms_btn_cert,.cate_fold_btn,.gn_news_more,.btn_cm_opt,.mobile_menu_btn) { min-height:44px; min-width:44px; box-sizing:border-box; }
body :is(.bsk_btn_icon,.btn_bo_sch,.btn_more_opt,.btn_cm_opt) { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
body :is(.bsk_btn_group,.kb_group,.kb_actions,.bsk_view_actions,.bsk_cmt_form_actions,.bsk_cmt_form_footer,.bsk_write_submit,.popup_actions,.pms_actions) { flex-wrap:wrap; gap:8px; }
body :is(.bsk_view_toplinks,.kb_toplinks) { flex-wrap:wrap; gap:8px; }
body .bsk_view_topline { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 12px; margin-bottom:12px; }
body .bsk_view_toplinks { display:flex; align-items:center; margin-left:auto; }
body #bsk_view_wrap > .bsk_view_tools { padding:20px 18px; border-top:1px solid var(--ui-border); }
body .bsk_view_tools > .bsk_view_actions { padding:0; border:0; justify-content:center; }
body .qa_list_wrap .bsk_list_main { flex:1; min-width:0; }
body .qa_list_wrap .bsk_list_meta { display:flex; flex-wrap:wrap; gap:8px; font-size:12px; margin-top:6px; }
body .qa_list_wrap .bsk_list_num { flex:0 0 28px; }
body :is(.bsk_view_tools,.kb_view_tools) :is(.bsk_share_btn,.bsk_share_copy) { min-height:44px; min-width:44px; box-sizing:border-box; }
body .bsk_share_menu { left:auto; right:0; transform:none; box-sizing:border-box; max-width:calc(100vw - 32px); }
body .bsk_share_mi { min-height:44px; box-sizing:border-box; }
body :is(.bsk_admin_opt_menu,.more_opt) :is(a,button) { min-height:44px; box-sizing:border-box; display:flex; align-items:center; gap:8px; }
body :is(.bsk_admin_opt,.btn_bo_user > li,.bo_v_com > li,.bo_vc_act) { position:relative; }
body :is(.bsk_toolbar,.mk_toolbar,.hd_toolbar,#bo_btn_top) { gap:10px; }
body :is(.bsk_toolbar,.mk_toolbar,.hd_toolbar) > * { min-width:0; }
body :is(.bsk_bulk_cate,.bsk_write_file_inner,.bsk_input_group,.pms_input_group) { max-width:100%; flex-wrap:wrap; gap:8px; }
body :is(#fwrite,#bo_w,.bsk_form,.pms_card,.new_win) :is(input,select,textarea) { max-width:100%; box-sizing:border-box; }
body :is(.bsk_write_row,.bsk_write_row > *,.bsk_write_file_inner,.pms_field,.popup_field) { min-width:0; }
body :is(.bsk_search_box,.bo_sch) { box-sizing:border-box; max-width:calc(100vw - 32px); max-height:calc(100dvh - 64px); overflow-y:auto; overscroll-behavior:contain; }
body .bsk_search_box { width:calc(100% - 32px); margin:clamp(20px,10vh,80px) auto 0; }
body .bsk_search_box :is(input,select) { min-width:0; max-width:100%; box-sizing:border-box; }
body .bsk_search_box form { flex-wrap:wrap; }
body :is(.bsk_gall_item,.bsk_gall_info,.bsk_gall_tit_link) { min-width:0; }
body .bsk_gall_cols_2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
body .bsk_gall_cols_3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
body .bsk_gall_cols_4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
body .bsk_gall_cols_5 { grid-template-columns:repeat(5,minmax(0,1fr)); }
body .bsk_gall_cols_6 { grid-template-columns:repeat(6,minmax(0,1fr)); }
body :is(a,button,input,select,textarea,summary):focus-visible { outline:2px solid var(--ui-accent); outline-offset:3px; }
body :is(button,input[type=submit],input[type=button]):disabled { cursor:not-allowed; opacity:.5; }
body :is(.pg_page,.pg_current) { display:inline-flex; align-items:center; justify-content:center; min-width:40px; min-height:44px; box-sizing:border-box; }
body :is(.bsk_btn,.kb_btn,.btn_submit,.btn_cancel,.popup_btn_primary,.popup_btn_cancel) { touch-action:manipulation; }
body #top_btn[hidden] { display:none; }
body :is(.cc_cz,.cc_sk,.pms_btn_register,#captcha_mp3,#captcha_reload) { min-height:44px; box-sizing:border-box; }
body #new_sch form { display:flex; flex-wrap:wrap; gap:8px; }
body #new_sch :is(input,select) { max-width:100%; min-width:0; box-sizing:border-box; min-height:44px; }
body #new_sch input[type=text] { flex:1 1 180px; width:180px; }
body #new_sch p { flex-basis:100%; }
body .lt_tab :is(button,a) { min-height:44px; display:inline-flex; align-items:center; box-sizing:border-box; }
body :is(.ms_reply_btn,.ms_back,.popup_close_x,.sc_close_x,.ms_header_close,.gn_row_del,.sc_del,.ms_del,.gn_btn,.gau_btn,.gau_btn_primary,.fx_btn,.nf_btn) { min-width:44px; min-height:44px; box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; }
body .qa_stat { display:inline-flex; align-items:center; padding:3px 9px; border-radius:999px; background:var(--g-surface-alt,var(--portal-surface-alt,#f2f5f3)); font-size:12px; font-weight:700; }
body .qa_stat_done { color:var(--ui-accent); }
body .qa_answer_wrap { margin:20px 0; border:1px solid var(--ui-border); border-radius:12px; overflow:hidden; }
body .sc_head_row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
body .sc_card_link { padding-right:64px; }
body #scrap .scrap_del { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
body #scrap .scrap_tit { padding-right:52px; overflow-wrap:anywhere; }
body #ctt { min-width:0; max-width:100%; box-sizing:border-box; }
body #ctt_con { min-width:0; max-width:100%; overflow-wrap:anywhere; }
body #ctt_con div { max-width:100%; box-sizing:border-box; }
body #ctt_con .ui_table_scroll { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
body #ctt_con .ui_table_scroll > table { max-width:none; }
@media(max-width:767px) {
    body :is(.bsk_gall_cols_3,.bsk_gall_cols_4,.bsk_gall_cols_5,.bsk_gall_cols_6) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
    body .bsk_write_submit > :is(a,button) { flex:1 1 110px; min-width:0; padding-right:12px; padding-left:12px; }
    body :is(.kb_view_top,.bsk_view_topline) { gap:8px; }
    body :is(.bsk_view_info,.bsk_view_stats,#bo_v_info) { overflow-wrap:anywhere; }
    body :is(.bsk_bulk_cate select,.bsk_bulk_cate .bsk_select) { min-width:0; max-width:100%; min-height:44px; }
    body .bsk_bulk_cate { display:flex; }
    body :is(.bsk_admin_opt_menu,.more_opt) { max-width:calc(100vw - 40px); }
}
@media(prefers-reduced-motion:reduce) {
    body :is(.bsk_btn,.kb_btn,.bsk_gall_item,.bsk_gall_thumb img,.gn_btn) { transition:none; }
}

/* Second UI review: readable content, consistent forms and calmer surfaces. */
:root {
    --ui-surface:var(--g-surface,var(--portal-surface,var(--c-surface,#fff)));
    --ui-text:var(--g-text,var(--portal-text,var(--c-text,#202528)));
    --ui-muted:var(--g-text-sub,var(--portal-text-sub,var(--c-text-2,#687078)));
}
body :is(.bsk_view_tit,.bo_v_tit,#bo_v_title,.mk_view_tit,.biz_view_name) { overflow-wrap:anywhere; line-height:1.45; text-wrap:pretty; }
body .bsk_view_tit { font-size:clamp(21px,2.1vw,28px); letter-spacing:-.035em; }
body :is(.bsk_view_content,#bo_v_con,.qa_answer_content) { line-height:1.85; }
body :is(.bsk_view_files,.bsk_view_links) :is(li,a,span) { min-width:0; overflow-wrap:anywhere; }
body :is(.bsk_view_nav,.bo_v_nb) a { min-width:0; overflow-wrap:anywhere; }
body :is(.bsk_list_item,.bsk_gall_item,.bsk_wz_item):focus-within { background:var(--g-surface-alt,var(--portal-surface-alt,#f7f9f8)); }
body :is(.bsk_list_tit,.bsk_wz_tit) { line-height:1.65; }
body :is(.bsk_write_card,.pms_card,.qa_answer_wrap) { border-color:var(--ui-border); }
body :is(.bsk_input,.bsk_select,.frm_input,.pms_input,.popup_input) { min-height:44px; border-radius:8px; }
body :is(input,textarea)[readonly] { background:var(--g-surface-alt,var(--portal-surface-alt,#f6f7f8)); }
body :is(.bsk_cmt_content,.cmt_contents) { line-height:1.8; overflow-wrap:anywhere; }
body :is(.bsk_empty,.empty_list,.empty_li) { color:var(--ui-muted); line-height:1.8; }
body :is(.bsk_btn,.kb_btn,.btn_submit,.btn_cancel) { font-weight:600; border-radius:8px; }
body .ui_table_scroll:focus-visible { outline:2px solid var(--ui-accent); outline-offset:3px; }
body :is(.gn_news_title,.gn_news_item a,.gn_news_month) { min-width:0; }
body .gn_news_head { flex-wrap:wrap; }
body .gn_news_add { flex-wrap:wrap; }
body .gn_news_add input { min-width:0; max-width:100%; }
@media(max-width:640px) {
    /* 16px prevents iOS Safari from zooming the page when a field receives focus. */
    body :is(#fwrite,#flogin,#fregisterform,#new_sch,.bsk_search_box,.bo_sch,.pms_card,.popup_card,.qa_answer_wrap) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { font-size:16px; }
    body :is(.bsk_view_tit,#bo_v_title) { letter-spacing:-.025em; }
    body :is(.bsk_view_info,.bsk_view_stats,.kb_actions,.kb_group) { flex-wrap:wrap; row-gap:8px; }
    body :is(.bsk_view_files li,.bsk_view_links li) { flex-wrap:wrap; }
}
