/* 학위사·학위가운사 통합 관리자 — 시안(관리자목업) 스타일 그대로 (2026-10-14) */

/* 레이아웃: 학위가운사 관리자와 같은 틀. 왼쪽 250px 고정 메뉴(로고+아이콘 메뉴) + 흰 바탕 작업 영역, 회색 선 표, 파란 버튼 */
:root{
  color-scheme:light;
  --bg:#ffffff; --panel:#ffffff; --line:#dddddd; --line2:#e9e9e9; --line-strong:#aaaaaa; --th:#f7f7f7;
  --fg:#333333; --head:#444444; --muted:#777777; --faint:#999999;
  --brand:#4b65e3; --brand-dk:#3a52c9; --brand-soft:#eef1fd; --brand-line:#c3cdf6;
  --ok:#2f7d4f; --ok-bg:#e8f4ec; --warn:#a8670f; --warn-bg:#fdf3e1; --bad:#d93a2b; --bad-bg:#fdecea; --info:#4b65e3; --info-bg:#eef1fd;
  --mark:#fffbe8; --hover:#fafafa; --shadow:0 5px 20px rgba(0,0,0,.12);
  --font:Pretendard,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --serif:"Noto Serif KR","Nanum Myeongjo",serif;
}
[hidden]{display:none!important}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.num,td.n{font-variant-numeric:tabular-nums}

/* 왼쪽 메뉴 (학위가운사 #aside) */
.side{position:fixed;left:0;top:0;bottom:0;width:250px;background:#fff;box-shadow:5px 0 15px rgba(0,0,0,.03);border-right:1px solid #f1f1f1;overflow:auto;z-index:40;padding-bottom:30px}
.side .logo{margin:0;padding:42px 20px 10px;text-align:center;font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.45;color:var(--head);letter-spacing:.02em}
.side .logo small{display:block;font-family:var(--font);font-size:12px;color:var(--faint);letter-spacing:0;margin-top:6px}
.gnb{margin:0;padding:0 25px;font-size:15px}
.gnb dt{position:relative;margin:24px 0 4px;padding-left:30px;font-weight:600;color:var(--head)}
.gnb dt::before{content:"";position:absolute;left:0;top:2px;width:17px;height:17px;background-size:cover;background-repeat:no-repeat;opacity:.85}
.gnb dt.i-dash::before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAABTUlEQVR42u2Xv0oDQRDGf9EoBJukFgStDOmNL3AvkDYpYuGfKpa+gUhKS/sUNqnSXasQrRUknYUIghgLC0lgbTZwwdu5YV08xHyw3MyxM9/u7e43ewVjDHlgiZyQG3Ex6URRtA40gW0hZgKcA/fWrwEdYEWIeQB6cRw/pRIDLeBMMeACcGDtY2BfOdGu61PXlQl2HLaEXWmNx8okbw5bwvh/7+o/TVzy6ReC+MNjQ347xz5oAXvAKuAS/hEwCE38DJz+SDKBsjKukpJnWej/mbW5hkri24TdseLwLrQ7oCHNuAtcAlvWNykaPQGuEu+OgLWMgdaANtCX1vjRNi1egKqi32vW5toANoUEU+A64WuvMEYiPlGWxQvgMKRyactincCS6VMWF9XJi9hHuSrKmHII5bpx2BKG0nHq2afmejvDzM683s5J4OIX5rfwBRe5QqsL9HZkAAAAAElFTkSuQmCC)}
.gnb dt.i-apply::before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAACQUlEQVR42r3XS4iOURgH8N83MySXmoZhlHFrRpKNogYRmSkpCyliyYYxKZmiNBasxEKsLIaS7CjlkkYuGyWXhXJbUGhm4zIj96H5bJ5Pp6+ZD+P95ql/57znec/77znP/znnvLl8Pg9aWlp2oANT8NH/2SiMwQrcSh1dXV2gKhlbEKQwQTY2r5i4YBVJP28EreIv37uAFvT94/cHol2GRRhfcFSVmHQLB7AB22LsE6rxAvcwLlmt71iO2uQbP6M9iQYcwt4/Eb/F9QB0YVr0t+LmIHPacDx5zkXbH23t30S8HkfQjktoTnw70YiaJOJebB7iW7mipS9JDLuxaxAtrAuUVVwVuB+5+ZGVqktF/ASnIrI1oehWTMc3dCfzC6VYj8r/jfghDmNJkB4NUlgbKp0ZmBVozyLijbiBE6HUtsTXjHeoSyLuQVMWxHAscjuzaHxPoGziGh2kPbgyUlvmG5yP/K4Kgb0s2g6LkQnxtdhEpuIptmBGUseVg6AjC+JNWBql04rOxFc4NicFJsbz2KzEdRG3sbpo/HSgbOKqjtx+xvORElc/HiU13YDXI0F8DvMxN0ppYWyJsC+EtjjQFEdmZxY5XhnCeRb964nvLl4FUnuUBXEd7uBMHI2pXcb7ZMXy0a/JStWzsX+IeZOzynGF7C031A02JestA3FfcsEfcqkP4mxcyH7iS/xRVBreBeMrHsch01iK+AMeZBxxPa7+ax1vj9wMDBP5KLc5g+S8pKq7i18ehhVSNiE09LvOfwG2h4aGGa5xZQAAAABJRU5ErkJggg==)}
.gnb dt.i-noti::before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAB3klEQVR42sXXzYtOYRgG8N95eief42PlI8WCnZqF/AHqRFEsCEU+FhZDQ01jx8ZChqSGUKaI1EgpZkriP9CkWdtZKBJmDIXI5nl1kjPvec77Mle9dS/e676e030/9309WZ7nKiAgx2ZswBosRYYPeIVxPMUzfGuVMGshPBfHcRSrVcNrXMclTM/0JWXYjpcYTBCFlTgTuXtShc/jIVapj+UYwZWqwjdxUudwDPdbCV/AIZ3HLlwtE84x4N+hFzv/FA54kJjoGoYSOSOYVxTuR3dCgnvxip3AjQReA6ebwhlOJZ78RSEeT+QOYE7AJixOJBf/vySR24VtIQ6K/40dARtnQbgnJI7DTmFZqFEjmCrEkzX4C0PNE68viasia8TTL0gk7sMbfI+zOBXTjbjEV9Qg97dR47cBz2ehuSYCxmqSh6PTqIPRRvRInxPrPIwjzXolbrWfGAv4gXOJJ/5aElfBEL40zV4XPmJ+QoLLsatTm6y72dVigr14lJCgr0ZtDzadZ3GAjLbRLFVwB7fLPFfv34xZB/AYB1q5zN1llrQmbmFrVV/dh/1434bgp3jlDqe+JO5iHc7iXYLgJC5ibbzvtd5Ov9cYtsRfT5zti6Jfm4oLYyI+2p7Eh9yM+AVztFfyMDBB7AAAAABJRU5ErkJggg==)}
.gnb dt.i-work::before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAACTklEQVR42rXWS4iPURjH8c+YwYwoQsospNiwsSULw5/GYsolNU25bWSSS8rKggVLYWi2xmVIzdjQyDUlykaRpZ0dERYuGcbmmTq9vf95z9x+9XbO+5xz+r7nfS7nNNRqtRb0YRNmGZ/eYR26cRxHcD9nYRP6sd3E1BrtCFZgCDtxp2rhjElA4Wu0fxLbIHbkgH+avBoK74NoqwIPTwF4bontapWPJ6Pf0fbhbWHs73SCl2IxPuHpeBZOFtyKj/hSEivvsSEX/A9vClFaFVSLsLxkbHaJbTWWYagI7sXhCez8KC4UbN+TfiN240q83y2C10f1+VsBGom/M5oZ20rmzEn68xIodBTBa3DR1GhvtAvxGR24O5oFRfBLnM3I7dZwS3Od8S14hK6Y141b2IN27C+C30a9zdG5OuDNeBw1uz9sNyPtenB91D+pDobvhiueESwogdYS6EBhrL0qj78lgVNP8zCzYGvDszrQAewaC3x5HOn0Jdl1LaC7ca0KWgZeG4uHM0plS/QP4UnYsqDQUKvVvsevm+h5nPq6Kwmo2+jMLZmvcCmjgIxG6PN4Px2/vgfzsXEsaBn4dfLFVeqJmIBT0X6IvO1NqtePHHB35GGOj+Fh1OEHeJGcyQtwHidyweLSlquTUenak7p9AGfCHfum6zw+g62RSqviA1qSKjglF4HPuFc4q5uxMnZe1MypAt/AsTpjh5JAy776NGbO7YxU+VNyU20b76aaCgf2WFqSnLE5ml11r35gejRUtePO8N/aqoDI1K+4BBwda9J/7o19H7KARx4AAAAASUVORK5CYII=)}
.gnb dt.i-event::before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAB80lEQVR42uXXv2tUQRAH8E88i/OM4g9EYyuksk6IlTEeaRQEwUJRMIIGGwtNo5bBypSiBDxi/AO0EJuLmCpaWFgnoJ02wUKOM42ezRw8Xt7dvTN3psjAwuzMd/fLzM7b2TfQaDRsh+yyTbK7qZTL5Xa407iA+6i3wJTwCK+x3GqjarXaVcRXcAfDbTDDgbncVcQpGcRYRLGCQtgPYARDKfz3wDb3PIJTkZ0PqOUhvotZFGN+Bmuhf8MzjKfWLONW6Gs4GSmHDTzEXLvimsLjBCkcxBK+YhV7W5zvamCWYk1TirHnVCvia5jP2HQBfzCKB5HqtIyEbzSwCxmY+eDYlOqzibNMyj58ipQV29TLbKS0FaaACSymIz7aoRCLOYq1E+ZYVsQ3cKjP98aPLOKJ+AT6KSt4kSa+iPN9Jh5qEifPeP0/XNHrvWgSYzG21iS6lJ/4mND395O4hpf4hfepBjKOPbga93xPid/idob9TQw4jEu9fgicw3Qb/3Rgev4CKeEpZjJ8M+Er/Qtx3rR/zmlre7RJ4jyvvjqqoT+JIWz1HOsbWVG+iwotdEh3BccxGbYT8UDolObf0as3ES/G/HmHDa6n5pM503wzPsfM4qrgXvTeXslGPKcqnb7jOXyJS2Fwi6S1uGxepR0DO+5PYucR/wXsWFx0YDS4gQAAAABJRU5ErkJggg==)}
.gnb dt.i-pic::before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAABt0lEQVR42sXXP2sUQRjH8U+WJdoEBEEs1FRJpZVvICCiqSxsbKwkFxJEUBAEjQqSaxQMBoKaYJU6aKNVAnkDISgWYmFABWMCGguVU+5s5mA5bu/2kt31B8vMPvPnyzz7zMyzfZVKBQYwiSFEaMhXfWHOD3iCrTg0XMJlHFGsvqCOahygD5Wjw5hGLUJV+boV4cB/AO+PUMtxwt8Z+9XyiuBFDOMgTmKl24AoB+hLXMR7/MQaTuF10eCbKfb7RYO/ptg3iwafTbGfKRo8EwIrqRFc6zQo7gGwHIKmVQN4h3ls4AQudJssK/hZOFrP4XlKn7Fe3JTV1TdC+QKzeZw0WcBz2Eq8X8F6GeA7bWwjez1qu4EfYbuNfQejRYEbuNuhfQX3Uto+7gU8h29dxt/GaottAsdwfjfgOqYyeu00PoX6OB6H+hKe9rqPZzOstqk/GMShkFMlNR5i4WiWFf8NLuxF9TbQpkazunoGP3LMSt62uzqjkPM2tY3rBeRYVbxq/cb9LS47nrJ3d6tGeDYStv4Y30NgCOWbErLMX1GH1KVITUdYwFV8LgG4GRb6IE7ct/tK+mmbh39WtVa5+xtFBQAAAABJRU5ErkJggg==)}
.gnb dt.i-out::before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAACWklEQVR42r3XT4iOURTH8Y8hFtgo5F8WM000oigWQwoJ+RvCgggjyUZhI2wUioUkzQILaShR/gtFJBRKKZLyn2RBNkRjc+l2u+/7Ps/M5NRbzz33nvvtOec+5/7ebu3t7VpbW5W0xWhDHVbhWJnglpYWdcrb8AgKRzGq7CYdAY/MxDX9D3BdV+xTK2AWVqBP5GuvEdMLyzCv2qIeVebOYH543oAJBV/mAqaG52uYiV9F3rg77kVQGI+VBaCLIihMw2P0LgK+GECp/SoAzq1pwpVa4O2Yngm+juMFwGfDL7Vm7K4ErseOTNCpkLKitgBHMv6tGJ0Db8pk4DqWdOCTW43zGf/mFNwPyzP1atFxW4NviW8ZhsXgyeibLDqMl50Af8LBzBczJQY3ZwLbSkAqNZXcHhNj8Ihk8iMeVNjsbcb3psLaJ3ie6fX/wPXJ5Cv8rLLZrmh8AHeqZON1Mh4at8y0df6ukdpt4Q7ujmc11v7O1Pkf8D0aoskBBer6omD9+yfjL3Gq0zo0oFHnbVBGJDyPwfczQXO7ADwHPRPf/Rh8MxO0tgvAuQZ0I011eoM0VujdRW0LxiW+u3iY9ur9meCdoc2VtdnYk/Hvy10SV4PqSO1E3NwL2Hqcy/iv4XSl+3gjvmaC9gYlMaMKcGo4OIcycz+wrprmehdOc+6wjcGl0Pxv40P0zTdjSA1J9LKW2LuFSQGek0YDsbBE6mficlF5exuD8agTp/pp+Ndxuayu/oSxQYG8KwH8HBRpU+aCKKSrY811KqR/adDXgyPh8D3U+wFO/m0QtewPvvVwgzA7Hn4AAAAASUVORK5CYII=)}
.gnb dt.i-out{color:var(--faint);font-weight:500}
.gnb dd{position:relative;margin:0;padding-left:30px;line-height:2.1}
.gnb dd::before{content:"";position:absolute;left:7px;top:13px;width:5px;height:5px;background:#777}
.gnb a{display:inline-flex;align-items:center;gap:6px;color:inherit}
.gnb a:hover{color:var(--brand)}
.gnb a.on{color:var(--brand);font-weight:600}
.gnb dt a.on{color:var(--brand)}
.gnb .cnt{font-size:11px;min-width:18px;padding:0 5px;border-radius:9px;background:var(--bad);color:#fff;text-align:center;line-height:17px;font-weight:500}
.side .info{margin-top:28px;padding:18px 25px 0;border-top:5px solid #f1f1f1;color:#666;font-size:12.5px;line-height:1.8}
.side .info a{display:block;color:#666}
.side .info a:hover{color:var(--brand)}
.mtop{display:none}
.menu-btn{border:1px solid var(--line);background:#fff;border-radius:5px;width:36px;height:32px;cursor:pointer}
.menu-btn i{display:block;width:14px;height:2px;background:var(--head);margin:3px auto}

/* 작업 영역 (#admin_container) */
.main{margin-left:250px;padding:0 30px 70px;min-width:0}
.mockbar{margin-left:250px;background:#fff8e6;color:#9a6a12;font-size:12.5px;padding:7px 30px;border-bottom:1px solid #f3e3bd}
.crumb{display:none}
.ptitle{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:40px;margin-bottom:18px}
.ptitle h2{margin:0;font-size:22px;font-weight:700;color:var(--head);letter-spacing:-.01em}
.ptitle .desc{font-size:13px;color:var(--faint);margin-top:4px}
.ptitle .acts{display:flex;gap:6px;flex-wrap:wrap}

/* 사이트 탭 */
.stabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 20px}
.stabs button{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 16px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:500;font-size:14px;color:var(--muted);border-radius:18px}
.stabs button:hover{border-color:var(--faint);color:var(--fg)}
.stabs button.on{background:var(--brand);border-color:var(--brand);color:#fff}
.stabs button:disabled{cursor:default;opacity:.5}
.stabs button em{font-style:normal;font-size:12px;opacity:.8;font-variant-numeric:tabular-nums}
.stabs .na{font-size:11px}
.dA,.dB{display:inline-block;width:8px;height:8px;border-radius:50%;background:#8a6b4c;flex:none}
.dB{background:#014da2}
.stabs button.on .dA,.stabs button.on .dB{box-shadow:0 0 0 2px #fff}
.sbadge{display:inline-flex;align-items:center;gap:6px;font-size:13px;border:1px solid var(--line);padding:3px 12px;border-radius:14px;margin-bottom:16px;color:var(--muted)}

/* 검색 */
.sbox{border:1px solid var(--line);border-radius:6px;margin-bottom:22px;background:#fff}
.sbox table{width:100%;border-collapse:collapse}
.sbox th{width:110px;text-align:left;font-weight:500;padding:10px 16px;border-bottom:1px solid var(--line2);white-space:nowrap;color:#555}
.sbox td{padding:8px 16px 8px 0;border-bottom:1px solid var(--line2)}
.sbox tr:last-child th,.sbox tr:last-child td{border-bottom:0}
.sbox .row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.sbox .foot{display:flex;justify-content:center;gap:6px;padding:12px;border-top:1px solid var(--line2)}
.inp,.sel,textarea.inp{height:32px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 10px;min-width:0}
textarea.inp{height:auto;padding:8px 10px;resize:vertical;line-height:1.6}
.inp:focus,.sel:focus,textarea.inp:focus{outline:2px solid var(--brand-line);outline-offset:0;border-color:var(--brand)}
.inp.w80{width:84px}.inp.w120{width:120px}.inp.w140{width:150px}.inp.w200{width:200px}.inp.w260{width:280px}.inp.full{width:100%}
.qd{display:inline-flex;gap:4px}
.qd button{border:1px solid var(--line);background:#eee;padding:0 10px;height:30px;cursor:pointer;font-size:13px;color:#444;border-radius:6px}
.qd button:hover{background:#e4e4e4}
.chk{display:inline-flex;align-items:center;gap:5px;margin-right:12px;cursor:pointer}
input[type=checkbox],input[type=radio]{accent-color:var(--brand);width:15px;height:15px;margin:0}

/* 버튼 (btn_medium_blue_bg / def_btn) */
.btn{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 15px;border:1px solid var(--line);border-radius:5px;background:#eee;cursor:pointer;font-size:14px;font-weight:500;white-space:nowrap;color:#444}
.btn:hover{background:#e4e4e4}
.btn:focus-visible,.gnb a:focus-visible,.pg button:focus-visible,.stabs button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.btn.pri,.btn.dk{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.pri:hover,.btn.dk:hover{background:var(--brand-dk);border-color:var(--brand-dk)}
.btn.sm{height:28px;padding:0 10px;font-size:13px}
.btn.lg{height:40px;padding:0 26px;font-size:15px}
.btn.red{background:#fff;color:var(--bad);border-color:#f0b4ae}
.btn.red:hover{background:var(--bad-bg)}
.btn.xl{background:#fff;border-color:#9cc9ad;color:#1f6e43}
.btn.xl:hover{background:#eef7f1}
.btn .x{display:inline-block;width:15px;height:15px;line-height:15px;text-align:center;font-size:9.5px;font-weight:700;background:#1f6e43;color:#fff;border-radius:2px}

/* 목록 (def_list) */
.lbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.lbar .total{font-size:14px;color:var(--head)}
.lbar .total b{color:var(--brand)}
.lbar .r{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.bulk{display:flex;gap:5px;flex-wrap:wrap;align-items:center;padding:8px 0}
.bulk .lab{font-size:13px;color:var(--faint);margin-right:4px}
.tw{overflow-x:auto;background:#fff;border-top:1px solid var(--line-strong)}
table.lst{width:100%;border-collapse:collapse;min-width:820px}
table.lst th{font-weight:500;padding:13px 6px;border-bottom:1px solid var(--line-strong);white-space:nowrap;color:#555}
table.lst td{padding:10px 6px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle;white-space:nowrap}
table.lst td.l{text-align:left;padding-left:15px;white-space:normal;min-width:160px}
table.lst tbody tr:hover td{background:var(--hover)}
table.lst tr.mk td{background:var(--mark)}
table.lst a.go{color:var(--fg)}
table.lst a.go:hover{text-decoration:underline;color:var(--brand)}
table.lst .memo{color:var(--muted);font-size:13px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle}
table.lst .pin{display:inline-block;font-size:11px;color:#b7791f;border:1px solid #e3c27e;border-radius:3px;padding:0 4px;line-height:16px}
table.lst .sub{display:block;font-size:12px;color:var(--faint)}
.thumb{height:60px;width:auto;max-width:80px;object-fit:cover;display:block;margin:0 auto}
.st{display:inline-block;min-width:60px;padding:2px 8px;border-radius:4px;font-size:12px;line-height:18px;font-weight:500}
.st.s0{background:#eee;color:#777}
.st.s1{background:var(--brand);color:#fff}
.st.s2{background:#666;color:#fff}
.st.s3{background:var(--ok-bg);color:var(--ok)}
.st.s4{background:var(--bad-bg);color:var(--bad)}
.tag{display:inline-block;font-size:11.5px;line-height:17px;padding:0 6px;border:1px solid var(--line);color:var(--muted);border-radius:3px;margin-right:4px;vertical-align:1px;background:#fff}
.tog{position:relative;display:inline-block;width:36px;height:20px;border-radius:10px;background:#d4d4d4;cursor:pointer;border:0;vertical-align:middle}
.tog::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s}
.tog.on{background:var(--brand)}
.tog.on::after{left:19px}
.pg{display:flex;justify-content:center;gap:14px;margin:22px 0 0;flex-wrap:wrap}
.pg button{min-width:20px;height:30px;border:0;background:none;cursor:pointer;font-size:17px;color:var(--faint);padding:0 3px}
.pg button:hover{color:#333}
.pg button.on{color:#333;font-weight:600;border-bottom:1px solid #333}
.pg button:disabled{opacity:.35;cursor:default}
.sumline{margin-top:10px;text-align:right;font-size:13px;color:var(--muted)}
.sumline b{color:var(--head);font-size:15px}

/* 상세/입력 폼 */
.ftab{width:100%;border-collapse:collapse;background:#fff;border-top:1px solid var(--line-strong)}
.ftab th{width:140px;background:var(--th);text-align:left;font-weight:500;padding:11px 15px;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap;color:#555}
.ftab td{padding:9px 15px;border-bottom:1px solid var(--line);vertical-align:top}
.sec-h{display:flex;justify-content:space-between;align-items:center;margin:28px 0 10px}
.sec-h h3{margin:0;font-size:16px;font-weight:600;color:var(--head)}
.sec-h .hint{font-size:12.5px;color:var(--faint)}
.btnrow{display:flex;justify-content:center;gap:6px;margin-top:24px;flex-wrap:wrap}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.file{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1px solid var(--line);border-radius:4px;font-size:13px}
.note{font-size:12.5px;color:var(--faint);margin-top:4px}

/* 홈 */
.todo{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));border:1px solid var(--line);border-radius:6px;margin-bottom:22px}
.todo a{padding:16px 18px;border-right:1px solid var(--line2);display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.todo a:last-child{border-right:0}
.todo a:hover{background:var(--hover)}
.todo span{font-size:13.5px;color:var(--muted)}
.todo b{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--head)}
.todo b.hot{color:var(--brand)}
.dgrid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px}
.box{background:#fff;border:1px solid var(--line);border-radius:6px}
.box>h3{margin:0;padding:13px 16px;font-size:15px;font-weight:600;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--head)}
.box>h3 a{font-size:12.5px;font-weight:400;color:var(--faint)}
.box table{width:100%;border-collapse:collapse}
.box td{padding:9px 16px;border-bottom:1px solid var(--line2);font-size:13.5px;white-space:nowrap}
.box tr:last-child td{border-bottom:0}
.box td.l{white-space:normal}
.box td .sub{color:var(--faint);font-size:12px}
.sum2 td{font-variant-numeric:tabular-nums}
.sum2 a{color:var(--fg)}
.sum2 a:hover{color:var(--brand);text-decoration:underline}

/* 문자 */
.smsw{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
.phone{background:#fff;border:1px solid var(--line);border-radius:6px;padding:16px}
.phone .scr{background:#f4f5f8;border-radius:16px;padding:18px 12px;min-height:260px}
.phone .bub{background:#fff;border-radius:12px 12px 12px 3px;padding:10px 12px;white-space:pre-wrap;word-break:break-all;font-size:13px;line-height:1.6;max-width:92%;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.phone .from{font-size:12px;color:var(--faint);margin-bottom:8px}
.bytes{display:flex;justify-content:space-between;font-size:12.5px;color:var(--faint);margin-top:4px}
.bytes b{color:var(--fg)}
.bytes .k{padding:0 6px;border-radius:3px;font-weight:600;font-size:11px}
.bytes .k.sms{background:var(--brand-soft);color:var(--brand)}
.bytes .k.lms{background:var(--warn-bg);color:var(--warn)}
.presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pre{border:1px solid var(--line);border-radius:6px;background:#fff;padding:12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.pre .t{font-weight:600;font-size:13.5px;display:flex;justify-content:space-between;gap:6px;color:var(--head)}
.pre .t em{font-style:normal;font-size:11px;color:var(--faint);flex:none;font-weight:400}
.pre .b{font-size:12.5px;color:var(--muted);white-space:pre-wrap;line-height:1.55;max-height:6.2em;overflow:hidden}
.pre .a{display:flex;gap:4px;margin-top:auto}
.rcpt{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.rcpt span{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:#f7f7f7;padding:2px 8px;border-radius:14px;font-size:12.5px;font-variant-numeric:tabular-nums}
.rcpt span button{border:0;background:none;cursor:pointer;color:var(--faint);padding:0;font-size:13px}

/* 갤러리 */
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.gi{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.gi img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;max-width:100%}
.gi .m{padding:10px 12px 6px;display:flex;flex-direction:column;gap:2px}
.gi .m b{font-weight:600;font-size:13.5px;color:var(--head)}
.gi .m span{font-size:12px;color:var(--faint)}
.gi .a{display:flex;gap:4px;padding:0 12px 12px;align-items:center}
.gi .a label{margin-right:auto}

/* 상담 */
.qbox{background:#fff;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);padding:16px 4px}
.qbox .h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line2);padding-bottom:12px;margin-bottom:14px}
.qbox .h b{font-size:17px;font-weight:600;color:var(--head)}
.qbox .h span{font-size:13px;color:var(--faint)}
.qbox .c{white-space:pre-wrap;line-height:1.8}
.editor{border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden}
.editor .tb{display:flex;gap:2px;flex-wrap:wrap;padding:6px;border-bottom:1px solid var(--line);background:#f7f7f7}
.editor .tb button{border:1px solid transparent;background:none;min-width:28px;height:26px;cursor:pointer;font-size:13px;border-radius:4px;color:#444}
.editor .tb button:hover{border-color:var(--line);background:#fff}
.editor .tb i{width:1px;background:var(--line);margin:3px 4px}
.editor textarea{width:100%;border:0;min-height:190px;padding:12px 14px;resize:vertical;background:#fff;line-height:1.8}
.editor textarea:focus{outline:none}

/* 정렬·진열 순서 */
.thsort{border:0;background:none;padding:0;font:inherit;font-weight:500;color:#555;cursor:pointer;white-space:nowrap}
.thsort:hover,.thsort.on{color:var(--brand)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.sortnote{font-size:13px;color:#8a5a00;background:#fff8e6;border:1px solid #f3e3bd;border-radius:6px;padding:8px 12px;margin:4px 0 6px}
.sortnote b{font-weight:600}.sortnote a{color:var(--brand);text-decoration:underline}
.star{border:0;background:none;font-size:18px;line-height:1;cursor:pointer;color:#d4d4d4;padding:2px 4px}
.star.on{color:#f0a800}
.oebar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.oebar .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.seg button{border:0;background:#fff;padding:0 14px;height:32px;cursor:pointer;font-size:13.5px;color:var(--muted)}
.seg button+button{border-left:1px solid var(--line)}
.seg button.on{background:var(--brand);color:#fff}
.dirty{font-size:13px;color:#b45309;font-weight:500}
.oewrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
table.oe td{padding:6px}
table.oe tr{cursor:grab}
table.oe tr.off td{color:var(--faint)}
table.oe tr.off img{opacity:.45}
table.oe tr.pinned td{background:#f6f8ff}
table.oe tr.dragging td{opacity:.4}
table.oe tr.dropto td{box-shadow:inset 0 2px 0 var(--brand)}
.grip{color:#bbb;font-size:18px;cursor:grab;user-select:none}
.oenum{width:56px;height:28px;text-align:center;padding:0 4px}
.mv{display:inline-flex;gap:3px}
.mv button{width:30px;height:28px;border:1px solid var(--line);background:#fff;border-radius:4px;cursor:pointer;color:#555;font-size:12px}
.mv button:hover{border-color:var(--brand);color:var(--brand)}
.oeprev{border:1px solid var(--line);border-radius:6px;padding:14px;position:sticky;top:16px}
.oeprev h4{margin:0 0 10px;font-size:14px;font-weight:600;color:var(--head)}
.pv{display:grid;grid-template-columns:repeat(var(--c,3),minmax(0,1fr));gap:8px}
.pv div{display:flex;flex-direction:column;gap:3px;min-width:0}
.pv img{width:100%;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--line2);max-width:100%}
.pv span{font-size:11px;color:var(--muted);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
@media (max-width:1200px){.oewrap{grid-template-columns:minmax(0,1fr)}.oeprev{position:static}}
/* 화면 상단 안내 문구 */
.notice{border:1px solid #dfe4f7;background:#f7f8fd;border-radius:6px;padding:12px 16px;margin:0 0 20px;font-size:13.5px;line-height:1.75;color:#444}
.notice p{margin:0;padding-left:16px;text-indent:-16px}
.notice p::before{content:"※ ";color:var(--brand);font-weight:600}
.notice b{color:var(--head);font-weight:600}
/* 모달, 토스트, 안내 */
.dim{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:70px 16px 16px;overflow:auto}
.modal{background:#fff;width:min(560px,100%);border-top:4px solid var(--brand);border-radius:6px;box-shadow:var(--shadow);overflow:hidden}
.modal.w{width:min(760px,100%)}
.modal h3{margin:0;padding:15px 18px;border-bottom:1px solid var(--line);font-size:17px;font-weight:600;display:flex;justify-content:space-between;align-items:center;color:var(--head)}
.modal h3 button{border:0;background:none;font-size:20px;cursor:pointer;color:var(--faint);line-height:1}
.modal .bd{padding:16px 18px}
.modal .ft{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:6px}
.toast{position:fixed;left:calc(50% + 125px);bottom:calc(28px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:#333;color:#fff;padding:11px 18px;border-radius:6px;font-size:14px;z-index:70;box-shadow:var(--shadow);max-width:calc(100% - 32px)}
.na-box{border:1px solid var(--line);border-radius:6px;padding:46px 20px;text-align:center;color:var(--muted)}
.na-box b{display:block;color:var(--head);font-size:15px;margin-bottom:6px}

/* 읽지 않은 글 */
.lst tr.ur .go{font-weight:700}
.newb{display:inline-block;font-size:10px;line-height:15px;min-width:15px;padding:0 3px;border-radius:8px;background:var(--bad);color:#fff;text-align:center;font-weight:700;vertical-align:2px;margin-left:3px}
.stabs button em.ur{background:var(--bad);color:#fff;opacity:1;border-radius:9px;padding:0 6px;line-height:17px;font-size:11.5px}
/* 문자 발송 팝업 창: 메뉴·안내줄 없이 발송 화면만 */
.pop .side,.pop .mtop,.pop .mockbar,.pop .crumb{display:none!important}
.pop .main{margin-left:0;padding:0 20px 30px}
@media (max-width:1200px){.presets{grid-template-columns:repeat(2,minmax(0,1fr))}.smsw{grid-template-columns:minmax(0,1fr)}.dgrid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){
  .side{transform:translateX(-100%);transition:transform .2s;box-shadow:var(--shadow);top:0}
  body.nav .side{transform:none}
  .mtop{display:flex;align-items:center;gap:12px;position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:#fff;border-bottom:1px solid var(--line);padding:10px 16px}
  .mtop b{font-family:var(--serif);font-weight:400;font-size:16px;color:var(--head)}
  .main{margin-left:0;padding:0 16px 60px}
  .mockbar{margin-left:0;padding:7px 16px}
  .ptitle{padding-top:22px}
  .cols{grid-template-columns:minmax(0,1fr)}
  .sbox th{width:84px;padding:9px 10px}
  .ftab th{width:100px;padding:9px 10px}
  .todo{grid-template-columns:repeat(2,minmax(0,1fr))}
  .todo a{border-bottom:1px solid var(--line2)}
  .toast{left:50%}
}
/* 관리자 홈 모바일: 표 칸을 좌우로 늘어놓지 않고 2줄(위아래) 카드로 쌓는다 */
@media (max-width:640px){
  .box table,.box tbody{display:block}
  .box tr{display:grid;gap:3px 12px;padding:11px 14px;border-bottom:1px solid var(--line2);align-items:center}
  .box tr:last-child{border-bottom:0}
  .box td{display:block;padding:0;border:0!important;white-space:normal;min-width:0}
  /* 최근 신청: 1줄 [구분 이름 | 상태], 2줄 [대학 학위 | 날짜] */
  .rc tr{grid-template-columns:minmax(0,1fr) auto}
  .rc td:nth-child(1){grid-area:1/1}.rc td:nth-child(3){grid-area:1/2;justify-self:end}
  .rc td:nth-child(2){grid-area:2/1;color:var(--muted)}.rc td:nth-child(4){grid-area:2/2;justify-self:end}
  /* 답변대기 상담: 1줄 제목, 2줄 [작성자 | 날짜] */
  .cq tr{grid-template-columns:minmax(0,1fr) auto}
  .cq td:nth-child(1){grid-column:1/-1}
  .cq td:nth-child(3){justify-self:end}
  /* 최근 결제: 1줄 [이름 | 금액], 2줄 날짜 */
  .pl tr{grid-template-columns:minmax(0,1fr) auto}
  .pl td:nth-child(3){grid-column:1/-1}
  /* 두 사이트 처리할 일: 사이트명 한 줄 + 항목 3칸씩 */
  .sum2 tr{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px}
  .sum2 td:first-child{grid-column:1/-1;margin-bottom:2px}
  .box tr:has(td[colspan]),.box tr:has(td:only-child){grid-template-columns:minmax(0,1fr)}
}
/* 2026-10-16 모바일 점검: 입력 표(상품 수정·사진 올리기 등)도 좁은 화면에서는 항목 이름 아래 입력칸 (화면 밖으로 넘치지 않게) */
@media (max-width:560px){.ftab,.ftab tbody,.ftab tr,.ftab th,.ftab td{display:block;width:100%}.ftab th{border-bottom:0;padding:10px 12px 2px;white-space:normal}.ftab td{padding:4px 12px 10px}.ftab input[type=file]{max-width:100%}.ftab .tox-tinymce{max-width:100%}}
@media (max-width:560px){.presets{grid-template-columns:minmax(0,1fr)}.sbox table,.sbox tbody,.sbox tr,.sbox th,.sbox td{display:block;width:100%}.sbox th{border-bottom:0;padding:10px 12px 2px}.sbox td{padding:4px 12px 10px}.inp.w260,.inp.w200{width:100%}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
