*{box-sizing:border-box}
body{margin:0;font-family:"Hiragino Sans","Yu Gothic UI","Meiryo",sans-serif;font-size:15px;color:#222;background:#f4f5f7;line-height:1.6}
a{color:#0b5cad}
header.top{background:#1f2d3d;color:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:10px 20px}
header.top .brand{font-weight:bold;margin-right:8px}
header.top nav{display:flex;flex-wrap:wrap;gap:4px;flex:1}
header.top nav a{color:#cfd8e3;text-decoration:none;padding:6px 12px;border-radius:4px}
header.top nav a.on,header.top nav a:hover{background:#34485e;color:#fff}
header.top .who{font-size:13px;color:#cfd8e3}
.linkbtn{background:none;border:none;color:#9cc4f0;cursor:pointer;font-size:13px;padding:0;text-decoration:underline}
main{max-width:1100px;margin:20px auto;padding:0 16px 60px}
h1{font-size:22px;margin:8px 0 16px}
h2{font-size:17px;margin:24px 0 8px}
.card,.panel{background:#fff;border:1px solid #dde1e6;border-radius:6px;padding:16px 20px;margin-bottom:16px}
body.pub main.card{max-width:560px;margin:40px auto}
table{border-collapse:collapse;width:100%;background:#fff}
th,td{border-bottom:1px solid #e5e8ec;padding:8px 10px;text-align:left;vertical-align:top;font-size:14px}
th{background:#eef1f5;font-weight:600;white-space:nowrap}
tr:hover td{background:#fafbfc}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=datetime-local],input[type=file],select,textarea{width:100%;padding:8px;border:1px solid #bcc3cc;border-radius:4px;font:inherit;background:#fff}
textarea{min-height:120px}
textarea.tall{min-height:260px;font-family:Consolas,monospace;font-size:13px}
label{display:block;font-weight:600;margin:12px 0 4px}
label.inline{display:inline-block;font-weight:normal;margin:4px 14px 4px 0}
.hint{color:#667;font-size:13px;margin:2px 0 0}
button,.btn{display:inline-block;background:#e8735a;color:#fff;border:none;border-radius:4px;padding:8px 18px;font:inherit;cursor:pointer;text-decoration:none}
button:hover,.btn:hover{background:#d4614a}
button.sub,.btn.sub{background:#5b6b7d}
button.danger{background:#b3261e}
.flash{padding:10px 14px;border-radius:4px;margin-bottom:12px}
.flash.ok{background:#e3f4e6;border:1px solid #9fd4a8}
.flash.err{background:#fde7e5;border:1px solid #f0a8a2}
.flash.warn{background:#fff4d6;border:1px solid #e8cf85}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.stat{background:#fff;border:1px solid #dde1e6;border-radius:6px;padding:12px 16px}
.stat b{display:block;font-size:26px}
.stat span{color:#667;font-size:13px}
.tag{display:inline-block;background:#e8eef6;border-radius:10px;padding:1px 9px;font-size:12px;margin-right:4px}
.st-active{color:#1b7a2f}.st-unsubscribed{color:#8a6d00}.st-bounced{color:#b3261e}.st-pending{color:#667}
.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:200px}
.actions{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}
.pager{margin:12px 0}.pager a,.pager span{padding:4px 10px;border:1px solid #ccd;border-radius:3px;margin-right:4px;text-decoration:none;background:#fff}
.pager span{background:#1f2d3d;color:#fff}
.bar{background:#e5e8ec;border-radius:3px;height:10px;width:140px;display:inline-block;vertical-align:middle}
.bar i{display:block;background:#e8735a;height:10px;border-radius:3px}
pre.preview{white-space:pre-wrap;background:#f7f8fa;padding:10px;border:1px solid #e0e3e8;border-radius:4px}
