:root{
  --color-primary:#F5821F;
  --color-primary-dark:#d96f14;
  --color-primary-light:#fef1e4;
  --color-secondary:#808080;
  --color-bg:#ffffff;
  --color-surface:#ffffff;
  --color-surface-alt:#f6f6f6;
  --color-border:#e3e3e3;
  --color-text:#232323;
  --color-text-muted:#7a7a7a;
  --color-success:#2e7d32;
  --color-success-bg:#e8f5e9;
  --color-danger:#c62828;
  --color-danger-bg:#fdecea;
  --color-warning:#b8860b;
  --color-warning-bg:#fff7e0;
  --shadow:0 1px 3px rgba(0,0,0,.10),0 1px 2px rgba(0,0,0,.06);
  --shadow-md:0 4px 14px rgba(0,0,0,.12);
  --radius:10px;
  --radius-sm:6px;
}
@media (prefers-color-scheme: dark){
  :root{
    --color-bg:#17181a; --color-surface:#1f2023; --color-surface-alt:#26272b;
    --color-border:#3a3b3f; --color-text:#f0f0f0; --color-text-muted:#a8a8ad;
    --color-primary-light:#3a2a17; --color-success-bg:#12301a;
    --color-danger-bg:#3a1414; --color-warning-bg:#3a2f0d;
  }
}
*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--color-bg); color:var(--color-text);
  font-family:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  line-height:1.45; -webkit-font-smoothing:antialiased;
}
#root{min-height:100vh;display:flex;flex-direction:column;}
button{font-family:inherit;}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 20px;}
.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:20;}
.app-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;max-width:1180px;margin:0 auto;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:12px;min-width:0;}
.brand img{height:40px;width:auto;display:block;flex:0 0 auto;}
.brand-name{font-weight:700;font-size:1.05rem;color:var(--color-text);white-space:nowrap;}
.brand-name small{display:block;font-weight:500;font-size:.72rem;color:var(--color-secondary);letter-spacing:.02em;}
.header-user{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.header-user .who{text-align:right;font-size:.85rem;line-height:1.25;}
.header-user .who b{display:block;color:var(--color-text);}
.header-user .who span{color:var(--color-text-muted);}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 16px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s,opacity .15s;white-space:nowrap;}
.btn-primary{background:var(--color-primary);color:#fff;}
.btn-primary:hover{background:var(--color-primary-dark);}
.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border);}
.btn-secondary:hover{background:var(--color-surface-alt);}
.btn-outline{background:transparent;color:var(--color-primary);border-color:var(--color-primary);}
.btn-outline:hover{background:var(--color-primary-light);}
.btn-danger{background:var(--color-danger);color:#fff;}
.btn-danger:hover{opacity:.88;}
.btn-ghost{background:transparent;color:var(--color-text-muted);border-color:transparent;}
.btn-ghost:hover{background:var(--color-surface-alt);}
.btn-sm{padding:6px 11px;font-size:.78rem;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.tabbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);}
.tabbar-inner{display:flex;gap:4px;max-width:1180px;margin:0 auto;padding:0 20px;overflow-x:auto;}
.tab-btn{border:none;background:transparent;padding:13px 16px;font-size:.88rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap;}
.tab-btn:hover{color:var(--color-text);}
.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary);}
.main{flex:1;padding:24px 0 60px;}
.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-bottom:20px;}
.card h2{margin:0 0 4px;font-size:1.15rem;}
.card .sub{color:var(--color-text-muted);font-size:.85rem;margin:0 0 18px;}
.section-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-secondary);margin:22px 0 10px;}
.section-title:first-child{margin-top:0;}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;}
@media (max-width:680px){.form-grid{grid-template-columns:1fr;}}
.field{display:flex;flex-direction:column;gap:5px;}
.field.full{grid-column:1/-1;}
.field label{font-size:.8rem;font-weight:600;color:var(--color-text);}
.field label .req{color:var(--color-danger);}
.field .hint{font-size:.74rem;color:var(--color-text-muted);}
input[type=text],input[type=tel],input[type=email],input[type=password],select,textarea{
  width:100%;padding:9px 11px;border:1px solid var(--color-border);border-radius:var(--radius-sm);
  font-size:.92rem;background:var(--color-bg);color:var(--color-text);
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:0;border-color:var(--color-primary);}
.readonly-box{padding:9px 11px;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-text-muted);font-size:.9rem;}
.form-actions{display:flex;gap:10px;margin-top:20px;align-items:center;flex-wrap:wrap;}
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;}
.badge-active{background:var(--color-success-bg);color:var(--color-success);}
.badge-inactive{background:var(--color-surface-alt);color:var(--color-secondary);}
.badge-signed{background:var(--color-primary-light);color:var(--color-primary-dark);}
.badge-source-self{background:var(--color-primary-light);color:var(--color-primary-dark);}
.badge-source-company{background:#e7eef7;color:#2a5a8f;}
.badge-warn{background:var(--color-warning-bg);color:var(--color-warning);}
.badge-danger{background:var(--color-danger-bg);color:var(--color-danger);}
.badge-neutral{background:var(--color-surface-alt);color:var(--color-text-muted);}
.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius);}
table{width:100%;border-collapse:collapse;min-width:920px;background:var(--color-surface);}
th,td{text-align:left;padding:10px 12px;font-size:.85rem;border-bottom:1px solid var(--color-border);vertical-align:top;}
th{background:var(--color-surface-alt);color:var(--color-secondary);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:var(--color-surface-alt);}
.cell-name{font-weight:600;}
.cell-muted{color:var(--color-text-muted);font-size:.8rem;}
.actions-cell{display:flex;gap:6px;flex-wrap:wrap;}
.empty-state{padding:44px 20px;text-align:center;color:var(--color-text-muted);}
.empty-state .big{font-size:2rem;margin-bottom:6px;}
.login-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:30px 16px;}
.login-card{width:100%;max-width:380px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:32px 28px;}
.login-card h1{font-size:1.15rem;margin:0 0 4px;text-align:center;}
.login-card .sub{text-align:center;color:var(--color-text-muted);font-size:.85rem;margin:0 0 22px;}
.login-error{background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius-sm);padding:9px 12px;font-size:.83rem;margin-bottom:14px;}
.login-hint{margin-top:18px;padding-top:14px;border-top:1px dashed var(--color-border);font-size:.75rem;color:var(--color-text-muted);}
.flash{background:var(--color-success-bg);color:var(--color-success);border-radius:var(--radius-sm);padding:10px 14px;font-size:.85rem;margin-bottom:16px;}
.error-banner{background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius-sm);padding:10px 14px;font-size:.85rem;margin-bottom:16px;}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-end;}
.filters .field{min-width:150px;}
.modal-overlay{position:fixed;inset:0;background:rgba(20,20,20,.5);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:100;}
.modal{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-md);max-width:640px;width:100%;padding:24px;}
.modal h3{margin:0 0 4px;font-size:1.05rem;}
.modal .sub{color:var(--color-text-muted);font-size:.83rem;margin:0 0 16px;}
.modal-close-row{display:flex;justify-content:flex-end;margin-top:18px;gap:10px;}
.check-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--color-border);}
.check-row:last-child{border-bottom:none;}
.check-row label{font-size:.88rem;font-weight:500;}
.log-history{margin-top:6px;border-top:1px solid var(--color-border);padding-top:10px;}
.log-item{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:.82rem;border-bottom:1px dashed var(--color-border);}
.log-item:last-child{border-bottom:none;}
.log-item .type{font-weight:600;}
.log-item .when{color:var(--color-text-muted);}
.footer-note{max-width:1180px;margin:0 auto;padding:10px 20px 30px;color:var(--color-text-muted);font-size:.72rem;}
.spinner-overlay{position:fixed;inset:0;background:rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;z-index:200;}

/* print (Reports "Print / Save as PDF") */
@media print{
  .no-print, .app-header .header-user, .tabbar{ display:none !important; }
  body{ background:#fff; }
  .main{ padding:0; }
  .card{ box-shadow:none; border:none; padding:0; }
  .report-print-block .table-wrap{ border:1px solid #ccc; overflow:visible; }
  .report-print-block table{ min-width:0; }
  a[href]:after{ content:""; }
}
