/* BPJI visual contract. Update semantic roles here, not individual page sizes. */
:root {
  --font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --font-small:12px;
  --font-caption:13px;
  --font-body:14px;
  --font-section:16px;
  --font-title:20px;
  --font-metric:24px;
  --text-primary:#1f2937;
  --text-secondary:#475569;
  --text-muted:#566579;
  --text-disabled:#8994a3;
  --surface-page:#f3f5f8;
  --surface-card:#ffffff;
  --surface-subtle:#f7f9fc;
  --border-ui:#dce2ea;
  --brand:#1466c7;
  --brand-soft:#eaf2fc;
  --status-good:#157347;
  --status-warn:#925400;
  --status-danger:#b42318;
  --radius-control:6px;
  --radius-card:10px;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-6:24px;
  --el-font-family:var(--font-ui);
  --el-font-size-extra-small:var(--font-small);
  --el-font-size-small:var(--font-caption);
  --el-font-size-base:var(--font-body);
  --el-font-size-medium:var(--font-body);
  --el-font-size-large:var(--font-section);
  --el-font-size-extra-large:var(--font-title);
  --el-text-color-primary:var(--text-primary);
  --el-text-color-regular:var(--text-secondary);
  --el-text-color-secondary:var(--text-muted);
  --el-text-color-placeholder:var(--text-muted);
  --el-color-primary:var(--brand);
  --el-color-primary-light-3:#528fd6;
  --el-color-primary-light-5:#8cb4e3;
  --el-color-primary-light-7:#bfd5ef;
  --el-color-primary-light-8:#d5e4f6;
  --el-color-primary-light-9:var(--brand-soft);
  --el-color-primary-dark-2:#104f9a;
  --el-color-success:var(--status-good);
  --el-color-success-light-9:#edf7f1;
  --el-color-warning:var(--status-warn);
  --el-color-warning-light-9:#fff7e8;
  --el-color-danger:var(--status-danger);
  --el-color-danger-light-9:#fff0ed;
  --el-color-info:var(--text-muted);
  --el-border-color:var(--border-ui);
  --el-border-radius-base:var(--radius-control);
  --workspace-bg:var(--surface-page);
  --workspace-line:var(--border-ui);
}
html,body { font-family:var(--font-ui); font-size:var(--font-body); line-height:1.5; color:var(--text-primary); -webkit-text-size-adjust:100%; text-size-adjust:100%; }
small { font-size:var(--font-caption); }
button,input,select,textarea { font-family:inherit; }
button { font-weight:500; }
input::placeholder,textarea::placeholder { color:var(--text-muted); opacity:1; }
:where(button,a,input,textarea,select):focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; } }

/* Shared public entry and download surfaces. Homepage brand remains blue/white. */
body { color:var(--text-primary); background:var(--surface-page); }
.public-home .topbar-inner { background:#286db7; box-shadow:none; border-radius:8px; }
.public-home .topbar h1 { color:#fff; font-size:var(--font-title); font-weight:600; letter-spacing:1px; }
.public-home .panel,.public-home .modal,.public-home .dialog { border-color:var(--border-ui); border-radius:var(--radius-card); box-shadow:none; }
.public-home .panel-title,.public-home .modal-title,.public-home .dialog-title { font-size:var(--font-section); font-weight:600; }
.public-home .field label,.public-home .label { color:var(--text-secondary); font-size:var(--font-body); font-weight:500; }
.public-home input,.public-home select,.public-home textarea { color:var(--text-primary); border-color:var(--border-ui); border-radius:var(--radius-control); }
.public-home .status-pill { color:var(--text-secondary); font-size:var(--font-caption); }
.public-home button { font-family:var(--font-ui); }
.public-files .head { color:var(--text-primary); background:var(--surface-card); }
.public-files .head h1 { font-size:var(--font-title); font-weight:600; }
.public-files .title h2,.public-files .dialog h3 { font-size:var(--font-section); font-weight:600; }
.public-files .tools,.public-files .card,.public-files .dialog { border-radius:var(--radius-card); box-shadow:none; }
.public-files .meta,.public-files .original,.public-files .foot { font-size:var(--font-caption); color:var(--text-secondary); }
.public-files .desc { color:var(--text-primary); font-size:var(--font-body); }
.public-files .btn,.public-files .tools button,.public-files .dialog-actions button { background:var(--brand); font-size:var(--font-body); font-weight:500; border-radius:var(--radius-control); }
.public-files .featured { color:var(--status-warn); }
@media(max-width:760px) { .public-home input,.public-home select,.public-home textarea,.public-files input,.public-files select { font-size:16px; } }

body.home-v3.public-home { background:var(--surface-page); color:var(--text-primary); }
body.home-v3.public-home>.topbar { background:#286db7; }
body.home-v3.public-home>.topbar h1 { font-size:var(--font-title); font-weight:600; }
body.home-v3.public-home .panel-title { font-size:var(--font-section); font-weight:600; }
body.home-v3.public-home #sendBtn { font-size:var(--font-body); background:var(--brand); border-color:var(--brand); border-radius:var(--radius-control); box-shadow:none; font-weight:600; }
body.home-v3.public-home .field label,body.home-v3.public-home .label { font-size:var(--font-body); color:var(--text-primary); font-weight:500; }
body.home-v3.public-home input::placeholder,body.home-v3.public-home textarea::placeholder { color:var(--text-muted); opacity:1; }
body.home-v3.public-home { --home-blue:var(--brand); --home-blue-dark:#104f9a; --home-text:var(--text-primary); --home-muted:var(--text-muted); --home-green:var(--status-good); }
