:root{
    --bg: #f6f7fb;
    --bg-accent: #fef7ff;
    --card: #ffffff;
    --muted: #6b7280;
    --accent: #4f46e5;
    --accent-soft: #e9e7ff;
    --danger:#ef4444;
    --pastel-1: #fff7f3;
    --pastel-2: #f5fbff;
}
*{box-sizing:border-box}
body{font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,var(--bg) 0%, var(--bg-accent) 100%);color:#0f172a;margin:0;padding:24px}
.container{max-width:1100px;margin:0 auto}
header h1{margin:0;font-size:1.6rem}
.lead{margin-top:6px;color:var(--muted)}
.card{background:var(--card);padding:16px;border-radius:12px;box-shadow:0 6px 18px rgba(15,23,42,0.06);margin-top:18px}
.card h2{margin:0 0 8px 0;font-size:1.05rem}
.muted{color:var(--muted);margin:0 0 10px 0}
.cards-row{display:grid;grid-template-columns:1fr 380px;gap:18px;align-items:start;margin-top:18px}
.card-side{display:flex;flex-direction:column;justify-content:space-between}
textarea#jsonText{width:100%;min-height:200px;padding:12px;border-radius:10px;border:1px solid #e6e9ef;background:linear-gradient(180deg,#fbfdff, var(--pastel-2));font-family:monospace;resize:vertical}
.file input[type=file]{display:block}
.actions{display:flex;align-items:center;gap:12px;margin-top:12px}
button{background:var(--accent);color:white;border:0;padding:10px 14px;border-radius:10px;cursor:pointer;box-shadow:0 4px 10px rgba(79,70,229,0.12)}
button.small{padding:6px 8px;background:transparent;color:var(--accent);box-shadow:none;border-radius:8px;border:1px solid transparent}
button.small:hover{background:var(--accent-soft)}
button:disabled{opacity:0.6;cursor:default}
.status{font-size:0.95rem;color:var(--muted)}
.status.error{color:var(--danger)}
.foot{margin-top:18px;color:var(--muted)}
.api-row{margin-top:8px;display:flex;gap:10px;align-items:center}
code{background:#f0f4ff;padding:2px 6px;border-radius:4px}

@media (max-width:980px){
    .cards-row{grid-template-columns:1fr 360px}
}
@media (max-width:820px){
    .cards-row{grid-template-columns:1fr;}
    body{padding:16px}
    .actions{flex-direction:column;align-items:flex-start}
}

/* Info card and footer styles */
.info{margin-top:18px;padding:18px}
.info h2{font-size:1.15rem;margin-bottom:6px}
.info pre{background:linear-gradient(90deg,#fff,#fffef7);padding:12px;border-radius:8px;border:1px solid #eee;overflow:auto}
.info code{font-family:Menlo,Monaco,Consolas,monospace;background:transparent;padding:0}
.info details{margin-top:8px}
.foot{margin-top:22px;color:var(--muted);font-size:0.95rem}
.foot-inner{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-top:1px solid #eef2ff}

@media (min-width:720px){
    .foot-inner{flex-direction:row;justify-content:space-between}
}

/* API card styles (mini swagger) */
.api-card{margin-top:20px;background:linear-gradient(180deg,#ffffff,#fffaf8);padding:16px;border-radius:12px;border:1px solid #f3e8ff}
.endpoint{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px dashed #f0ecf8}
.endpoint:last-child{border-bottom:0}
.method-badge{min-width:54px;padding:6px 8px;border-radius:8px;color:white;font-weight:700;text-align:center}
.method-badge.get{background:#10b981}
.method-badge.post{background:#2563eb}
.ep-body{flex:1}
.ep-path code{background:transparent;padding:0;color:#0f172a;font-weight:600}
.ep-desc{color:var(--muted);margin-top:4px}
.ep-usage pre{background:#f8fafc;border:1px solid #e8eef8;padding:10px;border-radius:8px;overflow:auto;margin:8px 0}
.ep-notes{font-size:0.9rem;color:var(--muted);margin-top:6px}
