:root{--bg:#f4f7f8;--panel:#fff;--text:#17333a;--muted:#6a7e83;--line:#dbe5e8;--brand:#0d6073;--brand2:#0b8ba2;--ok:#2f8b57;--warn:#c98a16;--danger:#c44c4c;--shadow:0 10px 26px rgba(25,55,62,.08)}
*{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}body{margin:0;min-height:100vh}a{color:var(--brand);text-decoration:none}button,input,select,textarea{font:inherit}.container{max-width:1240px;margin:0 auto;padding:28px 22px 60px}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,calc((100vw - 1240px)/2 + 22px));position:sticky;top:0;z-index:10}.brand,.auth-logo{display:flex;align-items:center;gap:10px;color:var(--text)}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,var(--brand),var(--brand2));display:inline-grid;place-items:center;color:#fff;font-weight:800;font-size:21px}.brand strong,.auth-logo strong{display:block;line-height:1}.brand small,.auth-logo small{display:block;color:var(--brand2);font-weight:800;letter-spacing:.16em;font-size:10px;margin-top:4px}.topnav{display:flex;align-items:center;gap:18px;font-size:14px}.user-chip{padding:8px 11px;border-radius:999px;background:#eef5f6;color:#48656b}.page-head,.event-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:6px 0 24px}.page-head h1,.event-hero h1{margin:4px 0 6px;font-size:34px;line-height:1.08}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:12px;font-weight:800;color:var(--brand2);margin:0}.muted{color:var(--muted)}.back{display:inline-block;margin-bottom:10px;color:var(--muted);font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.small{padding:8px 11px;font-size:14px}.full-btn{width:100%}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow);margin-bottom:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head h2{margin:0;font-size:19px}.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.event-card{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;color:inherit;box-shadow:var(--shadow);transition:.18s ease}.event-card:hover{transform:translateY(-2px);border-color:#b9d7de}.event-card h2{font-size:20px;margin:12px 0 7px}.event-card p{margin:0 0 18px;color:var(--muted)}.event-card-top,.event-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13px}.event-date{font-weight:700;color:var(--brand)}.progress-pill{background:#eaf5f7;color:var(--brand);border-radius:999px;padding:5px 9px;font-weight:800}.progress{height:8px;background:#e8eef0;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));border-radius:99px}.event-meta{margin-top:12px;color:var(--muted)}.danger-text{color:var(--danger)}.empty{text-align:center;background:#fff;border:1px dashed #bfd0d4;border-radius:18px;padding:60px 24px}.empty-icon{font-size:42px}.empty h2{margin:14px 0 8px}.event-hero{background:linear-gradient(135deg,#0e5b6d,#0b8196);color:#fff;border-radius:18px;padding:26px;align-items:center}.event-hero .back,.event-hero .eyebrow,.event-hero p{color:#d7eef2}.hero-progress{min-width:180px;text-align:right}.hero-progress strong{font-size:36px;display:block}.hero-progress span{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.hero-progress .progress{margin-top:10px;background:rgba(255,255,255,.25)}.hero-progress .progress span{background:#fff}.tabs{display:flex;gap:4px;overflow-x:auto;margin:-4px 0 20px;padding-bottom:3px}.tabs a{white-space:nowrap;padding:10px 12px;border-radius:9px;color:var(--muted);font-weight:700;font-size:14px}.tabs a.active{background:#fff;color:var(--brand);box-shadow:0 2px 8px rgba(20,50,58,.08)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.stat span{display:block;font-size:13px;color:var(--muted)}.stat strong{display:block;font-size:30px;margin-top:3px}.stat.danger strong{color:var(--danger)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.check-list>div{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #edf2f3}.check-list>div:last-child{border-bottom:0}.check{width:24px;height:24px;border:2px solid #cad8db;border-radius:7px;display:grid;place-items:center;color:#91a4a8;font-weight:900}.check.done{background:#e6f4ec;border-color:#9bc7ae;color:var(--ok)}.details{display:grid;grid-template-columns:130px 1fr;gap:10px 14px}.details dt{color:var(--muted)}.details dd{margin:0;font-weight:600}.task-row,.task-item,.person-card,.info-card{display:flex;align-items:center;gap:12px;border-top:1px solid #edf2f3;padding:13px 0}.task-row:first-of-type,.task-item:first-of-type,.person-card:first-of-type,.info-card:first-of-type{border-top:0}.task-row>div,.task-main,.person-card>div,.info-card>div{flex:1;min-width:0}.task-row strong,.task-main strong,.person-card strong,.info-card strong{display:block}.task-row small,.task-main small,.person-card small,.info-card small,.person-card span,.info-card span{display:block;color:var(--muted);margin-top:3px}.priority{width:9px;height:9px;border-radius:50%;background:#b7c4c7}.priority.high{background:var(--danger)}.priority.low{background:var(--ok)}.badge,.priority-label{font-size:12px;border-radius:999px;padding:5px 8px;background:#eef3f4;color:#60777c}.priority-label.high{background:#fdecec;color:#a33737}.priority-label.low{background:#e9f5ed;color:#2f7b4c}.task-item.completed{opacity:.62}.task-item.completed .task-main strong{text-decoration:line-through}.task-item.overdue{background:#fff7f7;margin:0 -12px;padding-left:12px;padding-right:12px;border-radius:10px}.task-check{width:28px;height:28px;border-radius:8px;border:2px solid #c7d5d8;background:#fff;color:var(--ok);font-weight:900;cursor:pointer}.completed .task-check{background:#e6f4ec;border-color:#9bc7ae}.icon-btn,.link-btn{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:6px 8px;border-radius:7px}.icon-btn:hover{background:#f4e6e6;color:var(--danger)}.link-btn{color:var(--brand);font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid.compact{background:#f7fafb;border:1px solid #e6eef0;border-radius:12px;padding:16px;margin-bottom:18px}.form-grid .full{grid-column:1/-1}label{display:block;font-size:13px;font-weight:700;color:#486168}input,select,textarea{width:100%;border:1px solid #cfdcdf;border-radius:9px;background:#fff;padding:10px 11px;margin-top:6px;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#73afbb;box-shadow:0 0 0 3px rgba(18,126,148,.1)}textarea{resize:vertical}.checkbox{display:flex;align-items:center;gap:8px;margin-top:22px}.checkbox input{width:auto;margin:0}.actions{display:flex;gap:10px}.hidden{display:none!important}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #edf2f3;vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.flash{padding:12px 14px;border-radius:10px;margin-bottom:16px;border:1px solid}.flash.success{background:#eaf7ef;color:#2d7049;border-color:#b9ddc7}.flash.error{background:#fff0f0;color:#983e3e;border-color:#ecc3c3}.footer{text-align:center;padding:26px;color:#7a9095;font-size:12px}.auth-page{display:grid;place-items:center;padding:28px;background:radial-gradient(circle at top,#eaf7f9,#f4f7f8 50%)}.auth-card{width:min(100%,430px);background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 20px 55px rgba(24,57,64,.12)}.auth-card.wide{width:min(100%,760px)}.auth-logo{margin-bottom:24px}.auth-card h1{margin:0 0 8px}.auth-card form label{margin-bottom:14px}.auth-links{text-align:center;font-size:14px;margin:18px 0 0}hr{border:0;border-top:1px solid var(--line)}
@media(max-width:820px){.container{padding:18px 14px 50px}.topbar{padding:0 14px}.topnav .user-chip{display:none}.page-head,.event-hero{align-items:flex-start;flex-direction:column}.page-head h1,.event-hero h1{font-size:28px}.page-head .btn{width:100%}.event-grid,.two-col{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.hero-progress{width:100%;text-align:left}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.details{grid-template-columns:110px 1fr}.task-item{align-items:flex-start;flex-wrap:wrap}.priority-label{margin-left:40px}.event-meta{align-items:flex-start;flex-direction:column;gap:5px}}
@media(max-width:480px){.brand small{display:none}.topnav{gap:11px;font-size:13px}.stats-grid{grid-template-columns:1fr 1fr}.stat strong{font-size:25px}.panel{padding:15px}.event-card{padding:16px}.tabs{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}.auth-card{padding:22px}}
.field-help{display:block;margin-top:6px;color:var(--muted);font-weight:400}.subpanel-title{font-weight:800;margin:2px 0 8px}.embedded-grid{margin-bottom:0}.structure-badge{display:inline-flex;align-items:center;gap:6px;background:#eaf5f7;color:var(--brand);border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.check.partial{background:#fff6df;border-color:#e8c56c;color:#a77400}.check-detail{margin-left:auto;color:var(--muted);font-size:12px}.event-card-sub{display:flex;flex-wrap:wrap;gap:8px 12px;margin:-8px 0 16px;color:var(--muted);font-size:13px}.stage-hint{padding:12px 14px;border-radius:10px;background:#eef7f8;color:#42666e;margin-bottom:16px}
.stat .stat-text{font-size:20px;margin-top:10px}
.panel-subtitle{margin:4px 0 0;color:var(--muted);font-size:13px}.panel-head>div{min-width:0}.empty-mini{padding:18px;border:1px dashed #c9d8db;border-radius:12px;color:var(--muted);text-align:center}.timeline{display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:110px 1fr auto;gap:14px;align-items:start;padding:15px 0;border-top:1px solid #edf2f3}.timeline-item:first-child{border-top:0}.timeline-time{font-weight:800;color:var(--brand)}.timeline-main strong,.timeline-main span,.timeline-main small{display:block}.timeline-main span,.timeline-main small{color:var(--muted);margin-top:3px}.form-section{border-top:1px solid var(--line);padding-top:16px;margin-top:4px}.form-section:first-of-type{border-top:0;padding-top:0}.form-section h3{margin:0;color:var(--brand);font-size:16px}.doc-row,.partner-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #edf2f3}.doc-row:first-of-type,.partner-row:first-of-type{border-top:0}.doc-row>div,.partner-row>div{flex:1;min-width:0}.doc-row strong,.partner-row strong{display:block}.doc-row small,.partner-row small{display:block;color:var(--muted);margin-top:3px}.doc-type{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--brand2);margin-bottom:3px}.documents-grid{align-items:start}
@media(max-width:820px){.timeline-item{grid-template-columns:1fr auto}.timeline-time{grid-column:1/-1;margin-bottom:-4px}.documents-grid{grid-template-columns:1fr}.doc-row,.partner-row{align-items:flex-start;flex-wrap:wrap}}
.row-actions{display:flex;align-items:center;gap:2px}.row-actions form{margin:0}.edit-btn:hover{background:#e8f4f6;color:var(--brand)}.timeline-edit{grid-column:1/-1;margin:4px 0 2px}.edit-form-actions{display:flex;gap:10px;flex-wrap:wrap}.timeline-item:has(.timeline-edit:not(.hidden)){background:#fbfdfd;margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px;border-radius:12px}
@media(max-width:820px){.row-actions{align-self:start}.timeline-edit{grid-column:1/-1}.edit-form-actions .btn{flex:1}}

.team-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}.team-card .team-person{min-width:0}.team-card .row-actions{align-self:start}.team-scope{font-weight:700;color:var(--brand)!important}.team-edit{grid-column:1/-1;width:100%;margin-top:2px}.team-list .person-card:has(.team-edit:not(.hidden)){background:#fbfdfd;margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px;border-radius:12px}.team-card small+small{margin-top:2px}
@media(max-width:700px){.team-card{grid-template-columns:minmax(0,1fr) auto}.team-edit{grid-column:1/-1}.team-card .row-actions{margin-top:-2px}}

.team-readiness{background:#f7fafb;border:1px solid #e1ecee;border-radius:14px;padding:15px 16px;margin:0 0 18px}.team-readiness-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.team-readiness-head strong{display:block}.team-readiness-head small{display:block;color:var(--muted);margin-top:3px}.team-readiness-count{white-space:nowrap;font-weight:800;color:var(--brand);background:#eaf5f7;border-radius:999px;padding:6px 10px;font-size:12px}.team-readiness-progress{margin-top:12px}.missing-roles{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:12px}.missing-label{color:var(--muted);font-size:12px;font-weight:700}.role-chip{display:inline-flex;align-items:center;border:1px solid #d6e4e7;background:#fff;color:#526c72;border-radius:999px;padding:5px 8px;font-size:12px}.team-ready-note{margin-top:11px;color:var(--ok);font-size:13px;font-weight:700}
@media(max-width:700px){.team-readiness-head{flex-direction:column}.team-readiness-count{white-space:normal}}

/* v0.1.7 – заявки / IOF XML */
.import-note{margin:0 0 16px;padding:11px 13px;border:1px solid #d7e7ea;background:#f4fafb;border-radius:10px;color:#4d6970;font-size:13px}.import-note strong{color:var(--text)}
.entry-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 16px}.entry-stats>div{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px}.entry-stats span{display:block;color:var(--muted);font-size:12px}.entry-stats strong{display:block;margin-top:2px;font-size:24px}
.entry-class-summary{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0 0 16px}.summary-label{font-size:12px;font-weight:800;color:var(--muted)}.class-chip{display:inline-flex;gap:6px;align-items:center;border:1px solid #d6e4e7;background:#fff;color:#526c72;border-radius:999px;padding:6px 9px;font-size:12px}.class-chip b{color:var(--brand)}.class-chip:hover,.class-chip.active{border-color:#82b9c3;background:#eaf5f7;color:var(--brand)}
.entry-filters{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) minmax(180px,1.4fr) auto;gap:10px;align-items:end;background:#f7fafb;border:1px solid #e6eef0;border-radius:12px;padding:13px;margin-bottom:16px}.entry-filters label{margin:0}.entry-filters input,.entry-filters select{margin-top:5px}.filter-actions{display:flex;gap:7px;align-items:center;padding-bottom:1px}.filter-actions .btn{white-space:nowrap}
.entries-table-wrap{max-height:650px}.entries-table{min-width:1050px}.entries-table thead th{position:sticky;top:0;background:#fff;z-index:2}.entries-table td small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.entry-status{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.entry-status.active{background:#e9f5ed;color:#2f7b4c}.entry-status.withdrawn{background:#f3eeee;color:#896161}.entry-withdrawn{opacity:.62}.entry-withdrawn td{text-decoration:none}
@media(max-width:1000px){.entry-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-search{grid-column:1/-1}.filter-actions{grid-column:1/-1}.entry-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.entry-stats{grid-template-columns:1fr 1fr}.entry-filters{grid-template-columns:1fr}.entry-search,.filter-actions{grid-column:auto}.filter-actions .btn{flex:1}.panel-head{align-items:flex-start}.panel-head>.btn{white-space:nowrap}}
/* v0.2.0 – IOF Data Standard 3.0 core */
.iof-type-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.iof-type-card{position:relative;border:1px solid var(--line);border-radius:12px;background:#fbfdfd;padding:12px 38px 12px 12px;min-height:78px}.iof-type-card strong{display:block;font-size:13px;color:var(--brand)}.iof-type-card span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.iof-type-card b{position:absolute;right:10px;top:10px;display:grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:#eaf5f7;color:var(--brand);font-size:11px}.iof-note{padding:11px 13px;border:1px solid #d7e7ea;background:#f4fafb;border-radius:10px;color:#4d6970;font-size:13px;margin-bottom:16px}.iof-doc-card{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid #edf2f3}.iof-doc-card:first-child{border-top:0}.iof-doc-main{flex:1;min-width:0}.iof-doc-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.iof-doc-title strong{overflow-wrap:anywhere}.iof-root{display:inline-flex;padding:4px 7px;border-radius:7px;background:#eaf5f7;color:var(--brand);font-size:11px;font-weight:900}.iof-doc-main small{display:block;color:var(--muted);margin-top:4px}.iof-doc-actions{display:flex;align-items:center;gap:6px}.iof-valid{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;white-space:nowrap}.iof-valid.ok{background:#e9f5ed;color:#2f7b4c}.iof-valid.warn{background:#fff3dc;color:#9a6b11}.iof-warning{margin-top:7px;color:#9a6b11;font-size:12px}.iof-note code{font-size:12px}
@media(max-width:1050px){.iof-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.iof-type-grid{grid-template-columns:1fr}.iof-doc-card{flex-direction:column}.iof-doc-actions{width:100%;flex-wrap:wrap}}

/* v0.2.1 IOF XML Explorer */
.iof-toolbar-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}.iof-toolbar-actions form{margin:0}
.iof-xsd-box{margin-top:14px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:#f7fafb}
.iof-xsd-box.ok{background:#eaf7ef;border-color:#b9ddc7;color:#2d7049}.iof-xsd-box.warn{background:#fff7e8;border-color:#ebd39d;color:#8a6419}
.iof-xsd-box pre{white-space:pre-wrap;max-height:280px;overflow:auto;color:inherit;font-size:12px}
.iof-element-cloud{display:flex;flex-wrap:wrap;gap:8px}.iof-element-cloud a{display:inline-flex;gap:7px;align-items:center;border:1px solid var(--line);background:#f8fbfb;border-radius:999px;padding:6px 9px;color:var(--text);font-size:12px}
.iof-element-cloud a b{color:var(--brand)}.iof-browser-grid{align-items:start}.iof-index-count{font-size:11px;color:var(--muted);white-space:nowrap}
.iof-node-table{font-size:12px}.iof-node-table td{vertical-align:top}.iof-node-name{padding-left:calc(min(var(--depth),8)*13px)}.iof-node-name strong{display:block}.iof-node-name small{display:block;color:var(--muted);font-size:10px;max-width:240px;overflow-wrap:anywhere}
.iof-node-value{min-width:180px;max-width:360px;overflow-wrap:anywhere}.iof-node-table code{font-size:11px;white-space:normal;overflow-wrap:anywhere}.iof-path{color:#667f84}.pager{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:16px}.iof-status-text{font-size:24px!important}
@media(max-width:820px){.iof-meta-stats{grid-template-columns:1fr 1fr}.iof-browser-grid{grid-template-columns:1fr}.iof-node-table th:nth-child(4),.iof-node-table td:nth-child(4),.iof-node-table th:nth-child(5),.iof-node-table td:nth-child(5){display:none}}

/* v0.2.2 – unified IOF import */
.iof-auto-sync{padding:12px 14px;border:1px solid #cfe1e6;border-radius:12px;background:#f5fafb;color:#375b66;font-size:14px}
.iof-sync-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:5px 9px;border-radius:999px;background:#eef5f6;color:#365d67;font-size:12px;font-weight:700}
.iof-sync-badge.synced{background:#e8f7ee;color:#177146}
.iof-sync-badge.needs_stage{background:#fff4df;color:#9a6500}
.iof-sync-badge.stored{background:#edf3f5;color:#57717a}
.entries-source-note{margin:0 0 16px}

/* v0.2.3 – IOF CourseData */
.course-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 16px}.course-stat{background:#f4f9fa;border:1px solid #d9e8eb;border-radius:14px;padding:14px 16px}.course-stat span{display:block;color:#667f86;font-size:.82rem;margin-bottom:4px}.course-stat strong{font-size:1.55rem;color:#073646}.course-note{margin:0 0 18px}.section-title{margin:22px 0 12px}.course-subpanel{margin-top:18px}.source-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:700;white-space:nowrap}.source-badge.iof{background:#e8f7ef;color:#176a48}.source-badge.manual{background:#eef3f5;color:#607078}.row-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end}.row-actions form{margin:0}.course-view-btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.controls-table-wrap{max-height:620px;overflow:auto}.controls-table-wrap thead th{position:sticky;top:0;background:#fff;z-index:1}.course-view-panel h1{margin:.3rem 0 .2rem;font-size:2rem}.course-details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.course-details-grid>div{background:#f6f9fa;border:1px solid #e1eaec;border-radius:12px;padding:12px 14px}.course-details-grid span{display:block;color:#6b8086;font-size:.8rem;margin-bottom:3px}.course-sequence-table small,table small{display:block;color:#71868c;margin-top:3px;font-size:.78rem}
@media(max-width:900px){.course-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.course-stats-grid,.course-details-grid{grid-template-columns:1fr}.source-badge{white-space:normal}}

/* v0.2.4 – EntryList ↔ CourseData reconciliation */
.reconcile-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.reconcile-stats>div{border:1px solid var(--line);background:#f8fbfb;border-radius:13px;padding:13px 15px}.reconcile-stats>div.warn{background:#fff8ea;border-color:#ecd7aa}.reconcile-stats span{display:block;color:var(--muted);font-size:12px}.reconcile-stats strong{display:block;font-size:24px;margin-top:2px;color:#073646}.reconcile-stats small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.reconciliation-note{margin-bottom:16px}.reconcile-table{min-width:1180px}.reconcile-table td{vertical-align:top}.reconcile-table td small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.reconcile-row.status-unmatched,.reconcile-row.status-manual_missing{background:#fffafa}.reconcile-row.status-ambiguous{background:#fffbf3}.reconcile-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.reconcile-status.auto{background:#e8f7ee;color:#177146}.reconcile-status.manual{background:#e7f2fa;color:#175f86}.reconcile-status.unmatched,.reconcile-status.manual_missing{background:#fdecec;color:#a33737}.reconcile-status.ambiguous{background:#fff1d7;color:#9b690c}.reconcile-form{display:flex;align-items:center;gap:6px;min-width:280px}.reconcile-form select{margin:0;min-width:165px;padding:7px 8px}.btn.tiny{padding:7px 9px;font-size:12px;border-radius:8px;white-space:nowrap}.reconcile-reset{margin-top:4px}.reconcile-reset .link-btn{font-size:11px;padding:2px 0}.course-only-box{margin-top:18px;padding:14px 15px;border:1px solid #e3ebed;border-radius:12px;background:#fafcfc}.course-only-box h3{margin:0 0 4px;font-size:15px}.course-only-box p{margin:0 0 10px;color:var(--muted);font-size:12px}.class-chip-row{display:flex;flex-wrap:wrap;gap:7px}.muted-chip{background:#f4f7f8;color:#63777d}.class-reconcile-panel code{font-size:11px}
@media(max-width:900px){.reconcile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.reconcile-stats{grid-template-columns:1fr}.reconcile-form{min-width:240px;flex-wrap:wrap}.reconcile-form select{min-width:100%;flex:1}}

/* v0.3.0 – Results & Standings */
.results-switch{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.results-actions{display:flex;justify-content:flex-end;gap:8px;margin:12px 0}
.results-filter{margin:14px 0;display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.results-filter label{min-width:150px;flex:1}
.results-filter input,.results-filter select{width:100%}
.results-table td small,.team-ranking-table td small{display:block;color:#71858c;margin-top:3px}
.result-place{font-size:1.1rem;font-weight:800;white-space:nowrap}
.team-points{font-size:1.12rem}
.team-class-form{border:1px solid #d7e4e8;border-radius:14px;padding:14px;margin:14px 0;background:#f8fbfc}
.team-class-grid{display:flex;flex-wrap:wrap;gap:8px 14px;margin:10px 0}
.team-class-grid label{display:flex;gap:6px;align-items:center;border:1px solid #d8e4e7;border-radius:999px;padding:7px 11px;background:white}
.team-class-grid small{color:#73868d}
.team-stage-label{display:block;max-width:320px;margin-bottom:8px}
.team-stage-label select{width:100%}
.team-form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.team-breakdown{min-width:330px;padding:8px 0}
.team-breakdown>div{display:flex;justify-content:space-between;gap:18px;padding:5px 0;border-bottom:1px solid #edf2f4}
.team-breakdown>div:last-child{border-bottom:0}
.result-detail-panel .result-details{margin-top:18px}
.results-rule-note,.team-points-note{margin-top:14px}
@media(max-width:760px){
  .results-actions{justify-content:flex-start}
  .team-breakdown{min-width:240px}
  .results-filter label{min-width:100%;flex-basis:100%}
}

/* v0.3.1 – configurable team scoring */
.team-scoring-settings{border:1px solid #cfdfe3;border-radius:15px;background:#fbfdfd;padding:16px;margin:16px 0}
.team-scoring-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.team-scoring-head h3{margin:0 0 4px;font-size:18px}.team-scoring-head p{margin:0;color:var(--muted);font-size:12px;max-width:820px}
.team-scoring-modes{display:grid;grid-template-columns:1.65fr .85fr 1fr;gap:10px}.scoring-card{display:block;border:1px solid #d6e3e6;border-radius:12px;background:#fff;padding:13px 14px;min-width:0}.scoring-card.selected{border-color:#6aa9b7;box-shadow:0 0 0 2px rgba(19,126,148,.08)}
.scoring-radio{display:flex;gap:7px;align-items:center;color:#173b44}.scoring-radio input,.scoring-option input,.scoring-scope input,.bonus-toggle input{width:auto;margin:0}.scoring-desc{display:block;color:var(--muted);font-size:11px;line-height:1.4;margin:7px 0}.scoring-subtitle{display:block;font-size:11px;font-weight:800;color:#506b72;margin:8px 0 5px}.scoring-option{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:#34545c;margin:5px 0}
.fixed-points-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px 10px;font-size:12px;margin-top:9px;color:#34545c}.fixed-points-grid span{white-space:nowrap}.fixed-points-grid b{color:#173b44}
.organizer-max{display:flex;align-items:center;gap:7px;margin-top:14px;font-size:12px;font-weight:700}.organizer-max input{width:78px;margin:0;padding:7px 8px}
.team-scoring-bottom{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.scoring-scope,.scoring-bonuses{border-top:1px solid #e4edef;padding-top:12px}.scoring-scope>strong,.scoring-bonuses>strong{display:block;font-size:12px;color:#506b72;margin-bottom:7px}.scoring-scope label,.bonus-toggle{display:flex;align-items:center;gap:7px;margin:6px 0;font-size:12px;color:#34545c}.inline-number{width:62px!important;margin:0!important;padding:6px 7px!important}.bonus-inputs{display:flex;gap:9px;flex-wrap:wrap;margin-top:7px}.bonus-inputs label{display:flex;align-items:center;gap:5px;font-size:12px}.bonus-inputs input{width:58px;margin:0;padding:6px 7px}
.team-breakdown small{display:inline;color:#70848a;margin:0 0 0 4px}
@media(max-width:980px){.team-scoring-modes{grid-template-columns:1fr}.team-scoring-bottom{grid-template-columns:1fr}.team-scoring-head{flex-direction:column}.team-scoring-head .btn{width:100%}}

/* v0.3.2 – saved team scoring class selection */
.team-class-settings{margin-top:15px;padding-top:15px;border-top:1px solid #e2ecee}.team-class-settings-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.team-class-settings-head>div>strong{display:block;font-size:13px;color:#35565f}.team-class-settings-head small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.team-class-count{display:inline-flex;align-items:center;gap:4px;border:1px solid #d6e4e7;background:#f5f9fa;border-radius:999px;padding:5px 9px;color:#60777e;font-size:11px;white-space:nowrap}.team-class-count b{color:#173b44;font-size:13px}.team-class-mode{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px}.team-class-mode>label{display:flex;align-items:flex-start;gap:8px;border:1px solid #d8e5e8;border-radius:11px;background:#fff;padding:10px 11px}.team-class-mode input{width:auto;margin:2px 0 0}.team-class-mode span strong{display:block;font-size:12px;color:#234951}.team-class-mode span small{display:block;font-size:10px;color:var(--muted);margin-top:2px;line-height:1.35}.team-class-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.saved-team-classes{margin:8px 0 0}.saved-team-classes label{cursor:pointer}.team-selected-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid #d9e6e9;background:#f7fafb;border-radius:12px;padding:10px 12px;margin:13px 0;color:#49666e;font-size:12px}.team-selected-summary strong{color:#173b44}
@media(max-width:760px){.team-class-mode{grid-template-columns:1fr}.team-class-settings-head{flex-direction:column}.team-class-count{align-self:flex-start}}


/* v0.3.5 – editable map cards */
.map-info-card>.map-actions{flex:0 0 auto;display:flex;align-items:center;gap:4px}.map-actions form{margin:0}.edit-icon-btn:hover{background:#e8f3f6;color:var(--brand)}.map-edit-form{margin:0 0 8px;border-left:3px solid var(--brand2)}.map-edit-actions{display:flex;gap:8px;align-items:center}.map-edit-actions .btn{width:auto}
@media(max-width:820px){.map-info-card{align-items:flex-start}.map-edit-actions{align-items:stretch;flex-direction:column}.map-edit-actions .btn{width:100%}}

/* v0.3.7 – OrienteeringOnline entry import */
.entry-import-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:12px;margin:14px 0 16px}.entry-import-card{border:1px solid #d6e4e7;border-radius:14px;background:#f8fbfc;padding:14px 16px}.entry-import-card>strong{display:block;color:#173b44;margin-bottom:5px}.entry-import-card>span{display:block;color:var(--muted);font-size:12px;line-height:1.45;margin-bottom:10px}.oonet-import>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}.oonet-import>summary::-webkit-details-marker{display:none}.oonet-import>summary strong{color:#173b44}.oonet-import>summary span{color:var(--muted);font-size:11px;text-align:right}.oonet-import[open]>summary{padding-bottom:12px;border-bottom:1px solid #e2ecee;margin-bottom:12px}.oonet-import-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.oonet-import-form label{margin:0}.oonet-import-form select,.oonet-import-form input[type=file]{width:100%}.oonet-import-form .full{grid-column:1/-1}.oonet-hint{font-size:11px;color:#60777e;line-height:1.45;background:#fff;border:1px solid #e1eaec;border-radius:10px;padding:9px 11px}.source-badge.oonet{background:#fff2d9;color:#8b620d}
@media(max-width:820px){.entry-import-grid{grid-template-columns:1fr}.oonet-import-form{grid-template-columns:1fr}.oonet-import-form .full{grid-column:auto}.oonet-import>summary{align-items:flex-start;flex-direction:column}.oonet-import>summary span{text-align:left}}

/* v0.3.8 – multi-source entry aggregation */
.entry-source-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.entry-source-summary .source-badge{margin:0}
/* v0.4.0 – universal entry import */
.universal-entry-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr)}
.universal-entry-card{background:linear-gradient(180deg,#f7fbfc,#f2f8f9)}
.universal-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.universal-entry-head>div>strong{display:block;color:#173b44;font-size:1rem;margin-bottom:5px}
.universal-entry-head>div>span{display:block;color:var(--muted);font-size:12px;line-height:1.45}
.universal-entry-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.universal-entry-form label{margin:0}.universal-entry-form .full{grid-column:1/-1}
.universal-entry-form select,.universal-entry-form input[type=file]{width:100%}
.universal-entry-form label small{display:block;color:#71868c;font-size:10px;line-height:1.35;margin-top:4px}
.universal-format-row{display:flex;gap:7px;flex-wrap:wrap}
.universal-format-row span{display:inline-flex;border:1px solid #d3e5e8;background:#fff;border-radius:999px;padding:5px 9px;color:#42656e;font-size:11px;font-weight:700}
.universal-entry-hint,.entry-format-notes{font-size:11px;color:#60777e;line-height:1.5;background:#fff;border:1px solid #e1eaec;border-radius:10px;padding:9px 11px}
.entry-import-help{display:flex;flex-direction:column;gap:9px}.entry-import-help>span{margin-bottom:0}.entry-format-notes{margin-top:auto}
.source-badge.oe{background:#e8efff;color:#34569b}.source-badge.document{background:#f2eafb;color:#74469a}.source-badge.universal{background:#dff5f8;color:#0f6a78}
.entry-row-sources{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.entry-row-sources .source-badge{font-size:.66rem;padding:3px 6px}
@media(max-width:900px){.universal-entry-grid{grid-template-columns:1fr}.universal-entry-form{grid-template-columns:1fr}.universal-entry-form .full{grid-column:auto}}

/* v0.4.1 – IOF EntryList export for OE12 */
.entry-export-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 16px;padding:14px 16px;border:1px solid #cfe2e6;border-radius:14px;background:#f6fbfc}
.entry-export-copy{min-width:230px;max-width:520px}.entry-export-copy>strong{display:block;color:#173b44;font-size:1rem;margin-bottom:5px}.entry-export-copy>span{display:block;color:var(--muted);font-size:12px;line-height:1.5}
.entry-export-form{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px 12px;flex-wrap:wrap;flex:1}.entry-export-form label{margin:0;min-width:220px}.entry-export-form label.checkbox{min-width:auto;align-self:center}.entry-export-form select{width:100%}.entry-export-form label small{display:block;color:#71868c;font-size:10px;line-height:1.35;margin-top:4px;max-width:420px}
@media(max-width:900px){.entry-export-panel{display:block}.entry-export-copy{max-width:none;margin-bottom:12px}.entry-export-form{display:grid;grid-template-columns:1fr}.entry-export-form label,.entry-export-form label.checkbox{min-width:0}.entry-export-form .btn{width:100%}}

/* v0.4.1 — entry export actions */
.panel-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){.panel-actions{width:100%;justify-content:flex-start}.panel-actions .btn{flex:1 1 auto}}

/* v0.4.2 – start fees by entry class */
.entry-fee-panel{margin:16px 0;border:1px solid #d7e5e7;border-radius:14px;background:#fbfdfd;overflow:hidden}
.entry-fee-panel>summary{cursor:pointer;padding:13px 15px;font-weight:800;color:#173f48;background:#f3f8f9;user-select:none}
.entry-fee-panel-body{padding:14px 15px 16px}
.entry-fee-panel-body>.muted{margin-top:0}
.entry-fee-table{min-width:820px;width:100%;border-collapse:collapse}
.entry-fee-table th,.entry-fee-table td{padding:9px 8px;border-bottom:1px solid #e7eff0;vertical-align:middle}
.entry-fee-table th{font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:#526b71;background:#f8fbfb}
.entry-fee-table .fee-missing{font-weight:800;color:#9a5b00}
.fee-amount-input{width:110px;min-width:90px}
.fee-currency-input{width:70px;text-transform:uppercase}
.compact-check{margin:0;white-space:nowrap}
.entry-fee-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px}
.fee-origin{display:block;margin-top:2px;font-size:10px;color:#64777c}
.fee-origin.group{color:#087b70;font-weight:700}
.fee-origin.source{color:#586a70}
@media(max-width:760px){.entry-fee-panel-body{padding:10px}.entry-fee-actions{align-items:flex-start;flex-direction:column}}

/* v0.4.3 – manual late entries */
.manual-entry-panel{margin:14px 0 16px;padding:15px 16px;border:1px solid #cfe2e6;border-radius:14px;background:linear-gradient(180deg,#fbfefe,#f3f9fa)}
.manual-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}
.manual-entry-head>div>strong{display:block;color:#173b44;font-size:1rem;margin-bottom:4px}.manual-entry-head>div>span{display:block;color:var(--muted);font-size:12px;line-height:1.45}
.manual-entry-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px}.manual-entry-form label{margin:0}.manual-entry-form .full{grid-column:1/-1}.manual-entry-form input,.manual-entry-form select{width:100%}.manual-entry-form label small,.manual-stage-field>small{display:block;color:#71868c;font-size:10px;line-height:1.35;margin-top:4px}
.manual-stage-field{border-top:1px solid #deeaec;padding-top:10px}.manual-stage-field>strong{display:block;color:#35565f;font-size:12px}.manual-stage-list{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;margin-top:8px}.manual-stage-list label.checkbox{width:auto;margin:0;padding:5px 9px;border:1px solid #d8e6e8;border-radius:9px;background:#fff}
.manual-entry-options{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.manual-entry-options label.checkbox{width:auto;margin:0}.manual-entry-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding-top:2px}.manual-entry-actions>small{color:#667d83;font-size:10px;line-height:1.4;max-width:520px}
.source-badge.manual{background:#eaf6e9;color:#39703b}
@media(max-width:1000px){.manual-entry-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.manual-entry-form{grid-template-columns:1fr}.manual-entry-form .full{grid-column:auto}.manual-entry-head{flex-direction:column}.manual-entry-actions{align-items:stretch;flex-direction:column}.manual-entry-actions .btn{width:100%}.manual-stage-list{display:grid;grid-template-columns:1fr 1fr}.manual-entry-options{display:grid;grid-template-columns:1fr 1fr}}


/* v0.4.24 – users, approval and per-event access */
.access-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.access-badge.shared{background:#eef0fb;color:#4f5c9a}.access-badge.owner{background:#eef5f6;color:#48656b}
.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;white-space:nowrap}.status-badge.pending{background:#fff1d7;color:#94630d}.status-badge.active{background:#e8f7ee;color:#177146}.status-badge.blocked{background:#fdecec;color:#a33737}
.users-table td:first-child strong,.users-table td:first-child small{display:block}.users-table td:first-child small{color:var(--muted);margin-top:3px}.user-row.status-pending{background:#fffdf8}.user-row.status-blocked{opacity:.72}.inline-form{display:inline}.inline-form input{display:none}
.access-owner-card{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;align-items:center;padding:15px 16px;border:1px solid #d7e5e7;background:#f7fbfb;border-radius:12px;margin-bottom:18px}.access-owner-card .access-role-label{grid-row:1/3;align-self:center;background:#eaf5f7;color:var(--brand);border-radius:999px;padding:6px 9px;font-size:11px;font-weight:800}.access-owner-card strong{font-size:15px}.access-owner-card small{color:var(--muted)}.access-subhead{margin:20px 0 8px;font-size:15px}.access-add-form{margin-top:18px}.access-table form{margin:0}.access-help p{margin-bottom:0}.btn:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:700px){.users-table{min-width:760px}.access-table{min-width:720px}.access-owner-card{grid-template-columns:1fr}.access-owner-card .access-role-label{grid-row:auto;width:max-content}}
