/* =====================================================
   RESET + ZMIENNE
===================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

:root{
    --bg:#2f2f2f;
    --panel:#242424;
    --panel-dark:#1d1d1d;
    --text:#ffffff;
    --muted:#cfcfcf;
    --orange:#ff7a00;
    --orange-dark:#d96600;
    --border:#444444;
}

/* =====================================================
   GLOBAL
===================================================== */

body{
    font-family:Arial,sans-serif;
    background:var(--bg);
    color:var(--text);
}

a{
    color:inherit;
    text-decoration:none;
}

img{
    max-width:100%;
}

/* =====================================================
   HEADER
===================================================== */

.site-header{
    min-height:82px;
    padding:18px 8%;
    background:var(--panel);
    border-bottom:2px solid var(--orange);

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;

    position:sticky;
    top:0;
    z-index:10;
}

.brand{
    display:flex;
    align-items:center;
    gap:12px;

    font-size:24px;
    font-weight:800;
}

.brand img{
    width:48px;
    height:48px;
    object-fit:contain;
}

.main-nav{
    display:flex;
    align-items:center;
    gap:24px;
}

.main-nav a:hover,
.admin-link{
    color:var(--orange);
}

.menu-toggle{
    display:none;
    border:0;
    background:transparent;
    color:var(--text);
    font-size:32px;
    cursor:pointer;
}

/* =====================================================
   BUTTONS
===================================================== */

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    border:0;
    border-radius:10px;

    padding:14px 22px;

    font-weight:800;
    cursor:pointer;
}

.btn-primary,
.btn.small{
    background:var(--orange);
    color:#151515;
}

.btn-outline{
    border:2px solid var(--orange);
    color:var(--text);
}

.btn.small{
    padding:10px 14px;
    font-size:14px;
}

/* =====================================================
   FOOTER
===================================================== */

.site-footer{
    padding:28px 8%;
    background:#1a1a1a;
    color:#999;
    text-align:center;
}

/* =====================================================
   HOME PAGE
===================================================== */

.hero{
    min-height:72vh;
    padding:80px 8%;

    display:grid;
    grid-template-columns:1.3fr .7fr;
    gap:60px;

    align-items:center;
}

.eyebrow{
    color:var(--orange);
    font-weight:800;
    margin-bottom:14px;
}

.hero h1{
    font-size:clamp(36px,6vw,68px);
    line-height:1.05;
    margin-bottom:24px;
}

.hero-text{
    max-width:680px;
    color:var(--muted);
    font-size:20px;
    line-height:1.6;
}

.hero-actions{
    margin-top:34px;
    display:flex;
    gap:14px;
    flex-wrap:wrap;
}

.hero-card{
    min-height:360px;

    border:1px solid var(--border);
    border-radius:28px;

    background:radial-gradient(circle at top,#444,#202020);

    display:flex;
    align-items:center;
    justify-content:center;
}

.hero-card img{
    width:260px;
    object-fit:contain;
}

/* =====================================================
   PAGE HEADER
===================================================== */

.page-hero{
    padding:70px 8% 35px;
    text-align:center;
}

.page-hero h1{
    font-size:48px;
    margin-bottom:12px;
}

.page-hero p{
    color:var(--muted);
}

/* =====================================================
   FILTERS / INPUTS
===================================================== */

.filters{
    padding:20px 8%;

    display:flex;
    gap:12px;
    justify-content:center;
    flex-wrap:wrap;
}

.filters input,
.filters select,
.code-form input,
.contact-form input,
.contact-form textarea,
.login-box input{
    width:100%;
    max-width:360px;

    border:1px solid var(--border);
    border-radius:10px;

    padding:14px;

    background:#151515;
    color:var(--text);

    outline:none;
}

/* =====================================================
   PRODUCTS
===================================================== */

.product-grid{
    padding:36px 8% 70px;

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:24px;
}

.product-card{
    overflow:hidden;

    background:var(--panel);

    border:1px solid var(--border);
    border-radius:20px;

    transition:.2s;
}

.product-card:hover{
    transform:translateY(-5px);
    border-color:var(--orange);
}

.product-img{
    width:100%;
    height:250px;

    object-fit:cover;
    background:#111;
}

.product-content{
    padding:22px;
}

.product-content p{
    color:var(--muted);
    margin-top:8px;
}

.product-bottom{
    margin-top:20px;

    display:flex;
    align-items:center;
    justify-content:space-between;
}

.product-bottom span{
    color:var(--orange);
    font-size:22px;
    font-weight:900;
}

/* =====================================================
   PRODUCT PAGE
===================================================== */

.product-details{
    padding:70px 8%;

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:45px;

    align-items:start;
}

.product-main-photo{
    width:100%;
    height:520px;

    object-fit:cover;

    border-radius:22px;
    background:#111;
}

.product-info h1{
    font-size:48px;
    margin-bottom:16px;
}

.product-info p{
    color:var(--muted);
    line-height:1.7;
}

.product-info h2{
    color:var(--orange);
    font-size:38px;
    margin:22px 0;
}

/* =====================================================
   ORDER STATUS
===================================================== */

.status-box{
    max-width:900px;
    margin:0 auto 70px;

    background:var(--panel);

    border:1px solid var(--border);
    border-radius:18px;

    padding:26px;
}

.code-form{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.order-result{
    margin-top:24px;
    padding-top:24px;

    border-top:1px solid var(--border);
}

.hidden{
    display:none;
}

.order-photo{
    max-height:260px;
    border-radius:14px;
    margin:15px 0;
}

.order-table{
    width:100%;
    border-collapse:collapse;
    margin-top:15px;
}

.order-table th,
.order-table td{
    border:1px solid var(--border);
    padding:10px;
    text-align:left;
}

/* =====================================================
   CONTACT
===================================================== */

.contact-layout{
    padding:30px 8% 70px;

    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:24px;
}

.contact-form,
.card{
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:18px;
    padding:26px;
}

.contact-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.contact-form textarea{
    min-height:140px;
    max-width:none;
}

.card p{
    color:var(--muted);
    line-height:1.5;
}

/* =====================================================
   ADMIN PANEL
===================================================== */

.admin-body{
    display:grid;
    grid-template-columns:260px 1fr;
    min-height:100vh;
}

.admin-sidebar{
    background:#171717;
    border-right:2px solid var(--orange);

    padding:28px;

    display:flex;
    flex-direction:column;
    gap:14px;
}

.admin-sidebar h2{
    color:var(--orange);
    margin-bottom:18px;
}

.admin-sidebar a{
    padding:12px;
    border-radius:10px;
}

.admin-sidebar a:hover{
    background:var(--panel);
}

.admin-main{
    padding:40px;
}

.admin-main h1{
    font-size:42px;
    margin-bottom:24px;
}

.admin-cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.big{
    font-size:34px;
    color:var(--orange);
    font-weight:900;
}

.admin-panel{
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:18px;
    padding:26px;
    margin-bottom:24px;
}

.admin-row{
    display:flex;
    justify-content:space-between;
    gap:15px;

    border-bottom:1px solid var(--border);
    padding:12px 0;
}

/* =====================================================
   FULLCALENDAR - GOOGLE STYLE
===================================================== */

.admin-top{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:flex-start;
    margin-bottom:24px;
}

.admin-top p{
    color:var(--muted);
    margin-top:8px;
}

#calendar{
    background:#ffffff;
    color:#202124;
    padding:18px;
    border-radius:18px;
    margin-top:20px;
}

.fc{
    font-family:Arial,sans-serif;
}

.fc .fc-toolbar-title{
    color:#202124;
    font-size:24px;
    font-weight:700;
}

.fc .fc-button-primary{
    background:#ff7a00;
    border-color:#ff7a00;
    color:#151515;
    font-weight:700;
    border-radius:8px;
}

.fc .fc-button-primary:hover{
    background:#d96600;
    border-color:#d96600;
}

.fc .fc-button-primary:disabled{
    background:#ffb066;
    border-color:#ffb066;
    color:#333333;
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active{
    background:#d96600;
    border-color:#d96600;
    color:#151515;
}

.fc .fc-daygrid-day-number{
    color:#202124;
    font-weight:600;
}

.fc .fc-col-header-cell-cushion{
    color:#5f6368;
    font-weight:700;
}

.fc .fc-day-today{
    background:#fff3e6 !important;
}

.fc-event{
    border-radius:6px;
    padding:2px 4px;
    font-weight:700;
    cursor:pointer;
}

.fc-event-title{
    font-weight:700;
}

.fc-theme-standard td,
.fc-theme-standard th{
    border-color:#dadce0;
}

.fc-theme-standard .fc-scrollgrid{
    border-color:#dadce0;
}

/* =====================================================
   OLD ADMIN CALENDAR FALLBACK
===================================================== */

.calendar-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
}

.calendar-weekdays,
.calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:8px;
}

.calendar-weekdays span{
    text-align:center;
    color:var(--orange);
    font-weight:900;
}

.calendar-day{
    min-height:120px;
    background:#171717;

    border:1px solid var(--border);
    border-radius:14px;

    padding:10px;

    cursor:pointer;
    transition:.2s;
}

.calendar-day:hover{
    border-color:var(--orange);
}

.calendar-day.today{
    border-color:var(--orange);
}

.calendar-number{
    font-weight:900;
}

.calendar-orders{
    margin-top:8px;
}

.calendar-order-pill{
    background:rgba(255,122,0,.15);
    border:1px solid rgba(255,122,0,.35);

    color:var(--orange);

    border-radius:6px;

    padding:4px 6px;
    margin-top:4px;

    font-size:11px;
}

/* =====================================================
   LOGIN
===================================================== */

.login-body{
    min-height:100vh;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:24px;
}

.login-box{
    width:100%;
    max-width:420px;

    background:var(--panel);

    border:1px solid var(--border);
    border-radius:24px;

    padding:34px;

    display:flex;
    flex-direction:column;
    gap:16px;
}

.login-box img{
    width:90px;
    margin:0 auto;
}

.login-box h1{
    text-align:center;
}

/* =====================================================
   CHARTS
===================================================== */

.chart-placeholder{
    min-height:300px;

    border:2px dashed var(--border);
    border-radius:18px;

    display:flex;
    align-items:center;
    justify-content:center;

    color:var(--orange);
}

/* =====================================================
   MOBILE
===================================================== */

@media(max-width:900px){

    .menu-toggle{
        display:block;
    }

    .main-nav{
        display:none;

        position:absolute;
        top:82px;
        left:0;

        width:100%;

        padding:24px 8%;

        background:var(--panel);
        border-bottom:2px solid var(--orange);

        flex-direction:column;
        align-items:flex-start;
    }

    .main-nav.active{
        display:flex;
    }

    .hero,
    .product-details,
    .contact-layout,
    .admin-body{
        grid-template-columns:1fr;
    }

    .hero{
        text-align:center;
    }

    .hero-actions{
        justify-content:center;
    }

    .admin-cards{
        grid-template-columns:1fr;
    }

    .admin-sidebar{
        border-right:0;
        border-bottom:2px solid var(--orange);
    }

    .calendar-weekdays,
    .calendar-grid{
        grid-template-columns:1fr;
    }

    .calendar-weekdays{
        display:none;
    }

    #calendar{
        padding:10px;
        border-radius:14px;
    }

    .fc .fc-toolbar{
        flex-direction:column;
        gap:10px;
    }

    .fc .fc-toolbar-title{
        font-size:20px;
    }
}

/* =====================================================
   ADMIN PRODUCTS
===================================================== */

.admin-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.admin-form input,
.admin-form select,
.admin-form textarea{
    width:100%;
    border:1px solid var(--border);
    border-radius:10px;
    padding:14px;
    background:#151515;
    color:var(--text);
    outline:none;
}

.admin-form textarea{
    min-height:110px;
    resize:vertical;
}

.admin-product-row{
    display:grid;
    grid-template-columns:80px 1fr auto;
    gap:16px;
    align-items:center;
    border-bottom:1px solid var(--border);
    padding:14px 0;
}

.admin-product-row img{
    width:80px;
    height:80px;
    object-fit:cover;
    border-radius:12px;
    background:#111;
}

.admin-product-row p{
    color:var(--muted);
    margin:5px 0;
}

.admin-product-row small{
    color:#999;
}

.admin-product-row span{
    color:var(--orange);
    font-weight:900;
}

#productMessage{
    color:var(--orange);
    font-weight:700;
}

@media(max-width:700px){
    .admin-product-row{
        grid-template-columns:1fr;
    }

    .admin-product-row img{
        width:100%;
        height:180px;
    }
}

/* =====================================================
   ADMIN PRODUCTS TABLE
===================================================== */

.admin-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.admin-form input,
.admin-form select,
.admin-form textarea{
    width:100%;
    border:1px solid var(--border);
    border-radius:10px;
    padding:14px;
    background:#151515;
    color:var(--text);
    outline:none;
}

.admin-form textarea{
    min-height:110px;
    resize:vertical;
}

#productMessage{
    color:var(--orange);
    font-weight:700;
}

.table-wrapper{
    width:100%;
    overflow-x:auto;
}

.admin-table{
    width:100%;
    min-width:1000px;
    border-collapse:collapse;
}

.admin-table th{
    background:#1b1b1b;
    color:var(--orange);
    text-align:left;
    padding:14px;
}

.admin-table td{
    border-top:1px solid var(--border);
    padding:14px;
    vertical-align:middle;
}

.admin-table tr:hover{
    background:#2a2a2a;
}

.table-product-image{
    width:70px;
    height:70px;
    object-fit:cover;
    border-radius:10px;
    background:#111;
}

.status-active{
    color:#00d26a;
    font-weight:700;
}

.status-disabled{
    color:#ff5555;
    font-weight:700;
}

@media(max-width:700px){
    .admin-table{
        min-width:900px;
    }
}

/* =====================================================
   EDIT PRODUCT MODAL
===================================================== */

.modal{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.72);
    z-index:1000;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:20px;
}

.modal.hidden{
    display:none;
}

.modal-box{
    width:100%;
    max-width:700px;
    max-height:90vh;
    overflow:auto;

    background:var(--panel);

    border:1px solid var(--border);
    border-top:3px solid var(--orange);
    border-radius:22px;

    padding:26px;
}

.modal-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;

    margin-bottom:20px;
}

.modal-close{
    width:42px;
    height:42px;

    border:0;
    border-radius:50%;

    background:#151515;
    color:var(--text);

    font-size:28px;
    cursor:pointer;
}

.modal-actions{
    display:flex;
    justify-content:flex-end;
    gap:12px;
    flex-wrap:wrap;
}

#editProductMessage{
    color:var(--orange);
    font-weight:700;
}

/* =====================================================
   ADMIN JOBS
===================================================== */

.job-form-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px;
}

.job-form-grid label{
    display:flex;
    flex-direction:column;
    gap:7px;
    color:var(--muted);
    font-size:14px;
}

.job-form-grid input,
.job-form-grid select,
.job-items-table input,
.job-items-table select{
    width:100%;
    box-sizing:border-box;
    border:1px solid var(--border);
    border-radius:8px;
    padding:10px;
    background:#151515;
    color:var(--text);
}

.job-section-title{
    margin:16px 0 0;
    padding-top:18px;
    border-top:1px solid var(--border);
    color:var(--orange);
}

.job-span-2{ grid-column:span 2; }
.job-items-table{ min-width:900px; }
.job-items-table th, .job-items-table td{ padding:10px; }
.job-items-table td:nth-child(n+5){ white-space:nowrap; }
.job-add-item{ align-self:flex-start; }

.job-remove-item, .job-delete{
    border:0;
    border-radius:8px;
    cursor:pointer;
    background:#4a1e1e;
    color:#ffb3b3;
    padding:7px 10px;
}

.job-remove-item{ font-size:20px; line-height:1; }

.job-total-box{
    display:flex;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:12px 24px;
    padding:16px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#151515;
}

.job-total-box span{ color:var(--muted); }
.job-total-box strong{ color:var(--text); }
.job-total-box .job-grand-total{ color:var(--orange); font-size:17px; }
.job-total-box .job-grand-total strong{ color:var(--orange); }
.job-message{ min-height:20px; color:var(--orange); font-weight:700; }
.job-list-table small{ display:block; color:var(--muted); margin-top:4px; }
.delivery-details{ padding:16px; border:1px dashed var(--border); border-radius:12px; }
.delivery-hint{ grid-column:span 2; margin:0; align-self:end; color:var(--muted); }
.job-preview-box{ max-width:900px; }
.job-preview-meta{ display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.job-preview-meta div, .job-preview-total{ border:1px solid var(--border); border-radius:10px; padding:12px; background:#151515; }
.job-preview-meta strong, .job-preview-meta span{ display:block; }
.job-preview-meta strong{ color:var(--muted); font-size:13px; margin-bottom:4px; }
.job-preview-box h3{ color:var(--orange); margin:22px 0 8px; }
.job-preview-box p{ color:var(--text); line-height:1.6; }
.job-preview-items{ min-width:650px; }
.job-preview-total{ display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px 24px; margin-top:14px; }
.job-preview-total span:last-child, .job-preview-total span:last-child strong{ color:var(--orange); }

@media(max-width:700px){
    .job-form-grid{ grid-template-columns:1fr; }
    .job-span-2{ grid-column:span 1; }
    .delivery-hint{ grid-column:span 1; }
    .job-preview-meta{ grid-template-columns:1fr; }
    .job-total-box{ justify-content:flex-start; }
}
/* =====================================================
   PRODUCT CONFIGURATOR - WORKING VERSION
===================================================== */

.configurator-page{
    min-height:calc(100vh - 82px);
    padding:40px 8%;

    display:grid;
    grid-template-columns:1.4fr .6fr;
    gap:28px;
}

.configurator-view{
    background:#151515;
    border:1px solid var(--border);
    border-radius:22px;
    overflow:hidden;
}

#stlViewer{
    width:100%;
    height:650px;
}

.configurator-panel{
    background:var(--panel);
    border:1px solid var(--border);
    border-radius:22px;
    padding:28px;
}

.configurator-panel h1{
    font-size:34px;
    margin-bottom:14px;
}

.configurator-panel p{
    color:var(--muted);
    line-height:1.6;
}

.configurator-panel h3{
    margin-top:28px;
    margin-bottom:14px;
    color:var(--orange);
}

.file-label{
    margin-top:24px;

    display:flex;
    flex-direction:column;
    gap:10px;

    color:var(--orange);
    font-weight:800;
}

.file-label input{
    width:100%;

    border:1px solid var(--border);
    border-radius:10px;

    padding:14px;

    background:#151515;
    color:var(--text);
}

.color-options{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.color-btn{
    width:46px;
    height:46px;

    border-radius:50%;
    border:3px solid #ffffff;

    cursor:pointer;
    transition:.2s;
}

.color-btn:hover{
    transform:scale(1.12);
    border-color:var(--orange);
}

.config-summary{
    margin:24px 0;
    padding:16px;

    background:#151515;

    border:1px solid var(--border);
    border-radius:14px;
}

.config-summary p{
    margin-bottom:8px;
}

@media(max-width:900px){
    .configurator-page{
        grid-template-columns:1fr;
    }

    #stlViewer{
        height:420px;
    }
}

/* =====================================================
   CONFIGURATOR OBJECT LIST
===================================================== */

.object-list{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-bottom:18px;
}

.object-list p{
    color:var(--muted);
}

.object-list-btn{
    width:100%;

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;

    border:1px solid var(--border);
    border-radius:10px;

    padding:12px 14px;

    background:#151515;
    color:var(--text);

    cursor:pointer;
    transition:.2s;
}

.object-list-btn:hover{
    border-color:var(--orange);
}

.object-list-btn.active{
    border-color:var(--orange);
    background:#21170d;
}

.object-list-btn span{
    font-weight:700;
}

.object-list-btn small{
    width:24px;
    height:24px;

    border-radius:50%;
    border:2px solid #ffffff;

    display:block;
}
/* =====================================================
   ADMIN COLORS
===================================================== */

.color-preview{
    width:36px;
    height:36px;
    display:block;
    border-radius:50%;
    border:2px solid #ffffff;
}

#colorMessage,
#editColorMessage{
    color:var(--orange);
    font-weight:700;
}

/* =====================================================
   ADMIN MENU ACTIVE
===================================================== */

.active-admin-link{
    background:var(--panel);
    color:var(--orange);
    font-weight:900;
}

.form-hint{
    color:var(--muted);
    font-size:13px;
    margin-top:-6px;
}

/* =====================================================
   PRODUCT COLOR CHECKBOXES
===================================================== */

.product-colors-box{
    display:flex;
    flex-direction:column;
    gap:10px;
    background:#151515;
    border:1px solid var(--border);
    border-radius:12px;
    padding:14px;
}

.product-color-check{
    display:flex;
    align-items:center;
    gap:12px;
    padding:10px;
    border:1px solid var(--border);
    border-radius:10px;
    cursor:pointer;
}

.product-color-check:hover{
    border-color:var(--orange);
}

.product-color-check input{
    width:auto;
}

.product-color-check small{
    color:var(--muted);
    margin-left:auto;
}

/* =====================================================
   ADMIN OBJECT COLORS
===================================================== */

.object-colors-admin-box{
    display:flex;
    flex-direction:column;
    gap:14px;
    margin-top:14px;
}

.object-color-admin-card{
    background:#151515;
    border:1px solid var(--border);
    border-radius:14px;
    padding:14px;
}

.object-color-admin-card h4{
    color:var(--orange);
    margin-bottom:12px;
}

.object-color-list{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:10px;
}

.object-color-check{
    display:flex;
    align-items:center;
    gap:10px;
    border:1px solid var(--border);
    border-radius:10px;
    padding:10px;
    cursor:pointer;
}

.object-color-check:hover{
    border-color:var(--orange);
}

.object-color-check input{
    width:auto;
}

.object-color-dot{
    width:24px;
    height:24px;
    border-radius:50%;
    border:2px solid #fff;
}

.product-card-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.product-card-stl-preview{
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    background:#202020;
}

.product-card-stl-preview canvas{
    display:block;
    width:100% !important;
    height:100% !important;
}

.product-card-stl-preview span{
    color:var(--muted);
    font-size:14px;
}

/* =====================================================
   ADMIN PANEL — IPHONE / SMALL MOBILE
===================================================== */

@media(max-width:600px){
    .admin-body{
        display:block;
        min-width:320px;
        overflow-x:hidden;
    }

    .admin-sidebar{
        position:sticky;
        top:0;
        z-index:100;
        width:100%;
        box-sizing:border-box;
        flex-direction:row;
        align-items:center;
        gap:6px;
        padding:calc(10px + env(safe-area-inset-top)) 12px 10px;
        overflow-x:auto;
        overflow-y:hidden;
        white-space:nowrap;
        border-right:0;
        border-bottom:2px solid var(--orange);
        -webkit-overflow-scrolling:touch;
    }

    .admin-sidebar h2{
        flex:0 0 auto;
        margin:0 6px 0 0;
        font-size:19px;
    }

    .admin-sidebar a{
        flex:0 0 auto;
        padding:10px 12px;
        font-size:14px;
    }

    .admin-main{
        padding:22px 14px calc(28px + env(safe-area-inset-bottom));
    }

    .admin-main h1{
        margin-bottom:18px;
        font-size:30px;
        line-height:1.15;
    }

    .admin-top{
        flex-direction:column;
        gap:10px;
        margin-bottom:18px;
    }

    .admin-top h2,
    .admin-panel h2{
        font-size:22px;
        line-height:1.2;
    }

    .admin-panel{
        padding:16px;
        border-radius:14px;
        margin-bottom:16px;
    }

    .admin-cards{
        gap:14px;
    }

    .card{
        padding:18px;
    }

    .big{
        font-size:30px;
    }

    .admin-form input,
    .admin-form select,
    .admin-form textarea,
    .job-form-grid input,
    .job-form-grid select{
        min-height:44px;
        box-sizing:border-box;
        font-size:16px;
    }

    .admin-form textarea{
        min-height:105px;
    }

    .btn{
        min-height:44px;
    }

    .btn.small{
        min-height:38px;
        padding:8px 10px;
    }

    .table-wrapper{
        width:calc(100% + 4px);
        margin-right:-4px;
        -webkit-overflow-scrolling:touch;
    }

    .admin-table th,
    .admin-table td{
        padding:11px 10px;
    }

    .admin-row{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px 12px;
        padding:14px 0;
    }

    .admin-row strong{
        grid-column:1 / -1;
        font-size:16px;
    }

    #calendar{
        margin-top:12px;
        padding:6px;
        overflow:hidden;
    }

    .fc .fc-header-toolbar{
        gap:8px;
    }

    .fc .fc-toolbar-title{
        font-size:18px;
    }

    .fc .fc-button{
        padding:7px 8px;
        font-size:12px;
    }

    .fc .fc-daygrid-day-number,
    .fc .fc-col-header-cell-cushion{
        padding:5px;
        font-size:12px;
    }

    .modal{
        align-items:flex-end;
        padding:0;
    }

    .modal-box,
    .job-preview-box{
        max-width:none;
        max-height:88vh;
        border-radius:20px 20px 0 0;
        padding:20px 16px calc(20px + env(safe-area-inset-bottom));
    }

    .modal-header h2{
        font-size:21px;
    }

    .modal-actions{
        flex-direction:column-reverse;
    }

    .modal-actions .btn{
        width:100%;
    }

    .job-total-box,
    .job-preview-total{
        justify-content:flex-start;
        flex-direction:column;
        gap:8px;
    }

    .login-body{
        align-items:flex-start;
        padding:calc(28px + env(safe-area-inset-top)) 16px 24px;
    }

    .login-box{
        margin-top:8vh;
        padding:24px 18px;
        border-radius:18px;
    }
}
