body{
    margin:0;
    background:#eef1f4;
    color:#111;
    font-family:Arial, Helvetica, sans-serif;
}
.topbar{
    background:#102135;
    color:#fff;
    padding:14px 22px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
}
.topbar a{color:#fff;text-decoration:none;margin-right:14px;font-weight:700}
.wrap{max-width:1500px;margin:0 auto;padding:20px;}
.notice{padding:10px 14px;border-radius:8px;background:#dff1df;border:1px solid #97c997;margin-bottom:16px;}
.error{padding:10px 14px;border-radius:8px;background:#fde8e8;border:1px solid #e5a3a3;margin-bottom:16px;}
.screen-grid{display:grid;grid-template-columns:480px 1fr;gap:20px;align-items:start;}
.panel{
    background:#fff;
    border:1px solid #d6dce5;
    border-radius:14px;
    box-shadow:0 8px 22px rgba(0,0,0,.06);
    padding:18px;
}
.panel h1,.panel h2,.panel h3{margin:0 0 12px 0}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;}
.field label{font-size:12px;font-weight:700;color:#334;}
.field input,.field select,.field textarea{
    border:1px solid #bfc9d8;
    border-radius:8px;
    padding:9px 10px;
    font-size:14px;
    width:100%;
    box-sizing:border-box;
    background:#fff;
}
.inline-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 8px}
.btn{
    display:inline-flex;align-items:center;justify-content:center;
    padding:10px 14px;border-radius:10px;border:0;cursor:pointer;
    background:#17324f;color:#fff;font-weight:700;text-decoration:none;
}
.btn.secondary{background:#eef2f6;color:#18304a;border:1px solid #c8d2df;}
.btn.danger{background:#963939}
.editor-block{border:1px solid #d6dce5;border-radius:12px;padding:12px;margin-bottom:12px}
.small{font-size:12px;color:#555}
.muted{font-size:12px;color:#666}
.slot-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin:8px 0}
.a4-stage{overflow:auto}
.paper{
    width:794px;
    height:1123px;
    margin:0 auto;
    background:#fff;
    position:relative;
    box-shadow:0 10px 34px rgba(0,0,0,.18);
}
.paper.roster{font-family:"Arial Narrow", Arial, Helvetica, sans-serif;}
.paper.nominal{font-family:"Times New Roman", Times, serif;}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:#edf1f5}
.login-card{width:100%;max-width:420px;background:#fff;border:1px solid #d7e0ea;border-radius:18px;box-shadow:0 10px 34px rgba(0,0,0,.08);padding:26px}
.page-number{position:absolute;left:0;right:0;text-align:center;font-size:11px;color:#111;}
.preview-note{padding:10px 12px;background:#f4f7fb;border:1px solid #d7e1ef;border-radius:10px;margin-bottom:12px}
table{border-collapse:collapse}
@media (max-width:1280px){
  .screen-grid{grid-template-columns:1fr}
}
@media print{
  @page{size:A4 portrait;margin:0}
  body{background:#fff}
  .topbar,.controls-only,.notice,.error{display:none !important}
  .wrap{padding:0;max-width:none}
  .screen-grid{display:block}
  .panel{border:none;box-shadow:none;padding:0}
  .a4-stage{overflow:visible}
  .paper{box-shadow:none;margin:0 auto}
}