:root{
  --ink:#172036;
  --muted:#667085;
  --bg:#f5f7fb;
  --panel:#ffffff;
  --line:#e5e9f2;
  --purple:#6c4cf1;
  --pink:#ff5f87;
  --orange:#ff9b42;
  --teal:#21b7a8;
  --blue:#3e7bfa;
  --shadow:0 14px 35px rgba(36,48,83,.08);
  --radius:22px;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
a{color:inherit;text-decoration:none}
.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),var(--pink));color:white;font-weight:900}
.brand strong{display:block}.brand small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
nav{display:flex;gap:8px;flex-wrap:wrap}
nav a{padding:10px 13px;border-radius:12px;font-size:14px}
nav a:hover{background:#f0edff;color:var(--purple)}
.container{width:min(1220px,92vw);margin:34px auto 60px}
.hero{background:linear-gradient(120deg,#26204a 0%,#5e3be3 50%,#d9488c 100%);border-radius:28px;padding:42px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:var(--shadow);margin-bottom:24px}
.hero.compact{padding:30px 36px}
.hero h1{font-size:clamp(28px,4vw,48px);line-height:1.06;margin:8px 0 10px;max-width:850px}.hero.compact h1{font-size:34px}
.hero p{opacity:.88;margin:0}
.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:900;color:var(--purple)}
.hero .eyebrow,.event-hero .eyebrow{color:#ffe3f0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}
.filters{margin-bottom:24px}
.filter-grid{display:grid;grid-template-columns:2fr 1.2fr auto auto;gap:14px;align-items:end}
label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:750;color:#46516a}
input,select,textarea{width:100%;border:1px solid #d8deea;background:#fff;color:var(--ink);border-radius:13px;padding:12px 13px;font:inherit;outline:none}
input:focus,select:focus,textarea:focus{border-color:#8a78f5;box-shadow:0 0 0 3px rgba(108,76,241,.1)}
textarea{resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:13px;padding:12px 16px;font-weight:800;cursor:pointer}
.btn.primary{background:linear-gradient(135deg,var(--purple),#8b5cf6);color:#fff}
.btn.secondary{background:#eaf1ff;color:#285dc7}
.btn.ghost{background:#f5f6fa;color:#566178}
.btn.large{padding:14px 22px}.btn.full{width:100%}
.calendar-shell{overflow:hidden;padding:0}
.calendar-head{display:flex;align-items:center;justify-content:center;gap:18px;padding:22px}
.calendar-head h2{margin:0;min-width:220px;text-align:center}
.nav-circle{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f1efff;color:var(--purple);font-size:26px}
.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.weekday-row{background:#f8f9fc;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.weekday-row div{text-align:center;padding:11px 4px;font-weight:850;font-size:12px;color:#6e7890}
.day{min-height:130px;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;overflow:hidden}
.day:nth-child(7n){border-right:none}
.day.muted{background:#fafbfc;color:#a0a6b4}.day.today{box-shadow:inset 0 0 0 2px var(--purple)}
.day-number{font-weight:900;font-size:13px;margin-bottom:8px}
.day-events{display:flex;flex-direction:column;gap:5px}
.event-chip{display:block;padding:6px 7px;border-radius:9px;background:#f0edff;color:#5d43cf;font-size:11px;font-weight:800;line-height:1.25}
.event-chip span{opacity:.7;margin-right:4px}
.event-chip:hover{filter:brightness(.97)}
.section-title{display:flex;justify-content:space-between;align-items:end;margin:34px 0 15px}.section-title h2{margin:4px 0 0}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.activity-card{display:flex;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}
.activity-date{width:88px;min-width:88px;background:linear-gradient(180deg,#fff1f6,#f0edff);display:flex;flex-direction:column;align-items:center;justify-content:center}
.activity-date strong{font-size:30px;color:var(--purple)}.activity-date span{font-size:12px;color:var(--muted)}
.activity-card-body{padding:18px}.activity-card-body h3{margin:9px 0 4px}.activity-card-body p{margin:0 0 10px;color:var(--muted);font-size:13px}
.activity-card-body a{font-weight:800;color:var(--purple);font-size:13px}.meta{font-size:12px;color:#707a8f;margin:10px 0}
.pill,.status{display:inline-block;background:#efeaff;color:#6846e8;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:850}
.form-card{padding:30px}.form-section{padding-bottom:24px;margin-bottom:24px;border-bottom:1px dashed var(--line)}.form-section:last-of-type{border-bottom:none}
.form-section h3{margin-top:0}.form-grid{display:grid;gap:15px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid.four{grid-template-columns:repeat(4,1fr)}
.form-card>label{margin:16px 0}.hint{font-size:12px;color:var(--muted)}
.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line)}th{background:#fafbfc;color:#6f7990;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.actions{display:flex;align-items:center;gap:10px}.actions a,.link{color:var(--purple);font-weight:800}.link{border:none;background:none;cursor:pointer;padding:0}.danger{color:#d34458}
.login-wrap{min-height:70vh;display:grid;place-items:center}.login-card{width:min(440px,95vw)}.login-card h1{font-size:34px;margin:8px 0}.login-card form{display:grid;gap:14px;margin:24px 0}.login-card>small{color:var(--muted)}
.event-hero{border-radius:26px;padding:34px;background:linear-gradient(120deg,#25213b,#5d43d9);color:#fff;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.event-hero h1{font-size:38px;margin:10px 0 5px}.event-hero p{opacity:.82}
.date-box{width:110px;height:110px;border-radius:24px;background:rgba(255,255,255,.13);display:flex;flex-direction:column;align-items:center;justify-content:center}.date-box strong{font-size:42px}.date-box span{font-size:13px}
.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0 24px}.info-grid div{padding:14px;border-radius:14px;background:#f8f9fc}.info-grid span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:4px}.description{white-space:pre-line;line-height:1.65}
.observations form{display:grid;gap:12px}.comment-list{margin-top:20px}.comment{padding:14px 0;border-top:1px solid var(--line)}.comment strong{display:block}.comment small{color:var(--muted)}.comment p{margin-bottom:0;white-space:pre-line}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.kpi{border-radius:20px;padding:22px;color:#fff;box-shadow:var(--shadow)}.kpi span{display:block;font-size:12px;opacity:.85}.kpi strong{display:block;font-size:38px;margin-top:6px}.accent1{background:linear-gradient(135deg,#6c4cf1,#9a69ff)}.accent2{background:linear-gradient(135deg,#ff6a88,#ff9a62)}.accent3{background:linear-gradient(135deg,#16a3a1,#37cdb0)}.accent4{background:linear-gradient(135deg,#3578f6,#63a2ff)}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.stats-grid .wide{grid-column:1/-1}.bar-chart{display:grid;gap:18px;margin-top:20px}.bar-label{display:flex;justify-content:space-between;gap:15px;font-size:12px}.bar-label span{max-width:82%}.bar-track{height:10px;background:#f0edff;border-radius:999px;overflow:hidden;margin:6px 0}.bar-track.alt{background:#e7f8f4}.bar-fill{height:100%;background:linear-gradient(90deg,var(--purple),var(--pink));border-radius:999px}.bar-track.alt .bar-fill{background:linear-gradient(90deg,var(--teal),var(--blue))}.bar-row small{color:var(--muted)}
.month-bars{height:230px;display:flex;gap:14px;align-items:end;margin-top:25px;overflow-x:auto}.month-col{min-width:70px;text-align:center;font-size:12px}.vertical-track{height:150px;background:#f2f4f8;border-radius:12px;display:flex;align-items:end;overflow:hidden;margin-bottom:7px}.vertical-fill{width:100%;background:linear-gradient(180deg,var(--pink),var(--purple));border-radius:12px 12px 0 0}.month-col span{display:block;color:var(--muted);margin-top:4px}
.flash{padding:13px 16px;border-radius:13px;margin-bottom:16px;font-weight:700;font-size:13px}.flash.success{background:#e7f9f0;color:#16744b}.flash.error{background:#fff0f2;color:#b73249}
.empty{grid-column:1/-1;background:#fff;border:1px dashed #ccd2df;border-radius:18px;padding:32px;text-align:center;color:var(--muted)}
.muted-text{color:var(--muted)}
footer{text-align:center;color:#8c94a6;padding:20px;font-size:12px}
@media(max-width:900px){
  .topbar{height:auto;padding:14px 4vw;align-items:flex-start;gap:12px}.brand small{display:none}
  nav{justify-content:flex-end}
  .hero{padding:30px;align-items:flex-start;flex-direction:column}
  .filter-grid,.form-grid.two,.form-grid.four,.detail-grid,.stats-grid{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .cards{grid-template-columns:1fr}
  .calendar-shell{overflow-x:auto}.weekday-row,.calendar-grid{min-width:900px}
  .stats-grid .wide{grid-column:auto}
}
@media(max-width:560px){
  .container{width:94vw;margin-top:18px}.hero h1{font-size:30px}.event-hero h1{font-size:28px}
  .kpis{grid-template-columns:1fr}
  .info-grid{grid-template-columns:1fr}
  .activity-date{width:72px;min-width:72px}
}

.documents-box{margin-top:18px;padding:18px;border:1px dashed #cfd6e4;border-radius:16px;background:#fafbff}
.documents-box h3{margin:0 0 4px}
.document-row{display:grid;grid-template-columns:1fr 2fr;gap:14px;margin-top:12px}
.document-list{display:grid;gap:9px;margin:12px 0 18px}
.document-item{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fafbff}
.document-item span{font-weight:800}.document-item small{color:var(--muted);text-align:right;word-break:break-all}
@media(max-width:700px){.document-row{grid-template-columns:1fr}.document-item{align-items:flex-start;flex-direction:column}.document-item small{text-align:left}}

.document-item>a{display:flex;flex:1;justify-content:space-between;gap:12px;align-items:center}
.add-document-form{margin:14px 0 20px;padding:16px;border-radius:14px;background:#f8f9fc;border:1px solid var(--line);display:grid;grid-template-columns:1fr 1.7fr auto;gap:12px;align-items:end}
@media(max-width:800px){.add-document-form{grid-template-columns:1fr}}
