@import url('https://fonts.googleapis.com/css2?family=Signika:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700;800&display=swap');

:root{
  --sg-brand-green:#449952;
  --sg-web-green:#3A8246;
  --sg-web-green-light:#43AD55;
  --sg-dark:#041F1E;
  --sg-dark-blue:#2F4858;
  --sg-blue:#007FAD;
  --sg-yellow:#FFB845;
  --sg-orange:#D67F5B;
  --sg-light:#F4F7F4;
  --sg-white:#ffffff;
  --sg-gray:#595959;
  --sg-gray-light:#A6A6A6;
  --sg-border:#E2EAE4;
  --sg-border-strong:#CEDBD1;
  --sg-red:#D65F56;
  --sg-shadow:0 24px 70px rgba(4,31,30,.09);
  --sg-shadow-soft:0 10px 32px rgba(4,31,30,.06);
  --sg-radius:22px;
}

.sgsh-app,
.sgsh-auth-wrap{
  font-family:"Source Sans 3", Arial, sans-serif;
  color:var(--sg-dark);
  background:
    radial-gradient(circle at 8% 4%, rgba(68,153,82,.08), transparent 28%),
    radial-gradient(circle at 95% 0%, rgba(47,72,88,.08), transparent 26%),
    linear-gradient(180deg,#fff 0%,var(--sg-light) 48%,#fff 100%);
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 1px 0 rgba(4,31,30,.04);
}
.sgsh-app *,
.sgsh-auth-wrap *{box-sizing:border-box}
.sgsh-app button,
.sgsh-auth-wrap button{font-family:inherit}

.sgsh-topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:26px 36px;
  border-bottom:1px solid var(--sg-border);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
}

.sgsh-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--sg-dark)}
.sgsh-symbol{position:relative;width:54px;height:34px;display:inline-block;flex:0 0 54px}
.sgsh-symbol i,
.sgsh-symbol b,
.sgsh-symbol-mini i,
.sgsh-symbol-mini b{position:absolute;display:block;background:var(--sg-brand-green);font-style:normal}
.sgsh-symbol i{width:20px;height:20px;left:0;bottom:0;border-radius:18px 0 18px 18px}
.sgsh-symbol b{width:34px;height:34px;right:0;bottom:0;border-radius:30px 0 30px 30px}
.sgsh-symbol-mini{position:relative;width:31px;height:20px;display:inline-block;vertical-align:middle;flex:0 0 31px}
.sgsh-symbol-mini i{width:12px;height:12px;left:0;bottom:0;border-radius:12px 0 12px 12px}
.sgsh-symbol-mini b{width:20px;height:20px;right:0;bottom:0;border-radius:18px 0 18px 18px}
.sgsh-wordmark{display:inline-flex;align-items:baseline;gap:5px;font-family:Signika,"Source Sans 3",Arial,sans-serif;font-size:28px;letter-spacing:.04em;line-height:1;color:var(--sg-dark)}
.sgsh-wordmark strong{font-weight:700}.sgsh-wordmark span{font-weight:400}

.sgsh-profile{display:flex;align-items:center;gap:12px}
.sgsh-profile strong{display:block;font-family:Signika,"Source Sans 3",Arial,sans-serif;font-size:17px;color:var(--sg-dark)}
.sgsh-profile span{display:block;color:var(--sg-gray);font-size:14px}.sgsh-avatar{width:46px;height:46px;border-radius:999px;background:linear-gradient(145deg,#fff,#e8f4eb);display:grid;place-items:center;color:var(--sg-web-green);font-weight:800;border:1px solid #DCEADE;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
.sgsh-logout{margin-left:10px;color:var(--sg-web-green);text-decoration:none;font-weight:700;font-size:14px}.sgsh-logout:hover{text-decoration:underline}

.sgsh-layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(340px,.9fr);gap:28px;padding:30px 36px 22px}.sgsh-calendar-panel{min-width:0}.sgsh-month-bar{display:flex;align-items:center;gap:16px;margin-bottom:20px}.sgsh-month-bar h2{font-family:Signika,"Source Sans 3",Arial,sans-serif;font-size:30px;font-weight:600;margin:0;min-width:238px;text-align:center;color:var(--sg-dark)}.sgsh-icon-btn{border:0;background:transparent;font-size:42px;line-height:1;color:var(--sg-dark);cursor:pointer;padding:4px 10px;border-radius:14px;transition:.18s ease}.sgsh-icon-btn:hover{background:#EDF5EE}.sgsh-view-toggle{margin-left:auto;display:flex;border:1px solid var(--sg-border-strong);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 4px 18px rgba(4,31,30,.04)}.sgsh-view-toggle button{border:0;background:#fff;padding:10px 18px;cursor:pointer;font-weight:700;color:#2E3F3A}.sgsh-view-toggle button.is-active{background:linear-gradient(135deg,var(--sg-web-green),var(--sg-dark-blue));color:#fff}

.sgsh-calendar{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--sg-border);border-radius:20px;overflow:hidden;background:#fff;box-shadow:var(--sg-shadow-soft)}.sgsh-weekday{padding:14px 10px;text-align:center;font-weight:800;color:#40514C;border-bottom:1px solid var(--sg-border);background:#fff}.sgsh-day{min-height:120px;padding:14px;border:0;border-right:1px solid var(--sg-border);border-bottom:1px solid var(--sg-border);position:relative;cursor:pointer;transition:.18s ease;background:#fff;text-align:left;color:var(--sg-dark)}.sgsh-day:nth-child(7n){border-right:0}.sgsh-day:hover{background:#FAFDFA;box-shadow:inset 0 0 0 2px rgba(58,130,70,.18)}.sgsh-day.is-out{color:var(--sg-gray-light);background:#FBFCFB}.sgsh-day.is-today{background:linear-gradient(180deg,#ECF6EE,#fff)}.sgsh-day.is-selected:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(67,173,85,.13),rgba(68,153,82,.04));pointer-events:none}.sgsh-day-number{position:relative;z-index:1;font-size:20px;font-weight:500}.sgsh-day.is-today .sgsh-day-number{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--sg-web-green);color:#fff;font-weight:800}.sgsh-day-entry{position:relative;z-index:1;margin-top:14px;font-size:14px;color:#2F3F3A;display:flex;align-items:center;gap:7px;font-weight:600}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#B9CABB}.dot.green{background:var(--sg-web-green)}.dot.pale{background:#BEDDC5}.dot.amber{background:var(--sg-yellow)}.dot.red{background:var(--sg-red)}.sgsh-status-pending .sgsh-day-entry .dot{background:var(--sg-yellow)}.sgsh-status-approved .sgsh-day-entry .dot{background:var(--sg-web-green)}.sgsh-status-partial .sgsh-day-entry .dot{background:var(--sg-blue)}.sgsh-status-rejected .sgsh-day-entry .dot{background:var(--sg-red)}

.sgsh-side{display:flex;flex-direction:column;gap:16px}.sgsh-card{background:#fff;border:1px solid var(--sg-border);border-radius:var(--sg-radius);padding:24px;box-shadow:var(--sg-shadow-soft)}.sgsh-quota-card{background:radial-gradient(circle at 88% 12%,rgba(68,153,82,.12),transparent 30%),linear-gradient(135deg,#fff,#F7FBF8)}.sgsh-card h3{font-family:Signika,"Source Sans 3",Arial,sans-serif;font-size:22px;font-weight:600;margin:0 0 18px;color:var(--sg-dark)}.sgsh-card-help{margin:3px 0 0;color:var(--sg-gray);font-size:13px}.sgsh-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.sgsh-ring-wrap{display:flex;align-items:center;gap:24px;margin-top:12px}.sgsh-ring{width:144px;height:144px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--sg-web-green) calc(var(--p)*1%),#CCE5D1 0);position:relative;flex:0 0 144px;box-shadow:inset 0 0 0 1px rgba(58,130,70,.08)}.sgsh-ring:after{content:"";position:absolute;inset:14px;background:#fff;border-radius:50%;box-shadow:inset 0 0 25px rgba(4,31,30,.05)}.sgsh-ring strong,.sgsh-ring span{position:relative;z-index:1}.sgsh-ring strong{font-family:Signika,"Source Sans 3",Arial,sans-serif;font-size:36px;color:var(--sg-web-green);line-height:1}.sgsh-ring span{font-size:15px;margin-top:44px;position:absolute;color:#17332B}.sgsh-legend{display:grid;gap:14px;flex:1}.sgsh-legend div{display:flex;align-items:center;gap:10px;justify-content:space-between;font-size:15px;color:#263733}.sgsh-stat-line{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 0;font-size:15px;color:#263733}.sgsh-stat-line strong{font-size:17px;color:var(--sg-dark)}.sgsh-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 11px;background:#E9F5EC;color:var(--sg-web-green);font-size:13px;font-weight:800}.sgsh-pill.status-pending_signature{background:#FFF4D8;color:#7C5B00}.sgsh-pill.status-signed{background:#E8F6EC;color:#126B32}.sgsh-pill.status-missing{background:#EEF2EF;color:#60706A}.sgsh-muted{color:var(--sg-gray);line-height:1.45}.sgsh-contract-files{display:grid;gap:8px;margin:12px 0}.sgsh-contract-files a{color:var(--sg-web-green);font-weight:800;text-decoration:none}.sgsh-contract-files a:hover{text-decoration:underline}.sgsh-upload-box{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px dashed #B7D5BE;border-radius:17px;background:#FBFEFB;padding:17px;cursor:pointer;color:var(--sg-web-green);font-weight:800;text-align:center;transition:.18s ease}.sgsh-upload-box:hover{background:#F2F9F3;border-color:var(--sg-web-green)}.sgsh-upload-box small{margin-top:4px;color:var(--sg-gray);font-weight:500}.sgsh-primary-btn{width:100%;border:0;border-radius:12px;background:linear-gradient(135deg,var(--sg-web-green-light),var(--sg-web-green));color:#fff;font-weight:800;padding:14px 18px;cursor:pointer;box-shadow:0 12px 26px rgba(58,130,70,.21);transition:.18s ease}.sgsh-primary-btn:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(58,130,70,.24)}.sgsh-primary-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.sgsh-form-message{font-size:14px;margin-top:10px}.sgsh-form-message.is-error{color:#B9362E}.sgsh-form-message.is-success{color:var(--sg-web-green)}

.sgsh-modal[hidden]{display:none}.sgsh-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:20px}.sgsh-modal-backdrop{position:absolute;inset:0;background:rgba(4,31,30,.32);backdrop-filter:blur(4px)}.sgsh-entry-form{position:relative;z-index:1;background:#fff;border:1px solid #DBE6DD;border-radius:20px;box-shadow:0 34px 86px rgba(4,31,30,.22);width:min(430px,100%);padding:28px}.sgsh-entry-form h3{font-size:24px;margin:0 0 8px;font-family:Signika,"Source Sans 3",Arial,sans-serif;font-weight:600}.sgsh-entry-form label,.sgsh-auth-form label{display:block;margin:16px 0 10px;font-weight:800;color:var(--sg-dark)}.sgsh-entry-form input,.sgsh-entry-form textarea,.sgsh-auth-form input{width:100%;border:1px solid #CFDCD2;border-radius:10px;padding:12px 13px;font:inherit;background:#fff;color:var(--sg-dark)}.sgsh-entry-form input:focus,.sgsh-entry-form textarea:focus,.sgsh-auth-form input:focus{outline:2px solid rgba(67,173,85,.24);border-color:var(--sg-web-green)}.sgsh-entry-form textarea{resize:vertical}.sgsh-hours-input{display:flex;align-items:center;border:1px solid #CFDCD2;border-radius:10px;overflow:hidden;background:#fff}.sgsh-hours-input input{border:0;border-radius:0}.sgsh-hours-input span{padding:0 14px;color:#4C5653}.sgsh-modal-close{position:absolute;right:16px;top:14px;border:0;background:#fff;font-size:28px;cursor:pointer;color:#45514E}.sgsh-entry-meta{color:var(--sg-gray);font-size:13px;margin:8px 0 14px}.sgsh-list-view{display:grid;gap:10px}.sgsh-list-item{display:grid;grid-template-columns:120px 80px 150px 1fr;gap:14px;align-items:center;background:#fff;border:1px solid var(--sg-border);border-radius:16px;padding:14px;text-align:left;box-shadow:0 5px 18px rgba(4,31,30,.04);cursor:pointer;color:var(--sg-dark)}.sgsh-list-item:hover{border-color:#BBD9C2;background:#FCFEFC}.sgsh-footer-note{display:flex;align-items:center;justify-content:center;gap:10px;text-align:center;color:#67736F;padding:16px 20px 30px}

.sgsh-auth-wrap{min-height:680px;display:grid;place-items:center;padding:44px 20px}.sgsh-auth-card{width:min(470px,100%);background:#fff;border:1px solid var(--sg-border);border-radius:28px;box-shadow:var(--sg-shadow);padding:36px}.sgsh-auth-kicker{display:inline-flex;margin-top:22px;border-radius:999px;background:#EDF6EF;color:var(--sg-web-green);font-weight:800;letter-spacing:.11em;text-transform:uppercase;font-size:12px;padding:6px 10px}.sgsh-auth-card h1{font-family:Signika,"Source Sans 3",Arial,sans-serif;font-size:36px;font-weight:600;margin:14px 0 8px;color:var(--sg-dark)}.sgsh-auth-tabs{display:flex;border:1px solid var(--sg-border);border-radius:13px;overflow:hidden;margin:24px 0 12px}.sgsh-auth-tabs button{flex:1;border:0;background:#fff;padding:12px;font-weight:800;cursor:pointer;color:var(--sg-dark)}.sgsh-auth-tabs button.is-active{background:var(--sg-web-green);color:#fff}.sgsh-auth-form{display:none}.sgsh-auth-form.is-active{display:block}

@media (max-width:1100px){.sgsh-layout{grid-template-columns:1fr}.sgsh-side{grid-template-columns:repeat(2,1fr);display:grid}.sgsh-contract-card{grid-column:1/-1}}
@media (max-width:720px){.sgsh-topbar{padding:20px;align-items:flex-start}.sgsh-wordmark{font-size:22px}.sgsh-symbol{width:45px;height:29px;flex-basis:45px}.sgsh-symbol i{width:17px;height:17px}.sgsh-symbol b{width:29px;height:29px}.sgsh-profile{align-items:flex-end;flex-direction:column;gap:6px;text-align:right}.sgsh-layout{padding:20px;gap:20px}.sgsh-month-bar{flex-wrap:wrap}.sgsh-month-bar h2{min-width:160px;font-size:24px}.sgsh-view-toggle{width:100%;margin-left:0}.sgsh-view-toggle button{flex:1}.sgsh-calendar{overflow:auto}.sgsh-weekday{font-size:12px;padding:10px 4px}.sgsh-day{min-height:86px;padding:9px}.sgsh-day-number{font-size:16px}.sgsh-day-entry{font-size:12px}.sgsh-side{display:flex}.sgsh-ring-wrap{flex-direction:column;align-items:flex-start}.sgsh-list-item{grid-template-columns:1fr;gap:4px}.sgsh-auth-card{padding:26px}}
