
:root{
  --forest:#2B4032; --green:#7CA36B; --gray:#9D9D9C; --ink:#1c2520; --muted:#657069;
  --bg:#f4f6f3; --surface:#ffffff; --line:#e4e8e3; --soft:#eef3ec; --warn:#ad6f19; --danger:#a33c38;
  --shadow:0 16px 40px rgba(43,64,50,.10); --radius:16px;
  font-family:Inter, Aptos, "Segoe UI", Arial, sans-serif; color:var(--ink); background:var(--bg);
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink)} button,input,select,textarea{font:inherit}
.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:800;color:var(--green)}
.brand-logo{display:block;max-width:100%;height:auto}.mobile-login-logo{display:none;max-width:210px;width:100%;height:auto;margin:0 0 24px}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-brand{background:linear-gradient(160deg,#2b4032 0%,#324938 65%,#3a5440 100%);padding:64px 8vw;color:white;display:flex;flex-direction:column;justify-content:center;position:relative}.brand-hero-card{display:inline-block;max-width:520px;background:rgba(255,255,255,.96);padding:20px 24px 18px;border-radius:28px;box-shadow:0 24px 48px rgba(0,0,0,.18)}.brand-hero-card .brand-logo.full{width:min(100%,480px)}.login-brand h1{font-size:52px;line-height:1.04;max-width:650px;margin:42px 0 18px;font-weight:600;letter-spacing:-.035em}.login-brand p{max-width:560px;font-size:18px;line-height:1.55;color:#dce4dc}.login-brand .login-support{font-style:italic}.login-footnote{position:absolute;bottom:38px;color:#aebbb0;font-size:12px;letter-spacing:.08em}.login-panel{display:flex;align-items:center;justify-content:center;padding:40px;min-width:0}.login-card{width:min(440px,100%);background:white;padding:42px;border-radius:22px;box-shadow:var(--shadow)}.login-card h2{font-size:34px;margin:8px 0}.login-card label{display:grid;gap:7px;font-size:13px;font-weight:700;margin:22px 0 0}.login-card input{height:46px;border:1px solid var(--line);border-radius:10px;padding:0 13px;outline:none}.login-card input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(124,163,107,.15)}.demo-box{background:var(--soft);padding:14px;border-radius:10px;margin-top:18px;font-size:12px;color:var(--muted)}.form-message{font-size:12px;color:var(--danger);min-height:18px;margin-top:10px}
.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--forest);color:white}.btn.secondary{background:var(--green);color:white}.btn.ghost{background:#f2f4f2;color:var(--forest)}.btn.full{width:100%;margin-top:24px}.icon-btn{border:0;background:transparent;font-size:28px;color:var(--muted);cursor:pointer}
.app-shell{min-height:100vh;display:grid;grid-template-columns:272px 1fr}.sidebar{background:var(--forest);color:white;position:sticky;top:0;height:100vh;padding:22px 18px;display:flex;flex-direction:column}.sidebar-brand-card{background:white;border-radius:18px;padding:18px 16px;box-shadow:0 10px 30px rgba(0,0,0,.12);margin:2px 6px 22px}.sidebar-full{width:100%;max-width:190px}.sidebar-brand-caption{margin-top:10px;font-size:11px;line-height:1.45;color:#5e6a63;font-weight:700}.nav{display:grid;gap:4px;padding:0}.nav button{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:0;color:#d5ddd6;padding:11px 13px;border-radius:9px;text-align:left;cursor:pointer;font-size:13px}.nav button:hover,.nav button.active{background:rgba(255,255,255,.12);color:white}.nav .nav-dot{width:6px;height:6px;border-radius:50%;background:#789080}.nav button.active .nav-dot{background:#9eca89}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:18px}.user-mini{display:flex;gap:10px;align-items:center}.user-mini small{display:block;color:#b9c4ba;margin-top:2px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--green);font-weight:800}.sidebar-footer .btn{color:white;background:rgba(255,255,255,.09);margin-top:14px}
.main{min-width:0}.topbar{min-height:92px;background:white;border-bottom:1px solid var(--line);padding:20px 32px;display:flex;justify-content:space-between;align-items:center;gap:24px;position:sticky;top:0;z-index:10}.topbar h1{font-size:25px;margin:3px 0 0}.top-actions{display:flex;gap:10px;align-items:center}.search-wrap{position:relative}.search-wrap input{width:330px;height:41px;border:1px solid var(--line);border-radius:10px;padding:0 13px}.search-results{position:absolute;top:48px;left:0;width:410px;max-height:420px;overflow:auto;background:white;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:8px;z-index:50}.search-result{padding:10px;border-radius:8px;cursor:pointer}.search-result:hover{background:var(--soft)}.search-result strong{display:block;font-size:13px}.search-result small{color:var(--muted)}
.content{padding:28px 32px 50px;max-width:1600px;margin:auto}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:18px}.kpi .label{font-size:12px;color:var(--muted);font-weight:700}.kpi .value{font-size:33px;font-weight:650;margin-top:8px;letter-spacing:-.03em}.kpi .sub{font-size:11px;color:var(--muted);margin-top:5px}.section-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:18px}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:20px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.card h3{margin:0;font-size:16px}.card .caption{font-size:12px;color:var(--muted)}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0}.data-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#79827d;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px 10px;border-bottom:1px solid #edf0ed;font-size:13px;vertical-align:middle}.data-table tbody tr:hover{background:#fafcf9}.entity-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;color:var(--muted)}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;background:#eef2ee;color:#526056;text-transform:uppercase;letter-spacing:.03em}.pill.good{background:#eaf4e7;color:#496f3d}.pill.warn{background:#fff2dd;color:#8b5b15}.pill.danger{background:#fbe7e5;color:#953f3a}.pill.info{background:#edf1f6;color:#496071}.progress{height:7px;border-radius:99px;background:#e8ece8;overflow:hidden}.progress span{display:block;height:100%;background:var(--green);border-radius:99px}.list{display:grid;gap:9px}.list-item{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #edf0ed}.list-item:last-child{border-bottom:0}.list-item strong{font-size:13px}.list-item small{color:var(--muted);display:block;margin-top:3px}.deadline-date{text-align:right;min-width:76px}.deadline-date strong{display:block;font-size:12px}.deadline-date small{font-size:10px}
.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters select,.filters input{height:38px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:white}.empty{padding:48px 20px;text-align:center;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick-action{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fbfcfb;cursor:pointer}.quick-action strong{display:block;margin-bottom:5px}.quick-action small{color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(23,32,27,.55);display:grid;place-items:center;padding:24px;z-index:100}.modal{width:min(760px,100%);max-height:90vh;background:white;border-radius:20px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.modal-head{display:flex;justify-content:space-between;padding:24px 26px 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:5px 0 0}.modal-body{padding:20px 26px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}.modal-body label{display:grid;gap:7px;font-size:12px;font-weight:800}.modal-body label.full{grid-column:1/-1}.modal-body input,.modal-body select,.modal-body textarea{border:1px solid var(--line);border-radius:9px;padding:10px 11px;min-height:41px}.modal-body textarea{min-height:92px;resize:vertical}.modal-actions{padding:15px 26px 22px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line)}.callout{padding:14px 16px;border-left:4px solid var(--green);background:var(--soft);border-radius:8px;font-size:12px;line-height:1.5;margin-bottom:16px}.status-banner{display:flex;align-items:center;gap:10px;padding:10px 13px;background:#eef4ec;border:1px solid #dce8d8;border-radius:10px;color:#496349;font-size:12px}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.section-grid,.split{grid-template-columns:1fr}.top-actions .btn.secondary{display:none}.search-wrap input{width:230px}.app-shell{grid-template-columns:250px 1fr}}
@media(max-width:780px){.mobile-login-logo{display:block}.login-panel{padding:20px}.login-card{padding:30px 24px}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.sidebar-brand-card{margin:0 0 16px}.nav{grid-template-columns:repeat(2,1fr)}.sidebar-footer{display:none}.topbar{position:relative;align-items:flex-start;flex-direction:column}.top-actions{width:100%;flex-wrap:wrap}.search-wrap{width:100%}.search-wrap input{width:100%}.content{padding:20px}.kpi-grid{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.modal-body{grid-template-columns:1fr}.modal-body label.full{grid-column:auto}}
.mt16{margin-top:16px}.mt18{margin-top:18px}.big-count{font-size:22px;font-weight:700}.click-row{cursor:pointer}.click-row:hover{background:#f6faf5!important}.tag{display:inline-block;padding:3px 7px;border-radius:999px;background:#eef3ec;color:#526056;font-size:10px;font-weight:800;text-transform:uppercase}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.detail-head h2{font-size:28px;margin:5px 0 7px;letter-spacing:-.02em}.detail-badges{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.detail-actions{display:flex;gap:8px;align-items:center;padding-top:23px}.back-link{border:0;background:transparent;color:var(--forest);padding:0 0 8px;font-weight:800;cursor:pointer}.mini-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.mini-stat{background:white;border:1px solid var(--line);border-radius:13px;padding:15px}.mini-stat span{display:block;color:var(--muted);font-size:11px;font-weight:700}.mini-stat strong{display:block;font-size:20px;margin-top:6px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;margin-top:12px}.info-grid>div{padding:11px 0;border-bottom:1px solid #edf0ed}.info-grid span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.info-grid strong{display:block;font-size:13px;margin-top:4px;font-weight:650}.detail-note{font-size:13px;color:var(--muted);line-height:1.55}.detail-quote{font-size:15px;line-height:1.55;border-left:4px solid var(--green);padding:4px 0 4px 14px}.tabs{display:flex;gap:4px;overflow:auto;margin-bottom:16px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:transparent;padding:11px 12px;color:var(--muted);font-size:12px;font-weight:750;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tabs button.active{color:var(--forest);border-bottom-color:var(--green)}.milestone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.milestone{border:1px solid var(--line);border-radius:11px;padding:13px}.milestone small{display:block;color:var(--muted);margin:4px 0 10px}.timeline{position:relative;margin-top:12px}.timeline-item{display:flex;gap:12px;padding:10px 0}.timeline-item>span{width:10px;height:10px;border-radius:50%;background:var(--green);margin-top:4px;box-shadow:0 0 0 4px var(--soft)}.timeline-item strong{display:block;font-size:13px}.timeline-item small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.field-hint{font-weight:500;color:var(--muted);line-height:1.35}.toast{position:fixed;right:24px;bottom:24px;z-index:200;background:var(--forest);color:#fff;padding:13px 18px;border-radius:11px;box-shadow:var(--shadow);font-size:13px;font-weight:700;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:var(--danger)}.data-table a{color:var(--forest);font-weight:700}.modal{width:min(860px,100%)}
@media(max-width:900px){.mini-stat-grid{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr}.milestone-grid{grid-template-columns:1fr}.detail-head{flex-direction:column}.detail-actions{padding-top:0}}
.activation-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:1.1fr .9fr;
}

.activation-brand{
  background:linear-gradient(
    160deg,
    #2b4032 0%,
    #324938 65%,
    #3a5440 100%
  );
  padding:64px 8vw;
  color:white;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}

.activation-brand .brand-hero-card{
  display:inline-block;
  max-width:520px;
  width:max-content;
  background:rgba(255,255,255,.96);
  padding:20px 24px 18px;
  border-radius:28px;
  box-shadow:0 24px 48px rgba(0,0,0,.18);
}

.activation-brand .brand-logo.full{
  width:min(100%,480px);
}

.activation-brand h1{
  font-size:52px;
  line-height:1.04;
  max-width:650px;
  margin:42px 0 18px;
  font-weight:600;
  letter-spacing:-.035em;
}

.activation-brand .login-support{
  max-width:560px;
  font-size:18px;
  line-height:1.55;
  color:#dce4dc;
  font-style:italic;
}

.activation-brand .login-footnote{
  position:absolute;
  bottom:38px;
  color:#aebbb0;
  font-size:12px;
  letter-spacing:.08em;
}

.activation-panel{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px;
  min-width:0;
}

.activation-card{
  width:min(440px,100%);
  background:white;
  padding:42px;
  border-radius:22px;
  box-shadow:var(--shadow);
}

.activation-card h2{
  font-size:34px;
  margin:8px 0;
  letter-spacing:-.03em;
}

.activation-card label{
  display:grid;
  gap:7px;
  font-size:13px;
  font-weight:700;
  margin:22px 0 0;
}

.activation-card input{
  height:46px;
  border:1px solid var(--line);
  border-radius:10px;
  padding:0 13px;
  outline:none;
  background:white;
}

.activation-card input:focus{
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(124,163,107,.15);
}

.activation-account{
  display:grid;
  gap:5px;
  margin-top:24px;
  padding:13px 14px;
  background:var(--soft);
  border-radius:10px;
}

.activation-account span{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
  font-weight:800;
}

.activation-account strong{
  font-size:13px;
  color:var(--forest);
  word-break:break-word;
}

.password-hint{
  margin-top:8px;
  font-size:11px;
  color:var(--muted);
}

.activation-security{
  display:grid;
  gap:4px;
  margin-top:24px;
  padding:14px 16px;
  border-left:4px solid var(--green);
  background:var(--soft);
  border-radius:8px;
  font-size:11px;
  line-height:1.5;
  color:var(--muted);
}

.activation-security strong{
  color:var(--forest);
  font-size:12px;
}

@media(max-width:780px){
  .activation-shell{
    grid-template-columns:1fr;
  }

  .activation-brand{
    display:none;
  }

  .activation-panel{
    min-height:100vh;
    padding:20px;
  }

  .activation-card{
    padding:30px 24px;
  }

  .activation-card .mobile-login-logo{
    display:block;
  }
}
