.dns-training-app{--dns-orange:#f58220;--dns-dark:#1b1b1b;--dns-soft:#fff6ed;--dns-border:#eee;--dns-night:#28324a;--dns-duty:#5b21b6;--dns-vacation:#0f766e;--dns-free:#e8f7ed;--dns-free-border:#8fd3a2;--dns-rest:#f3f4f6;max-width:1120px;margin:30px auto;font-family:Inter,Arial,sans-serif;color:#1f2933}.dns-training-hero{background:linear-gradient(135deg,#fb7d00,#ffb000);border-radius:28px;padding:32px;color:#111;box-shadow:0 18px 45px rgba(245,130,32,.24);position:relative;overflow:hidden}.dns-training-hero:after{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.22)}.dns-training-badge{display:inline-flex;padding:7px 12px;border-radius:999px;background:#111;color:#fff;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.dns-training-hero h2{margin:16px 0 8px;font-size:34px;line-height:1.1;font-weight:900}.dns-training-hero p{margin:0;max-width:720px;font-size:16px}.dns-training-form{margin-top:18px;background:#fff;border:1px solid var(--dns-border);border-radius:28px;padding:24px;box-shadow:0 14px 40px rgba(17,24,39,.08)}.dns-training-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.dns-training-fields label span{display:block;margin-bottom:8px;font-weight:800}.dns-training-fields input{width:100%;box-sizing:border-box;border:2px solid #e5e7eb;border-radius:16px;padding:14px 16px;font-size:16px;outline:none}.dns-training-fields input:focus{border-color:var(--dns-orange);box-shadow:0 0 0 4px rgba(245,130,32,.12)}.dns-training-legend{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 18px;font-size:14px}.dns-training-legend span{display:flex;align-items:center;gap:7px;background:#fafafa;border:1px solid #eee;border-radius:999px;padding:7px 10px;font-weight:800}.dns-training-legend i{width:14px;height:14px;border-radius:4px;display:inline-block}.legend-work{background:#171717}.legend-day{background:#171717}.legend-night{background:var(--dns-night)}.legend-duty{background:var(--dns-duty)}.legend-vacation{background:var(--dns-vacation)}.legend-free{background:var(--dns-free);border:2px solid var(--dns-free-border)}.legend-rest{background:var(--dns-rest);border:2px dashed #cbd5e1}.legend-selected{background:var(--dns-orange)}.legend-today{background:#fff;border:2px solid var(--dns-orange)}.dns-training-month-nav{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}.dns-month-tab{border:2px solid transparent;background:#f5f5f5;border-radius:14px;padding:12px 18px;font-weight:900;cursor:pointer}.dns-month-tab.is-active,.dns-month-tab:hover{background:#111;color:#fff;border-color:#111}.dns-calendar-month{display:none}.dns-calendar-month.is-active{display:block}.dns-calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dns-calendar-head h3{font-size:24px;margin:0;font-weight:900}.dns-weekdays,.dns-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.dns-weekdays span{text-align:center;font-size:13px;font-weight:900;color:#6b7280;text-transform:uppercase}.dns-day-empty{min-height:76px}.dns-day{min-height:76px;border:2px solid #d1d5db;background:#fff!important;color:#111!important;border-radius:18px;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:10px;text-align:left;transition:.16s ease;position:relative;box-sizing:border-box}.dns-day:hover{transform:translateY(-2px);border-color:var(--dns-orange);box-shadow:0 8px 18px rgba(245,130,32,.16)}.dns-day-number{font-weight:900;font-size:20px;color:inherit!important;line-height:1}.dns-day-label{font-size:11px;color:#6b7280!important;font-weight:900;line-height:1.1;min-height:13px;text-transform:uppercase}.dns-day.is-workday{background:#171717!important;color:#fff!important;border-color:#171717}.dns-day.is-day-shift{background:#171717!important;color:#fff!important;border-color:#171717}.dns-day.is-night-shift{background:var(--dns-night)!important;color:#fff!important;border-color:var(--dns-night)}.dns-day.is-duty-shift{background:var(--dns-duty)!important;color:#fff!important;border-color:var(--dns-duty)}.dns-day.is-vacation{background:var(--dns-vacation)!important;color:#fff!important;border-color:var(--dns-vacation)}.dns-day.is-free-day{background:var(--dns-free)!important;color:#0f3d22!important;border-color:var(--dns-free-border)}.dns-day.is-rest-after{background:var(--dns-rest)!important;color:#4b5563!important;border-color:#d1d5db;border-style:dashed}.dns-day.is-workday .dns-day-label,.dns-day.is-night-shift .dns-day-label,.dns-day.is-duty-shift .dns-day-label,.dns-day.is-vacation .dns-day-label{color:#ffbf75!important}.dns-day.is-free-day .dns-day-label{color:#166534!important}.dns-day.is-rest-after .dns-day-label{color:#6b7280!important}.dns-day.is-selected{background:var(--dns-orange)!important;color:#111!important;border-color:var(--dns-orange)!important;box-shadow:0 8px 22px rgba(245,130,32,.22)}.dns-day.is-selected .dns-day-label{color:#111!important}.dns-day.is-today:before{content:"";position:absolute;top:7px;right:7px;width:10px;height:10px;border-radius:50%;background:var(--dns-orange);box-shadow:0 0 0 2px rgba(255,255,255,.7)}.dns-training-selected-box{margin:18px 0;padding:14px 16px;border-radius:16px;background:var(--dns-soft);border:1px solid #ffd7ad}.dns-training-submit{border:0;background:#111;color:#fff;border-radius:16px;padding:15px 26px;font-size:16px;font-weight:900;cursor:pointer}.dns-training-submit:hover{background:var(--dns-orange);color:#111}.dns-training-submit:disabled{opacity:.55;cursor:not-allowed}.dns-training-message{margin-top:14px;font-weight:800}.dns-training-message.is-success{color:#117a2f}.dns-training-message.is-error{color:#b42318}@media(max-width:760px){.dns-training-fields{grid-template-columns:1fr}.dns-training-hero h2{font-size:27px}.dns-weekdays,.dns-days-grid{gap:5px}.dns-day{min-height:58px;border-radius:12px;padding:7px}.dns-day-number{font-size:16px}.dns-day-label{font-size:9px}}

/* Недоступные для записи даты */
.dns-training-legend .legend-unavailable,
.legend-unavailable {
    background: #c9c9c9;
    border-color: #9f9f9f;
}

.dns-day.is-unavailable {
    background: #e1e1e1 !important;
    border-color: #b8b8b8 !important;
    color: #777 !important;
    cursor: not-allowed !important;
    opacity: 0.85;
}

.dns-day.is-unavailable .dns-day-number,
.dns-day.is-unavailable .dns-day-label {
    color: #555 !important;
}

.dns-day.is-unavailable.is-selected {
    outline: none !important;
}

/* v1.6: месяцы подряд, без вкладок */
.dns-training-calendars-stacked{display:flex;flex-direction:column;gap:28px}
.dns-training-calendars-stacked .dns-calendar-month{display:block!important;border:1px solid #eee;border-radius:24px;padding:18px;background:#fff;box-shadow:0 10px 26px rgba(17,24,39,.05)}
.dns-training-month-nav{display:none!important}

/* Блок: мои отправленные даты */
.dns-training-my-entries{margin:16px 0 22px;padding:18px;border-radius:20px;background:#111;color:#fff}
.dns-training-my-entries h3{margin:0 0 12px;font-size:20px;font-weight:900;color:#fff}
.dns-my-entries-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.dns-my-entry{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:6px}
.dns-my-entry strong{color:#ffb000;font-size:13px}
.dns-my-entry span{font-weight:800;color:#fff}
.dns-my-entry-assigned{font-size:13px;color:#b7f7c9;font-weight:900}

/* Общая запись на фронте */
.dns-public-summary{margin-top:22px;background:#fff;border:1px solid #eee;border-radius:28px;padding:24px;box-shadow:0 14px 40px rgba(17,24,39,.08)}
.dns-public-summary-head span{display:inline-flex;background:#111;color:#fff;border-radius:999px;padding:6px 10px;font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.04em}
.dns-public-summary-head h3{margin:12px 0 6px;font-size:26px;font-weight:900;color:#111}
.dns-public-summary-head p{margin:0 0 18px;color:#4b5563;font-weight:700}
.dns-public-summary-calendars{display:flex;flex-direction:column;gap:24px}
.dns-public-signup-month{border:1px solid #eee;border-radius:22px;padding:16px;background:#fafafa}
.dns-public-signup-month h4{margin:0 0 12px;font-size:22px;font-weight:900;color:#111}
.dns-public-signup-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.dns-public-signup-day{min-height:88px;border:2px solid #e5e7eb;border-radius:16px;background:#fff;padding:9px;box-sizing:border-box;display:flex;flex-direction:column;gap:5px;color:#111}
.dns-public-signup-day strong{font-size:18px;font-weight:900;color:#111}
.dns-public-signup-day>span{align-self:flex-start;background:#f58220;color:#111;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:900}
.dns-public-signup-day.has-signups{border-color:#f58220;background:#fff7ed}
.dns-public-names{display:flex;flex-direction:column;gap:3px}
.dns-public-names em{font-style:normal;font-size:11px;font-weight:900;background:#111;color:#fff;border-radius:999px;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:760px){
  .dns-public-signup-grid{gap:5px}
  .dns-public-signup-day{min-height:68px;border-radius:12px;padding:6px}
  .dns-public-names em{font-size:9px;padding:2px 4px}
}

/* v1.7: выбор дат свернут по умолчанию */
.dns-date-picker-fold{
    margin:18px 0 0;
    border:1px solid #eee;
    border-radius:24px;
    background:#fff;
    box-shadow:0 10px 28px rgba(17,24,39,.06);
    overflow:hidden;
}
.dns-date-picker-summary{
    list-style:none;
    cursor:pointer;
    padding:18px 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    background:linear-gradient(135deg,#111,#2a2a2a);
    color:#fff;
    user-select:none;
}
.dns-date-picker-summary::-webkit-details-marker{display:none}
.dns-date-picker-summary strong{
    display:block;
    color:#fff;
    font-size:20px;
    font-weight:900;
    line-height:1.1;
}
.dns-date-picker-summary em{
    display:block;
    margin-top:5px;
    color:#ffbf75;
    font-style:normal;
    font-size:13px;
    font-weight:800;
}
.dns-date-picker-arrow{
    width:34px;
    height:34px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f58220;
    color:#111;
    font-size:26px;
    line-height:1;
    transition:.18s ease;
    flex:0 0 auto;
}
.dns-date-picker-fold[open] .dns-date-picker-arrow{
    transform:rotate(180deg);
}
.dns-date-picker-fold[open] .dns-date-picker-summary em{
    color:#fff;
}
.dns-date-picker-fold[open] .dns-date-picker-summary em::before{
    content:"Календарь открыт · ";
    color:#ffbf75;
}
.dns-date-picker-content{
    padding:20px;
    background:#fff;
}
.dns-date-picker-content .dns-training-legend{
    margin-top:0;
}
@media(max-width:760px){
    .dns-date-picker-summary{padding:16px}
    .dns-date-picker-summary strong{font-size:18px}
    .dns-date-picker-content{padding:14px}
}
