*{text-align:center;vertical-align:middle;box-sizing:border-box}
body{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;color:#fff;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}
.card{background:#fff;color:#333;border-radius:20px;padding:40px 36px;max-width:500px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,0.3);animation:fadeUp .4s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
h1{font-size:22px;font-weight:700;margin:0 0 6px 0;color:#222;letter-spacing:1px}.label{font-size:22px;font-weight:700;margin:0 0 6px 0;color:#222;letter-spacing:1px}
.sub{font-size:14px;color:#888;margin:0 0 28px 0}
.form-row{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
input[type=text]{padding:12px 16px;font-size:16px;border:2px solid #e5e7eb;border-radius:12px;width:260px;outline:none;transition:border-color .2s}
input[type=text]:focus{border-color:#667eea}
input[type=text]::placeholder{color:#bbb}
input[type=submit]{padding:12px 28px;font-size:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;cursor:pointer;font-weight:600;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 15px rgba(102,126,234,0.4)}
input[type=submit]:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(102,126,234,0.5)}
.result{margin-top:28px;display:none}
.result-label{font-size:13px;color:#888;margin-bottom:10px}
.result-code,.code{font-size:44px;font-weight:800;color:#667eea;font-family:'SF Mono',Monaco,'Courier New',monospace;letter-spacing:10px;cursor:pointer;padding:14px 20px;border-radius:14px;background:#f8f7ff;display:inline-block;transition:background .2s}
.result-code:hover,.code:hover{background:#ece9f9}
.result-code.copied,.code.copied{background:#dcfce7;color:#16a34a}
.flash-msg,.copy-hint{font-size:13px;color:#16a34a;margin-top:10px;display:none;font-weight:500}
.flash-msg.show,.copy-hint.show{display:block}
.timer{font-size:17px;color:#999;margin-top:16px}
.timer span{color:#667eea;font-weight:700;font-size:19px}
.timer span.warn{color:#f59e0b}.timer span.danger{color:#ef4444}
.notice{margin-top:24px;border-top:1px solid #eee;padding-top:18px}.notice p{font-size:12px;color:#aaa;margin:5px 0;line-height:1.8}
.secret{font-size:14px;color:#888;font-family:monospace;word-break:break-all;margin-bottom:20px;margin-top:10px}
.links-section{margin-top:30px;border-top:1px solid #eee;padding-top:22px}
.quick-link-area{margin-top:20px;border-top:1px solid #eee;padding-top:16px}
.quick-link-row{display:flex;gap:8px;align-items:center;justify-content:center;margin-bottom:12px}
.quick-link-anchor{font-size:12px;color:#667eea;word-break:break-all;text-decoration:none;background:#f0f4ff;padding:8px 12px;border-radius:8px;flex:1;text-align:left;border:1px solid #d0d7ff}
.quick-link-btn{padding:8px 12px;font-size:12px;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;white-space:nowrap}.encrypted-link-tools{margin:20px auto;text-align:center}.generate-encrypted-link-btn{background:#10b981;padding:10px 20px;font-size:14px}.encrypted-link-block{margin-top:6px}
.links-title{margin-bottom:18px!important;color:#555;font-size:18px;font-weight:700}.friend-link-item{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:center;column-gap:8px;margin:14px auto;font-size:17px;line-height:1.8;max-width:100%}.friend-link-anchor,.friend-link-contact{color:#667eea;font-weight:600;text-decoration:none;min-width:0;word-break:break-word}.friend-link-anchor{justify-self:end;text-align:right}.friend-link-contact{justify-self:start;text-align:left}.friend-link-separator{display:block;width:18px;color:#94a3b8;font-weight:500;text-align:center}
.quick-link-area h1{font-size:15px;margin:14px 0 8px;color:#444;text-align:left}.quick-link-area h1:first-child{margin-top:0}.quick-link-btn:disabled{opacity:.55;cursor:not-allowed}


/* Public batch conversion page */
.batch-page-body{justify-content:flex-start;padding:28px 20px}.public-batch-shell{width:min(100%,1280px);margin:0 auto}.public-batch-hero{color:#fff;text-align:center;margin:6px 0 22px}.public-batch-hero h1{color:#fff;font-size:24px;margin:0 0 8px}.public-batch-hero p{color:rgba(255,255,255,.82);font-size:14px;margin:0}.public-batch-layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px;align-items:start;text-align:left}.public-batch-pane{background:#fff;color:#333;border-radius:20px;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.22);min-width:0;text-align:left}.public-batch-input-pane{position:sticky;top:22px}.public-batch-pane h2,.public-batch-pane p,.public-batch-pane label{text-align:left}.public-batch-pane .section-title{font-size:18px;margin:0 0 8px;color:#222}.public-batch-subtitle{font-size:13px;color:#888;margin:0 0 16px;line-height:1.7}.public-batch-form label{display:block;margin:12px 0 6px;font-size:13px;color:#555}.public-batch-form input[type=text],.public-batch-form textarea{width:100%;box-sizing:border-box;max-width:100%;padding:11px 13px;font-size:14px;border:2px solid #e5e7eb;border-radius:10px;margin-top:5px;text-align:left}.public-batch-form textarea{min-height:430px;resize:vertical;font-family:'SF Mono',Monaco,'Courier New',monospace;font-size:13px;line-height:1.55}.public-batch-form .form-actions{text-align:center;margin-top:16px}.public-batch-form button{padding:12px 28px;font-size:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;cursor:pointer;font-weight:600}.badge{display:inline-block;border-radius:999px;padding:3px 9px;font-size:12px;white-space:nowrap}.badge.ok{background:#dcfce7;color:#16a34a}.badge.warn{background:#fef3c7;color:#d97706}.badge.off{background:#fee2e2;color:#dc2626}.table-wrap{width:100%;overflow-x:auto;margin-top:12px}.admin-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.admin-table th{background:#f8fafc;text-align:left;padding:9px;border-bottom:2px solid #f0f0f0;white-space:nowrap}.admin-table td{padding:8px;border-bottom:1px solid #f0f0f0;vertical-align:middle;text-align:left}.secret-mask{font-family:monospace;background:#f3f4f6;border-radius:6px;padding:3px 6px;word-break:break-all;font-size:12px}.row-no{font-weight:700;color:#666;text-align:center!important;white-space:nowrap;font-size:12px}.public-batch-link{word-break:break-all;color:#667eea;font-size:13px;text-decoration:none}.public-batch-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.public-batch-actions{display:flex;gap:8px;flex-wrap:wrap}.public-batch-actions .quick-link-btn{font-size:13px;padding:8px 14px}.public-batch-actions .copy-all-urls{background:#10b981}.public-batch-actions .copy-table-fmt{background:#4f46e5}.public-batch-table-wrap{max-height:calc(100vh - 210px);overflow:auto;border:1px solid #f1f5f9;border-radius:14px}.public-batch-table{min-width:900px;margin-top:0}.public-batch-table th{position:sticky;top:0;z-index:1}.public-batch-empty,.public-batch-empty-box{color:#888;text-align:center!important}.public-batch-empty-box{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #cbd5e1;background:#f8fafc}.links-title{margin-bottom:10px!important;color:#666;font-size:14px;font-weight:600}@media (max-width:960px){.public-batch-layout{grid-template-columns:1fr}.public-batch-input-pane{position:static}.public-batch-form textarea{min-height:280px}.public-batch-table-wrap{max-height:none}}

.batch-error { color: #dc2626; margin-top: 12px; }

/* Unified public batch UI pass */
.public-batch-form input[type=text],.public-batch-form input[type=number],.public-batch-form textarea{background:#fff;border:1px solid #e5e7eb;border-radius:12px;color:#111827;padding:10px 12px;transition:border-color .15s,box-shadow .15s}.public-batch-form input[type=text]:focus,.public-batch-form input[type=number]:focus,.public-batch-form textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.14)}.public-batch-form label{font-weight:600;color:#374151}.public-batch-form .form-actions{display:flex;justify-content:flex-start}.public-batch-form button,.public-batch-actions .quick-link-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:10px;font-weight:600;transition:background .15s,box-shadow .15s,transform .15s}.public-batch-form button:hover,.public-batch-actions .quick-link-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,23,42,.12)}.public-batch-actions .export-batch-csv{background:#7c3aed}.public-batch-pane{border:1px solid rgba(255,255,255,.72)}.public-batch-table-wrap{background:#fff}.public-batch-table th{color:#4b5563;font-weight:700}.public-batch-empty-box{border-radius:16px}
@media (max-width:720px){.public-batch-actions,.public-batch-form .form-actions{align-items:stretch}.public-batch-actions .quick-link-btn,.public-batch-form button{width:100%}}
