/* ==================== ПЕРЕМЕННЫЕ ==================== */
:root {
    --bg-primary: #1e1e1e;
    --bg-secondary: #2a2a2a;
    --bg-tertiary: #333333;
    --accent-primary: #00bcd4;
    --accent-hover: #0097a7;
    --success: #4caf50;
    --success-hover: #388e3c;
    --danger: #e53935;
    --danger-hover: #c62828;
    --text-primary: #ffffff;
    --text-secondary: #999999;
    --text-muted: #666666;
    --border-color: #333333;

    --status-in-work: #00bcd4;
    --status-postponed: #4dd0e1;
    --status-cut: #e53935;
    --status-deposited: #4caf50;
    --status-bum: #555555;

    --radius-sm: 2px;
    --radius-md: 4px;
    --radius-lg: 6px;

    --shadow-sm: 0 2px 8px rgba(0,0,0,0.5);
    --shadow-md: 0 4px 20px rgba(0,0,0,0.6);
    --shadow-lg: 0 8px 40px rgba(0,0,0,0.7);

    --transition-fast: 150ms ease;
    --transition-normal: 300ms ease;

    --sidebar-width: 340px;
    --header-height: 56px;
}

/* ==================== СБРОС ==================== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow:hidden}
button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;color:inherit;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast);border-radius:var(--radius-sm)}
input,select,textarea{font-family:inherit;font-size:inherit;color:var(--text-primary);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:10px 12px;transition:all var(--transition-fast);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 6px rgba(0,188,212,0.2)}
input::placeholder,textarea::placeholder{color:var(--text-muted)}
.hidden{display:none!important}

/* ==================== АВТОРИЗАЦИЯ ==================== */
.auth-overlay{position:fixed;inset:0;background-color:var(--bg-primary);display:flex;align-items:center;justify-content:center;z-index:1000}
.auth-card{background-color:var(--bg-secondary);border-radius:var(--radius-lg);padding:40px 32px;width:90%;max-width:400px;box-shadow:var(--shadow-lg);text-align:center}
.auth-card__title{font-size:1.5rem;font-weight:700;margin-bottom:8px;color:var(--accent-primary)}
.auth-card__subtitle{font-size:.9rem;color:var(--text-secondary);margin-bottom:24px}
.auth-form{display:flex;flex-direction:column;gap:12px}
.auth-form__input{width:100%;padding:12px 14px;font-size:.95rem}
.auth-form__error{font-size:.8rem;color:var(--danger);text-align:left}
.auth-form__btn{padding:12px;border-radius:var(--radius-sm);font-size:.95rem;font-weight:500}
.auth-form__btn--primary{background-color:var(--accent-primary);color:#000}
.auth-form__btn--primary:hover{background-color:var(--accent-hover)}
.auth-form__btn--primary:disabled{opacity:.6;cursor:not-allowed}
.auth-form__btn--link{color:var(--accent-primary);font-size:.85rem;min-height:auto;padding:8px}
.auth-form__btn--link:hover{color:var(--accent-hover);text-decoration:underline}

/* ==================== HEADER ==================== */
.header{height:var(--header-height);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:12px;z-index:100;position:relative}
.header__left{display:flex;align-items:center;gap:8px;flex-shrink:0}
.header__toggle-btn{font-size:1.4rem;color:var(--text-secondary)}
.header__toggle-btn:hover{color:var(--accent-primary)}
.header__title{font-size:1.2rem;font-weight:600;white-space:nowrap;color:var(--accent-primary)}
.header__center{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;flex-grow:1}
.header__stat{font-size:.8rem;color:var(--text-secondary);white-space:nowrap;display:flex;align-items:center;gap:4px}
.header__stat-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}
.header__stat-dot--total{background-color:var(--accent-primary)}
.header__stat-dot--in_work{background-color:var(--status-in-work)}
.header__stat-dot--postponed{background-color:var(--status-postponed)}
.header__stat-dot--cut{background-color:var(--status-cut)}
.header__stat-dot--deposited{background-color:var(--status-deposited)}
.header__stat-dot--bum{background-color:var(--status-bum)}
.header__right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.header__btn{background-color:var(--bg-tertiary);color:var(--text-secondary);padding:8px 14px;font-size:.85rem;gap:6px;white-space:nowrap}
.header__btn:hover{background-color:var(--border-color);color:var(--text-primary)}
.header__btn--icon{padding:8px 10px;font-size:1rem;min-width:36px}
.header__btn--logout{background-color:transparent;border:1px solid var(--border-color);padding:8px 12px;font-size:1rem}
.header__btn--logout:hover{border-color:var(--danger);color:var(--danger)}
.header__user{font-size:.85rem;color:var(--text-secondary);margin-right:8px;white-space:nowrap}

/* ==================== MAIN ==================== */
.main{display:flex;height:calc(100vh - var(--header-height));position:relative;overflow:hidden}

/* ==================== SIDEBAR ==================== */
.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background-color:var(--bg-secondary);display:flex;flex-direction:column;transition:transform var(--transition-normal),min-width var(--transition-normal),width var(--transition-normal);overflow:hidden;z-index:50}
.sidebar.hidden{transform:translateX(-100%);min-width:0;width:0}
.sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-color);flex-shrink:0}
.sidebar__title{font-size:1rem;font-weight:600}
.sidebar__close-btn{font-size:1.1rem;color:var(--text-muted)}
.sidebar__close-btn:hover{color:var(--danger)}
.sidebar__add-btn{margin:12px 16px;background-color:var(--accent-primary);color:#000;padding:10px 16px;border-radius:var(--radius-sm);font-weight:500;font-size:.9rem;gap:6px;flex-shrink:0}
.sidebar__add-btn:hover{background-color:var(--accent-hover)}

.week-switcher{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 16px 8px;flex-shrink:0}
.week-switcher__btn{font-size:.85rem;color:var(--text-muted);min-width:32px;min-height:32px}
.week-switcher__btn:hover{color:var(--text-primary)}
.week-switcher__label{font-size:.8rem;color:var(--text-secondary);white-space:nowrap;min-width:140px;text-align:center}
.week-switcher__all-btn{display:block;margin:0 16px 8px;padding:6px;font-size:.75rem;color:var(--accent-primary);text-align:center;width:calc(100% - 32px);min-height:28px;border:1px dashed var(--border-color);border-radius:var(--radius-sm)}
.week-switcher__all-btn:hover{background-color:var(--bg-tertiary)}
.week-switcher__all-btn--active{background-color:rgba(0,188,212,0.1);border-style:solid;border-color:var(--accent-primary)}

.sidebar__search{position:relative;margin:0 16px 12px;flex-shrink:0}
.sidebar__search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:.9rem;color:var(--text-muted);pointer-events:none}
.sidebar__search-input{width:100%;padding:10px 12px 10px 36px;font-size:.9rem}
.sidebar__list{flex-grow:1;overflow-y:auto;overflow-x:hidden;padding:0 8px 8px}
.sidebar__list::-webkit-scrollbar{width:4px}
.sidebar__list::-webkit-scrollbar-track{background:transparent}
.sidebar__list::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:2px}
.sidebar__report-btn-wrap{padding:12px 16px;border-top:1px solid var(--border-color);flex-shrink:0}
.sidebar__report-btn{width:100%;padding:10px;background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:.85rem;gap:6px}
.sidebar__report-btn:hover{background-color:var(--border-color);color:var(--text-primary)}

/* Карточка клиента */
.client-card{display:flex;flex-direction:column;padding:12px 14px;margin-bottom:4px;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent;position:relative;background-color:var(--bg-secondary)}
.client-card:hover{background-color:var(--bg-tertiary);border-color:var(--border-color)}
.client-card--active{border-color:var(--accent-primary);background-color:rgba(0,188,212,0.06)}
.client-card__status-bar{position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0}
.client-card__status-bar--in_work{background-color:var(--status-in-work)}
.client-card__status-bar--postponed{background-color:var(--status-postponed)}
.client-card__status-bar--cut{background-color:var(--status-cut)}
.client-card__status-bar--deposited{background-color:var(--status-deposited)}
.client-card__status-bar--bum{background-color:var(--status-bum)}
.client-card__name{font-weight:600;font-size:1rem;margin-bottom:4px;padding-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.client-card__phone{font-size:.85rem;color:var(--text-secondary);padding-left:8px;margin-bottom:3px}
.client-card__date{font-size:.75rem;color:var(--text-muted);padding-left:8px;margin-bottom:3px}
.client-card__city{font-size:.75rem;color:var(--text-muted);padding-left:8px;margin-bottom:3px}
.client-card__comment{font-size:.8rem;color:var(--text-secondary);padding-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.client-card__amount{font-size:.8rem;color:var(--success);padding-left:8px;font-weight:600}
.client-card__badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:500;margin-left:8px;margin-top:4px;align-self:flex-start;background-color:rgba(255,255,255,0.06);color:var(--text-secondary)}

/* ==================== CONTENT ==================== */
.content{flex-grow:1;overflow-y:auto;padding:24px;transition:all var(--transition-normal)}
.content::-webkit-scrollbar{width:4px}
.content::-webkit-scrollbar-track{background:transparent}
.content::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:2px}
.content__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);text-align:center}
.content__empty-icon{font-size:4rem;margin-bottom:16px;opacity:.5}
.content__empty-text{font-size:1rem;line-height:1.6}

/* ==================== ДЕТАЛИ ==================== */
.details-section{background-color:var(--bg-secondary);border-radius:var(--radius-md);padding:20px;margin-bottom:24px}
.details-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:8px}
.details-section__title{font-size:1rem;font-weight:600;color:var(--text-secondary)}
.details-section__actions{display:flex;gap:6px}
.details-section__btn{padding:8px 14px;font-size:.85rem;border-radius:var(--radius-sm);gap:4px;min-height:36px}
.details-section__btn--icon-only{padding:6px 8px;min-width:36px;font-size:1rem;color:var(--text-muted)}
.details-section__btn--icon-only:hover{color:var(--accent-primary)}
.details-section__btn--danger-icon{color:var(--text-muted)}
.details-section__btn--danger-icon:hover{color:var(--danger)!important}
.details-section__btn--add-sm{padding:6px 10px;min-width:32px;min-height:32px;font-size:.9rem;background-color:var(--bg-tertiary);color:var(--text-muted)}
.details-section__btn--add-sm:hover{color:var(--accent-primary)}
.details-section__btn--deposit-sm{color:var(--success)}
.details-section__btn--deposit-sm:hover{background-color:rgba(76,175,80,0.15)}
.details-section__btn--clear{background-color:transparent;color:var(--text-muted);border:1px solid var(--border-color);padding:6px 10px;min-height:32px;font-size:.8rem}
.details-section__btn--clear:hover{color:var(--danger);border-color:var(--danger)}

/* ==================== СТАТУС-ПЛАШКА ==================== */
.status-banner{padding:12px 16px;border-radius:var(--radius-md);margin-bottom:20px;font-size:.9rem;border-left:3px solid}
.status-banner--postponed{background-color:rgba(77,208,225,0.08);border-color:var(--status-postponed)}
.status-banner--cut{background-color:rgba(229,57,53,0.08);border-color:var(--status-cut)}
.status-banner--deposited{background-color:rgba(76,175,80,0.08);border-color:var(--status-deposited)}
.status-banner__title{font-weight:600;margin-bottom:2px}
.status-banner__sub{font-size:.8rem;color:var(--text-secondary);margin-top:4px}

/* ==================== ПЕРЕКЛЮЧАТЕЛЬ СТАТУСОВ ==================== */
.status-switcher{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.status-btn{padding:6px 10px;border-radius:var(--radius-sm);font-size:.8rem;min-height:32px;min-width:36px;border:1px solid var(--border-color);color:var(--text-muted)}
.status-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}
.status-btn--active{border-color:var(--accent-primary);color:var(--accent-primary)}
.status-btn--in_work.status-btn--active{border-color:var(--status-in-work);color:var(--status-in-work)}
.status-btn--postponed.status-btn--active{border-color:var(--status-postponed);color:var(--status-postponed)}
.status-btn--cut.status-btn--active{border-color:var(--status-cut);color:var(--status-cut)}
.status-btn--deposited.status-btn--active{border-color:var(--status-deposited);color:var(--status-deposited)}
.status-btn--bum.status-btn--active{border-color:var(--status-bum);color:var(--status-bum)}

.status-extra{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center}
.status-extra__input{flex:1;min-width:140px;padding:8px 10px;font-size:.85rem}
.status-extra__btn{padding:8px 14px;background-color:var(--accent-primary);color:#000;font-size:.85rem;border-radius:var(--radius-sm);min-height:36px;font-weight:500}
.status-extra__btn:hover{background-color:var(--accent-hover)}

/* ==================== КОМПАКТНЫЕ ДЕТАЛИ ==================== */
.details-compact{display:flex;flex-direction:column;gap:6px;font-size:.9rem}
.details-compact__row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:3px 0}
.details-compact__icon{margin-right:2px;flex-shrink:0;color:var(--text-muted)}
.details-compact__value{color:var(--text-primary)}
.details-compact__sep{color:var(--border-color);margin:0 8px}
.details-compact__label{color:var(--text-muted);font-size:.75rem;margin-right:4px}

/* ==================== БАНКИ / ЗАЛИВЫ ==================== */
.bank-form{background-color:var(--bg-primary);border-radius:var(--radius-md);padding:14px;margin-bottom:14px;display:flex;flex-direction:column;gap:10px}
.bank-form__row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.bank-form__label{font-size:.85rem;color:var(--text-secondary)}
.bank-form__radio{font-size:.85rem;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:4px}
.bank-form__radio input{width:16px;height:16px;min-width:16px;min-height:16px;cursor:pointer}
.bank-form__input{flex-grow:1}
.bank-form__buttons{display:flex;gap:8px;justify-content:flex-end}
.bank-form__btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:.85rem;min-height:36px}
.bank-form__btn--save{background-color:var(--accent-primary);color:#000}
.bank-form__btn--save:hover{background-color:var(--accent-hover)}
.bank-form__btn--cancel{background-color:transparent;color:var(--text-muted);border:1px solid var(--border-color)}
.bank-form__btn--cancel:hover{color:var(--text-primary)}
.bank-list{display:flex;flex-direction:column;gap:6px}
.deposit-list{display:flex;flex-direction:column;gap:6px}
.bank-card{background-color:var(--bg-primary);border-radius:var(--radius-md);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.bank-card__info{display:flex;flex-direction:column;gap:2px;flex-grow:1;min-width:0}
.bank-card__name{font-weight:600;font-size:.9rem}
.bank-card__details{font-size:.8rem;color:var(--text-secondary)}
.bank-card__type-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:500}
.bank-card__type-badge--card{background-color:rgba(0,188,212,0.12);color:var(--accent-primary)}
.bank-card__type-badge--home{background-color:rgba(76,175,80,0.12);color:var(--success)}
.bank-card__type-badge--bank_credit{background-color:rgba(0,188,212,0.12);color:var(--accent-primary)}
.bank-card__type-badge--bank_own{background-color:rgba(77,208,225,0.12);color:var(--status-postponed)}
.bank-card__delete-btn{color:var(--text-muted);font-size:.9rem;flex-shrink:0}
.bank-card__delete-btn:hover{color:var(--danger)}

/* ==================== БЛОКНОТ ==================== */
.notes-toolbar{display:flex;gap:4px;margin-bottom:8px}
.notes-toolbar__btn{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:var(--radius-sm);background-color:var(--bg-tertiary);color:var(--text-secondary);font-size:.85rem}
.notes-toolbar__btn:hover{background-color:var(--border-color);color:var(--text-primary)}
.ql-editor{min-height:120px;max-height:300px;font-size:.9rem;line-height:1.5;color:var(--text-primary)}
.ql-toolbar{background-color:var(--bg-tertiary)!important;border-color:var(--border-color)!important;border-radius:var(--radius-sm) var(--radius-sm) 0 0!important}
.ql-container{background-color:var(--bg-tertiary)!important;border-color:var(--border-color)!important;border-radius:0 0 var(--radius-sm) var(--radius-sm)!important;color:var(--text-primary)!important}
.ql-snow .ql-stroke{stroke:var(--text-secondary)!important}
.ql-snow .ql-fill{fill:var(--text-secondary)!important}
.ql-snow .ql-picker{color:var(--text-secondary)!important}
.ql-snow .ql-picker-options{background-color:var(--bg-secondary)!important}
.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke{stroke:var(--accent-primary)!important}

/* ==================== FAB ==================== */
.fab{position:fixed;left:16px;bottom:24px;width:48px;height:48px;border-radius:50%;background-color:var(--accent-primary);color:#000;font-size:1.3rem;box-shadow:var(--shadow-md);z-index:200;animation:fadeInUp var(--transition-normal) ease}
.fab:hover{background-color:var(--accent-hover)}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* ==================== МОДАЛКИ ==================== */
.modal-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,0.7);display:flex;align-items:center;justify-content:center;z-index:500;animation:fadeIn var(--transition-normal) ease}
.modal{background-color:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp var(--transition-normal) ease}
.modal--small{max-width:400px}
.modal--wide{max-width:750px}
.modal::-webkit-scrollbar{width:4px}
.modal::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:2px}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border-color)}
.modal__title{font-size:1.1rem;font-weight:600}
.modal__close-btn{font-size:1.2rem;color:var(--text-muted)}
.modal__close-btn:hover{color:var(--danger)}
.modal__body{padding:20px 24px}
.modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 24px 20px;border-top:1px solid var(--border-color);flex-wrap:wrap}
.modal__btn{padding:10px 20px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;min-height:40px}
.modal__btn--save{background-color:var(--accent-primary);color:#000}
.modal__btn--save:hover{background-color:var(--accent-hover)}
.modal__btn--cancel{background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}
.modal__btn--cancel:hover{color:var(--text-primary)}
.modal__btn--delete{background-color:transparent;color:var(--danger);border:1px solid var(--danger);margin-right:auto}
.modal__btn--delete:hover{background-color:var(--danger);color:#fff}
.modal__btn--danger{background-color:var(--danger);color:#fff}
.modal__btn--danger:hover{background-color:var(--danger-hover)}

/* ==================== ФОРМА ==================== */
.form-group{margin-bottom:16px;display:flex;flex-direction:column;gap:6px}
.form-group--half{flex:1;min-width:200px}
.form-group--checkbox{flex:1;min-width:200px;flex-direction:column;gap:8px}
.form-row{display:flex;gap:12px;flex-wrap:wrap}
.form-label{font-size:.85rem;color:var(--text-secondary);font-weight:500}
.form-required{color:var(--danger)}
.form-input{width:100%;padding:10px 12px;font-size:.9rem}
.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}
.form-textarea{resize:vertical;min-height:80px}
.form-error{font-size:.78rem;color:var(--danger)}
.form-age{font-size:.8rem;color:var(--text-secondary)}
.form-counter{font-size:.75rem;color:var(--text-muted);text-align:right}
.form-checkbox-label{font-size:.9rem;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;gap:8px}
.form-checkbox-label input{width:18px;height:18px;min-width:18px;min-height:18px;cursor:pointer}
.form-radio-group{display:flex;gap:16px;flex-wrap:wrap}
.form-radio-label{font-size:.9rem;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;gap:6px}
.form-radio-label input{width:16px;height:16px;min-width:16px;min-height:16px;cursor:pointer}

/* ==================== ОТЧЁТЫ ==================== */
.reports-page{padding:24px;width:100%;overflow-y:auto;max-height:calc(100vh - var(--header-height))}
.reports-page__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.reports-page__title{font-size:1.3rem;font-weight:600}
.reports-page__back-btn{padding:8px 16px;background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:.85rem}
.reports-page__back-btn:hover{color:var(--text-primary)}
.reports-filter{display:flex;align-items:center;gap:8px;margin-bottom:24px;flex-wrap:wrap;font-size:.85rem}
.reports-filter__preset{padding:8px 16px;background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:.85rem;min-height:36px;border:1px solid transparent}
.reports-filter__preset:hover{color:var(--text-primary);border-color:var(--border-color)}
.reports-filter__preset--active{background-color:rgba(0,188,212,0.1);color:var(--accent-primary);border-color:var(--accent-primary)}
.reports-filter__arrows{display:flex;align-items:center;gap:6px}
.reports-filter__arrow{font-size:.85rem;color:var(--text-muted);min-width:28px;min-height:28px}
.reports-filter__arrow:hover{color:var(--text-primary)}
.reports-filter__range{font-size:.85rem;color:var(--text-secondary);min-width:120px;text-align:center}
.reports-filter__custom-btn{padding:8px 12px;font-size:.8rem;color:var(--text-muted);min-height:36px;border:1px dashed var(--border-color);border-radius:var(--radius-sm)}
.reports-filter__custom-btn:hover{color:var(--text-primary)}
.reports-filter__custom{display:flex;align-items:center;gap:8px}
.reports-filter__input{padding:8px 10px;font-size:.85rem;width:150px}
.reports-filter__btn{padding:8px 14px;background-color:var(--accent-primary);color:#000;border-radius:var(--radius-sm);font-size:.85rem;min-height:36px}
.reports-filter__btn:hover{background-color:var(--accent-hover)}
.reports-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.reports-card{background-color:var(--bg-secondary);border-radius:var(--radius-md);padding:20px}
.reports-card h3{font-size:.9rem;font-weight:600;margin-bottom:16px;color:var(--text-secondary)}
.reports-table-wrap{overflow-x:auto}
.reports-table{width:100%;border-collapse:collapse;font-size:.85rem}
.reports-table th,.reports-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-color)}
.reports-table th{color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase}
.reports-table tfoot td{font-weight:600;border-top:2px solid var(--border-color)}
.reports-export-btn{margin-top:16px;padding:10px 20px;background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:.85rem;gap:6px}
.reports-export-btn:hover{background-color:var(--border-color);color:var(--text-primary)}
.report-bar-wrap{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:.85rem}
.report-bar-label{width:80px;text-align:right;color:var(--text-secondary);flex-shrink:0}
.report-bar{height:16px;border-radius:2px;min-width:2px;transition:width var(--transition-normal)}
.report-bar--in_work{background-color:var(--status-in-work)}
.report-bar--postponed{background-color:var(--status-postponed)}
.report-bar--cut{background-color:var(--status-cut)}
.report-bar--deposited{background-color:var(--status-deposited)}
.report-bar--bum{background-color:var(--status-bum)}
.report-bar-count{margin-left:6px;color:var(--text-muted);font-size:.8rem}
.report-week-row{display:flex;justify-content:space-between;padding:6px 0;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,0.03)}
.report-week-row span{color:var(--text-secondary)}

/* ==================== ОТЧЁТ ЗА НЕДЕЛЮ ==================== */
.week-report__section{margin-bottom:20px}
.week-report__section h4{font-size:.9rem;color:var(--text-muted);margin-bottom:8px}
.week-report__row{display:flex;justify-content:space-between;padding:4px 0;font-size:.9rem}
.week-report__row--total{font-weight:700;font-size:1rem;border-top:1px solid var(--border-color);padding-top:8px;margin-top:4px}
.week-report__input{width:120px;padding:6px 10px;font-size:.85rem;margin-left:8px}

/* ==================== МАСТЕРСКАЯ ==================== */
.sidebar--workshop{position:relative;z-index:50}
.workshop-blocks{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.workshop-block{background-color:var(--bg-primary);border-radius:var(--radius-md);padding:12px;border:1px solid var(--border-color);cursor:grab;position:relative;transition:all var(--transition-fast)}
.workshop-block:active{cursor:grabbing}
.workshop-block--dragging{opacity:.5;border-color:var(--accent-primary)}
.workshop-block--drag-over{border-color:var(--accent-primary);box-shadow:0 0 8px rgba(0,188,212,0.2)}
.workshop-block__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.workshop-block__type{font-size:.75rem;color:var(--text-muted)}
.workshop-block__remove{font-size:.9rem;color:var(--text-muted);min-width:28px;min-height:28px}
.workshop-block__remove:hover{color:var(--danger)}
.workshop-block__textarea{width:100%;min-height:80px;font-size:.9rem;resize:vertical}
.workshop-block__image{max-width:100%;max-height:300px;border-radius:var(--radius-sm);display:block}
.workshop-block__image-name{font-size:.8rem;color:var(--text-secondary);margin-top:6px}
.workshop-block__file-input{display:none}

/* ==================== АДАПТИВ ==================== */
@media(max-width:1024px){
    .sidebar{position:fixed;top:var(--header-height);left:0;bottom:0;z-index:300;box-shadow:var(--shadow-lg)}
    .sidebar.hidden{transform:translateX(-100%)}
    .content{padding:16px}
    .reports-grid{grid-template-columns:1fr}
    .modal--wide{max-width:100%}
}
@media(max-width:768px){
    :root{--sidebar-width:300px}
    .header{flex-wrap:wrap;padding:8px 12px;height:auto;min-height:var(--header-height)}
    .header__center{order:3;width:100%;justify-content:flex-start;padding-top:4px}
    .header__btn{padding:6px 10px;font-size:.8rem}
    .content{padding:12px}
    .modal{width:100%;max-width:100%;border-radius:0;max-height:100vh;height:100vh}
    .form-row{flex-direction:column;gap:0}
    .form-group--half{min-width:100%}
    .fab{width:44px;height:44px;left:12px;bottom:16px}
    .status-btn{padding:5px 8px;font-size:.75rem;min-height:28px;min-width:28px}
}
@media(max-width:480px){
    :root{--sidebar-width:280px}
    .header__title{font-size:1rem}
    .details-section{padding:14px}
    .modal__body{padding:16px}
    .modal__header{padding:14px 16px 12px}
    .modal__footer{padding:12px 16px 16px}
    .auth-card{padding:28px 20px}
    .auth-card__title{font-size:1.3rem}
    .reports-page{padding:12px}
}

/* ==================== ВКЛАДКИ МАСТЕРСКОЙ ==================== */
.workshop-tabs {
    display: flex;
    margin: 12px 16px;
    gap: 0;
    flex-shrink: 0;
    border-radius: var(--radius-sm);
    overflow: hidden;
    border: 1px solid var(--border-color);
}
.workshop-tab {
    flex: 1;
    padding: 8px 12px;
    font-size: .85rem;
    font-weight: 500;
    background-color: var(--bg-tertiary);
    color: var(--text-muted);
    min-height: 36px;
    border-radius: 0;
}
.workshop-tab:first-child { border-right: 1px solid var(--border-color); }
.workshop-tab--active {
    background-color: var(--accent-primary);
    color: #000;
}
.workshop-tab:hover:not(.workshop-tab--active) {
    color: var(--text-primary);
}
/* ==================== УЛУЧШЕННЫЙ АДАПТИВ ==================== */
@media (max-width: 768px) {
    .header__btn { min-width: 44px; min-height: 44px; padding: 8px; font-size: .75rem; }
    .header__user { font-size: .7rem; }
    .status-switcher { gap: 3px; }
    .status-btn { padding: 8px 6px; font-size: .7rem; min-height: 32px; min-width: 32px; }
    .details-section { padding: 10px; }
    .bank-card { padding: 8px 10px; }
    .bank-form { padding: 10px; }
    .reports-page { padding: 10px; }
    .reports-grid { grid-template-columns: 1fr; gap: 10px; }
    .reports-card { padding: 12px; }
    .reports-table th, .reports-table td { padding: 6px 8px; font-size: .75rem; }
    .sidebar--workshop { position: fixed; top: var(--header-height); left: 0; bottom: 0; z-index: 300; width: 280px; }
    .fab { width: 44px; height: 44px; bottom: 12px; left: 8px; }
}

@media (max-width: 480px) {
    :root { --sidebar-width: 260px; --header-height: 50px; }
    .header { padding: 4px 8px; }
    .header__title { font-size: .9rem; }
    .header__btn { padding: 6px; font-size: .7rem; min-width: 36px; min-height: 36px; }
    .header__stat { font-size: .65rem; }
    .content { padding: 8px; }
    .details-section { padding: 8px; margin-bottom: 12px; }
    .details-compact { font-size: .8rem; }
    .status-btn { padding: 6px 4px; font-size: .65rem; min-height: 28px; min-width: 28px; }
    .status-extra__input { min-width: 100px; font-size: .75rem; padding: 6px 8px; }
    .modal { width: 100%; max-width: 100%; border-radius: 0; }
    .modal__body { padding: 12px; }
    .modal__header { padding: 10px 12px; }
    .modal__footer { padding: 10px 12px; }
    .form-group { margin-bottom: 10px; }
    .form-input { padding: 8px 10px; font-size: .8rem; }
    .bank-card { padding: 6px 8px; }
    .bank-card__name { font-size: .8rem; }
    .client-card { padding: 8px 10px; }
    .client-card__name { font-size: .85rem; }
    .week-switcher__label { min-width: 100px; font-size: .7rem; }
    .reports-table { font-size: .7rem; }
    .reports-table th, .reports-table td { padding: 4px 6px; }
    .workshop-tab { padding: 6px 8px; font-size: .75rem; min-height: 28px; }
    .sidebar--workshop { width: 260px; }
    .fab { width: 40px; height: 40px; bottom: 10px; left: 6px; }
    .header__right { gap: 2px; }
}

/* Скрываем статистику на очень маленьких */
@media (max-width: 380px) {
    .header__center { display: none; }
    .header__title { font-size: .8rem; }
    .sidebar--workshop { width: 240px; }
}

/* Кнопка Назад в отчётах на мобильных */
@media (max-width: 768px) {
    .reports-page__back-btn {
        position: fixed;
        top: 8px;
        right: 8px;
        z-index: 100;
    }
}

.details-compact {
    border: 1px solid rgba(0,188,212,0.3);
    border-radius: var(--radius-sm);
    padding: 10px;
    background: rgba(0,188,212,0.03);
}

/* Бургер-меню */
.header__burger {
    display: none;
    font-size: 1.3rem;
    min-width: 40px;
    min-height: 40px;
    color: var(--text-secondary);
}
.header__burger:hover { color: var(--text-primary); }

.header__menu {
    display: flex;
    align-items: center;
    gap: 6px;
}

@media (max-width: 768px) {
    .header__burger { display: flex; }
    .header__menu {
        display: none;
        position: absolute;
        top: var(--header-height);
        right: 0;
        background: var(--bg-secondary);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-sm);
        padding: 8px;
        flex-direction: column;
        z-index: 500;
        min-width: 160px;
    }
    .header__menu.open { display: flex; }
    .header__menu .header__btn {
        width: 100%;
        justify-content: flex-start;
    }
    .header__right { position: relative; }
}
