*{
    box-sizing:border-box;
}

:root{
    --ink:#172033;
    --muted:#667085;
    --surface:#ffffff;
    --page:#f5f7fb;
    --line:#e6eaf0;
    --brand:#111827;
    --accent:#2563eb;
    --shadow:0 8px 24px rgba(15,23,42,.06);
}

body{
    margin:0;
    font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
    background:var(--page);
    color:var(--ink);
}


header{
    background:linear-gradient(135deg,#111827,#1f2937);
    color:#fff;
    padding:18px 28px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    position:sticky;
    top:0;
    z-index:10;
    box-shadow:0 4px 14px rgba(15,23,42,.16);
}


.user-info{
    font-size:14px;
}


.menu-button{
    display:none;
}


nav{
    display:flex;
    gap:6px;
    align-items:center;
    flex-wrap:wrap;
    padding:10px 24px;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:0 2px 8px rgba(15,23,42,.03);
}


nav a{
    color:#344054;
    text-decoration:none;
    padding:9px 12px;
    border-radius:9px;
    font-weight:600;
}

nav a:hover{
    color:#111827;
    background:#f2f4f7;
}


main{
    max-width:1320px;
    margin:28px auto;
    padding:0 22px 48px;
}


h1{
    font-size:36px;
    line-height:1.15;
    letter-spacing:-.025em;
}

h2{
    margin-top:26px;
    font-size:24px;
    letter-spacing:-.015em;
}

main a{
    color:#1d4ed8;
    text-decoration:none;
}

main a:hover{
    text-decoration:underline;
}


.card,
.stat,
.item{
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    padding:20px;
    margin:16px 0;
    box-shadow:var(--shadow);
}


.grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:15px;
}


.stat span{
    display:block;
}


.stat b{
    display:block;
    font-size:32px;
    margin-top:8px;
}


button,
input,
textarea,
select{
    font:inherit;
    padding:12px;
    border-radius:10px;
    border:1px solid #d0d5dd;
    background:#fff;
    color:var(--ink);
}


button{
    background:var(--brand);
    color:#fff;
    cursor:pointer;
    border-color:var(--brand);
    font-weight:700;
    transition:transform .12s ease,box-shadow .12s ease;
}

button:hover{
    transform:translateY(-1px);
    box-shadow:0 6px 14px rgba(15,23,42,.16);
}


textarea{
    min-height:100px;
}


.table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
}


.table th,
.table td{
    padding:12px;
    border-bottom:1px solid #eee;
}


.green{
    color:#15803d;
}


.red,
.bad{
    color:#b91c1c;
}


.camera-box{
    border:1px dashed #aaa;
    border-radius:12px;
    padding:12px;
}


.camera-box video,
.camera-box img{
    width:100%;
    max-width:600px;
}


.photo{
    max-width:420px;
    width:100%;
}

.small,
.muted{
    color:#667085;
    font-size:14px;
}

.finding{
    border-left:5px solid #dc2626;
}

.finding-fixed{
    border-left-color:#f59e0b;
}

.finding-accepted{
    border-left-color:#16a34a;
}

.finding-badges{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:0;
}

.finding-badge{
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    border-radius:999px;
    background:#f2f4f7;
    font-size:13px;
    font-weight:700;
}

.status-open,
.severity-high{
    color:#991b1b;
    background:#fee2e2;
}

.status-fixed,
.severity-medium{
    color:#92400e;
    background:#fef3c7;
}

.status-accepted,
.severity-low{
    color:#166534;
    background:#dcfce7;
}

.finding-response{
    margin:16px 0;
    padding:14px;
    border-radius:12px;
    background:#f0fdf4;
    border:1px solid #bbf7d0;
}

.finding-response h3{
    margin-top:0;
}

.finding-response-form{
    display:grid;
    gap:12px;
    margin-top:16px;
    padding-top:16px;
    border-top:1px solid #e5e7eb;
}

.finding-review-form{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:14px;
}

.accept-button{
    background:#15803d;
    border-color:#15803d;
}

.reopen-button{
    background:#b91c1c;
    border-color:#b91c1c;
}

.finding-resolved{
    color:#166534;
    font-weight:700;
}

.optional-camera-box{
    background:#fafafa;
}

.finding-response-photo{
    margin-top:8px;
    border-radius:10px;
}

.password-card{
    max-width:620px;
}

.password-form,
.user-edit-form,
.password-reset-form{
    display:grid;
    gap:12px;
}

.password-form label,
.user-edit-form label{
    display:grid;
    gap:6px;
    font-weight:700;
}

.success-message{
    color:#166534;
    padding:12px;
    border-radius:10px;
    background:#dcfce7;
}

.user-actions-cell{
    min-width:270px;
}

.user-settings summary{
    cursor:pointer;
    font-weight:700;
    padding:8px 0;
}

.user-edit-form,
.password-reset-form{
    margin-top:12px;
    padding:14px;
    border-radius:12px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
}

.password-reset-form h3{
    margin:0;
}

.checkbox-label{
    display:flex !important;
    align-items:center;
    grid-template-columns:auto 1fr;
    font-weight:400 !important;
}

.checkbox-label input{
    width:auto;
}

.assign-form{
    display:grid;
    gap:12px;
    max-width:680px;
}

.assign-form label{
    font-weight:700;
}



/* МОБИЛЬНАЯ ВЕРСИЯ */

@media(max-width:800px){

    body{
        font-size:16px;
    }


    header{
        padding:14px;
        display:flex;
        align-items:center;
        justify-content:space-between;
    }


    header b{
        font-size:14px;
        line-height:1.2;
        max-width:200px;
    }


    .user-info{
        display:none;
    }


    .menu-button{
        display:flex;
        width:48px;
        height:48px;
        align-items:center;
        justify-content:center;
        background:#111;
        color:white;
        border:0;
        border-radius:8px;
        font-size:24px;
        padding:0;
    }


    nav{
        display:none;
        flex-direction:column;
        align-items:stretch;
    }


    nav.open{
        display:flex;
    }


    nav a,
    nav button{
        width:100%;
        padding:14px;
    }


    main{
        padding:0 10px;
        margin:10px auto;
    }


    h1{
        font-size:24px;
    }


    .grid{
        grid-template-columns:1fr;
        gap:10px;
    }


    .card,
    .stat,
    .item{
        padding:14px;
    }


    button,
    input,
    textarea,
    select{
        width:100%;
        font-size:16px;
    }


    button{
        min-height:48px;
    }


    .table{
        display:block;
        overflow-x:auto;
    }


    .camera-box video{
        width:100%;
    }


    .review-form,
    .issue-form{
        display:flex;
        flex-direction:column;
        gap:12px;
    }


    .review-form textarea,
    .issue-form textarea{
        min-height:100px;
    }


    form[action="/checklists"]{
        display:flex;
        flex-direction:column;
        gap:12px;
    }


    form[action="/checklists"] input,
    form[action="/checklists"] textarea,
    form[action="/checklists"] button{
        width:100%;
    }


    .card form textarea,
    .card form input{
        margin-bottom:10px;
    }


    .card form button{
        margin-top:10px;
    }


    /* статистика отчёта на телефоне */

    .stats-grid{
        grid-template-columns:1fr;
        gap:12px;
    }


    .stat-card{
        width:100%;
    }

}


/* статистика отчёта на компьютере */

.stats-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:15px;
    margin-bottom:20px;
}


.stat-card{
    background:#fff;
    border:1px solid #ddd;
    border-radius:14px;
    padding:18px;
    text-align:center;
}


.stat-card h2{
    font-size:32px;
    margin:10px 0;
}

.dashboard-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:16px;
}

.dashboard-heading h1{
    margin-bottom:4px;
}

.dashboard-filter{
    display:flex;
    flex-wrap:wrap;
    align-items:end;
    gap:14px;
    background:linear-gradient(135deg,#fff,#f8fafc);
}

.dashboard-filter label{
    display:grid;
    gap:6px;
    min-width:220px;
    font-weight:700;
}

.dashboard-metrics{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:12px;
    margin-bottom:24px;
}

.finding-metrics{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

.metric-card{
    min-height:116px;
    padding:16px;
    border-radius:14px;
    background:#fff;
    border:1px solid var(--line);
    box-shadow:var(--shadow);
}

.metric-card span,
.metric-card b{
    display:block;
}

.metric-card span{
    color:#475467;
    font-size:14px;
    font-weight:700;
}

.metric-card b{
    margin-top:12px;
    font-size:34px;
    line-height:1;
}

.metric-progress{
    border-left:5px solid #2563eb;
}

.metric-warning{
    border-left:5px solid #f59e0b;
    background:linear-gradient(135deg,#fff,#fffbeb);
}

.metric-danger{
    border-left:5px solid #dc2626;
    background:linear-gradient(135deg,#fff,#fef2f2);
}

.metric-critical{
    color:#7f1d1d;
    border-left:5px solid #7f1d1d;
    background:#fff7f7;
}

.metric-success{
    border-left:5px solid #16a34a;
    background:linear-gradient(135deg,#fff,#f0fdf4);
}

.dashboard-section{
    margin-top:28px;
}

.dashboard-section h2{
    margin-bottom:14px;
}

.section-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.attention-list,
.finding-dashboard-list{
    display:grid;
    gap:10px;
}

.attention-item,
.finding-dashboard-item{
    display:grid;
    grid-template-columns:auto 1.5fr 1fr auto;
    align-items:center;
    gap:12px;
    padding:14px;
    border-radius:12px;
    color:#171717;
    text-decoration:none;
    background:var(--surface);
    border:1px solid #fecaca;
}

.attention-item:hover,
.finding-dashboard-item:hover{
    border-color:#ef4444;
    box-shadow:0 3px 12px rgba(127,29,29,.08);
    text-decoration:none;
}

.attention-status{
    padding:6px 9px;
    border-radius:999px;
    color:#991b1b;
    background:#fee2e2;
    font-size:13px;
    font-weight:700;
}

.finding-dashboard-item{
    grid-template-columns:auto auto 1.5fr 1fr 1fr;
    border-color:#e5e7eb;
}

.dashboard-columns{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.ranking-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:11px 0;
    border-bottom:1px solid #eee;
}

.ranking-row:last-child{
    border-bottom:0;
}

.ranking-row b{
    min-width:38px;
    padding:5px 9px;
    border-radius:999px;
    text-align:center;
    background:#f2f4f7;
}

.table-wrap{
    overflow-x:auto;
}

.dashboard-table{
    min-width:760px;
}

.dashboard-task-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.dashboard-task-grid .task-card{
    margin:0;
}

.point-settings-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin-top:18px;
}

.point-settings-card{
    margin:0;
}

.point-settings-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.point-settings-heading h2{
    margin:0 0 4px;
}

.point-active{
    padding:6px 9px;
    border-radius:999px;
    color:#067647;
    background:#dcfae6;
    font-size:12px;
    font-weight:800;
}

.deadline-settings-form{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:16px;
}

.deadline-settings-form label{
    display:grid;
    gap:6px;
    font-weight:700;
}

.deadline-settings-form small{
    color:#667085;
    font-weight:400;
}

.deadline-settings-form button{
    grid-column:1/-1;
}

.backup-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}

.backup-heading h1{margin:0 0 5px}
.backup-heading form,.backup-heading button{margin:0}

.backup-success{color:#067647;background:#ecfdf3;border-color:#abefc6}
.backup-error{color:#b42318;background:#fef3f2;border-color:#fecdca}

.backup-info-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin:18px 0;
}

.backup-info-grid .card{display:grid;gap:7px;margin:0}
.backup-info-grid strong{font-size:21px}
.backup-info-grid small{color:#667085}
.backup-list-card{margin-top:18px}
.backup-table{min-width:760px}
.backup-table td small{display:block;margin-top:4px;color:#667085;font-size:12px}
.backup-status{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800}
.backup-status.healthy{color:#067647;background:#dcfae6}
.backup-status.broken{color:#b42318;background:#fee4e2}
.backup-download{font-weight:800}
.restore-note{border-left:5px solid #2563eb}

.push-card{max-width:720px;border-top:4px solid #f59e0b}
.push-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.push-card-heading h2{margin:0}
.push-card .eyebrow{margin:0 0 4px;color:#b45309;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.push-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#fff7db;font-size:24px}
.push-status{margin:18px 0 12px;padding:12px 14px;border-radius:10px;background:#f2f4f7;color:#344054;font-weight:700}
.push-status.success{background:#ecfdf3;color:#067647}
.push-status.error{background:#fef3f2;color:#b42318}
.push-actions{display:flex;flex-wrap:wrap;gap:10px}
.push-actions button{margin:0}
.secondary-button{background:#344054}
.danger-button{background:#b42318}
.install-help{margin-top:14px;padding:12px 14px;border:1px solid #e4e7ec;border-radius:10px;background:#f8fafc}
.install-help summary{cursor:pointer;font-weight:800;color:#344054}
.install-help p:last-child{margin-bottom:0}

.branch-page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}
.branch-page-heading h1{margin-bottom:4px}
.branch-create-card{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(0,2fr);gap:24px;align-items:end;border-top:4px solid #16a34a}
.branch-create-card h2,.branch-create-card .eyebrow{margin-top:0}
.branch-create-card .eyebrow,.branch-card .eyebrow{margin:0 0 4px;color:#15803d;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.branch-create-form,.branch-edit-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.branch-create-form label,.branch-edit-form label,.branch-delete-form label{display:grid;gap:6px;font-weight:700}
.branch-create-form button,.branch-edit-form button{margin:0;white-space:nowrap}
.branch-card{display:grid;gap:14px}
.branch-stats{display:flex;flex-wrap:wrap;gap:8px}
.branch-stats span{padding:7px 10px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:13px}
.branch-stats b{color:#101828}
.branch-settings,.branch-delete-panel{border:1px solid #e4e7ec;border-radius:12px;background:#f8fafc}
.branch-settings summary,.branch-delete-panel summary{cursor:pointer;padding:14px 16px;font-weight:800;color:#344054}
.branch-settings[open] summary,.branch-delete-panel[open] summary{border-bottom:1px solid #e4e7ec}
.branch-settings form{padding:16px}
.branch-delete-panel{border-color:#fecdca;background:#fff7f6}
.branch-delete-panel summary{color:#b42318}
.branch-delete-warning{padding:16px}
.branch-delete-warning h3{margin-top:0;color:#b42318}
.branch-delete-form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:14px}
.branch-delete-form button{margin:0;white-space:nowrap}
.checklist-page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}
.checklist-page-heading h1{margin-bottom:4px}
.checklist-create-card{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(360px,1.3fr);gap:28px;align-items:start}
.checklist-form{display:grid;gap:12px}
.checklist-form label,.schedule-form label{display:grid;gap:6px;font-weight:700}
.checklist-form input,.checklist-form textarea,.checklist-form select{width:100%}
.checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.checklist-card{display:flex;flex-direction:column;gap:14px;margin:0}
.checklist-card-heading{display:flex;justify-content:space-between;gap:18px;align-items:start}
.checklist-card-heading h2{margin:10px 0 4px}
.branch-badge{display:inline-flex;width:max-content;padding:6px 10px;border-radius:999px;background:#eef4ff;color:#3538cd;font-size:13px;font-weight:800}
.checklist-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.checklist-actions form{margin:0}
.checklist-actions button,.checklist-actions a{margin:0;min-height:42px;display:inline-flex;align-items:center}
.secondary-button{padding:10px 14px;border:1px solid #d0d5dd;border-radius:10px;text-decoration:none;color:#344054;background:#fff;font-weight:700}
.checklist-items{display:grid;gap:8px;margin:0;padding-left:24px}
.checklist-items li{padding:8px 10px;border-radius:9px;background:#f8fafc}
.checklist-copy-panel{margin-top:auto;border-top:1px solid #eaecf0;padding-top:12px}
.checklist-copy-panel summary{cursor:pointer;font-weight:800;color:#475467}
.checklist-copy-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:12px}
.checklist-copy-form button{margin:0}
.checklist-edit-card{max-width:820px}

@media(max-width:1000px){
    .dashboard-metrics{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .finding-metrics{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .dashboard-task-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .attention-item,
    .finding-dashboard-item{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:650px){
    .dashboard-filter,
    .section-heading{
        align-items:stretch;
        flex-direction:column;
    }

    .dashboard-filter label{
        min-width:0;
    }

    .dashboard-metrics,
    .finding-metrics,
    .dashboard-columns,
    .dashboard-task-grid{
        grid-template-columns:1fr;
    }

    .point-settings-grid,
    .deadline-settings-form,
    .backup-info-grid{
        grid-template-columns:1fr;
    }

    .branch-create-card,
    .branch-create-form,
    .branch-edit-form,
    .branch-delete-form{
        grid-template-columns:1fr;
    }

    .checklist-create-card,.checklist-grid,.checklist-copy-form{grid-template-columns:1fr}
    .checklist-card-heading{flex-direction:column}
    .checklist-actions{justify-content:flex-start}

    .backup-heading{align-items:stretch;flex-direction:column}
    .backup-heading button{width:100%}

    .deadline-settings-form button{
        grid-column:auto;
    }

    .attention-item,
    .finding-dashboard-item{
        grid-template-columns:1fr;
    }
}
