*{box-sizing:border-box;margin:0}
:root{--fg:#233342;--primary:#18775e;--line:#e2e8ee;--muted:#68788a;--bg:#f6f8fa}
body{font-family:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}
button{font:inherit;cursor:pointer}
.hidden{display:none!important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 16px;border-radius:8px;font-size:14px;font-weight:550;white-space:nowrap;border:0;text-decoration:none}
.btn.primary{background:var(--primary);color:#fff}
.btn.outline{border:1px solid #d8e2e7;background:#fff;color:#33495a}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.text-button{border:0;background:none;color:#5f7282;font-size:13px;padding:6px}
.ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.spin{animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.login{min-height:100vh;display:grid;place-items:center;padding:16px}
.login-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px 28px;display:flex;flex-direction:column;gap:12px;width:min(340px,100%);align-items:stretch;text-align:center}
.login-box img{margin:0 auto}.login-box h1{font-size:20px}
.login-box input{height:44px;border:1px solid #dee6eb;border-radius:8px;padding:0 12px;font-size:16px}
.err{color:#c34040;font-size:13px;min-height:18px}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:#fff;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700;color:var(--fg);text-decoration:none}
.brand span{font-size:13px;font-weight:400;color:var(--muted)}
main{max-width:1000px;margin:0 auto;padding:28px 32px 60px}
.heading h1{font-size:24px;letter-spacing:-.5px}.heading p{color:var(--muted);font-size:13px;margin-top:6px;line-height:1.5}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:20px 0 12px}
.seg{display:inline-flex;border:1px solid #dfe5ea;border-radius:9px;overflow:hidden;background:#fff}
.seg button{border:0;background:#fff;padding:8px 14px;font-size:13px;color:#5f7282}
.seg button.on{background:var(--primary);color:#fff;font-weight:600}
.note{font-size:12px;color:#8a99a6;line-height:1.5}
.panel{border:1px solid var(--line);border-radius:14px;background:#fff}
.empty{padding:28px;color:var(--muted);font-size:14px}
.rw-row{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:16px 22px;border-bottom:1px solid #f1f4f6}
.rw-row:last-child{border-bottom:0}
.rw-img{width:72px;height:72px;border-radius:10px;object-fit:cover;background:#f3f6f8;border:1px solid #eef2f5}
.rw-body{display:flex;flex-direction:column;gap:8px;min-width:0}
.rw-top b{display:block;font-size:14px;word-break:break-all}.rw-top b a{color:inherit;text-decoration:none}.rw-top b a:hover{text-decoration:underline}
.rw-top small{color:#8a99a6;font-size:12px}
.chip{display:inline-block;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px;background:#eef5f2;color:#21866a;margin-right:4px}
.chip.sp{background:#fff4e0;color:#b26a00}
.rw-line{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rw-stars{display:flex;gap:2px}
.rw-star{border:0;background:none;padding:2px;color:#d3dbe1}.rw-star .ic{width:22px;height:22px;fill:currentColor;stroke:none}
.rw-star.on{color:#f2b01e}
.rw-sp{display:flex;align-items:center;gap:6px;font-size:13px;color:#5f7282}
.rw-sp input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}
.rw-note{height:32px;border:1px solid #dee6eb;border-radius:7px;padding:0 9px;font-size:14px;width:180px}
.rw-memo,.rw-draft{width:100%;font:inherit;font-size:16px;border:1px solid #dee6eb;border-radius:8px;padding:9px 11px;color:#2c3e4d;background:#fff}
.rw-draft{resize:vertical;line-height:1.55}
.rw-text{font-size:13px;color:#5f7282;line-height:1.55;white-space:pre-wrap}
.rw-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#22303c;color:#fff;padding:11px 18px;border-radius:10px;font-size:14px;z-index:50;max-width:calc(100% - 32px)}
@media (max-width:640px){
  .topbar{padding:12px 16px}.brand span{display:none}
  main{padding:20px 16px 48px}
  .rw-row{grid-template-columns:52px 1fr;padding:14px 16px;gap:12px}.rw-img{width:52px;height:52px}
  .seg button{padding:8px 10px}
}
