/* ============================================================
   HR D.Varec — Design System v4.0
   Mobile-first, clean, modern UI
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
    --primary: #6366F1;
    --primary-hover: #4F46E5;
    --primary-light: #EEF2FF;
    --primary-50: #E0E7FF;
    --primary-100: #C7D2FE;
    --primary-900: #312E81;

    --slate-950: #020617;
    --slate-900: #0F172A;
    --slate-800: #1E293B;
    --slate-700: #334155;
    --slate-600: #475569;
    --slate-500: #64748B;
    --slate-400: #94A3B8;
    --slate-300: #CBD5E1;
    --slate-200: #E2E8F0;
    --slate-100: #F1F5F9;
    --slate-50: #F8FAFC;
    --white: #FFFFFF;

    --success: #10B981;
    --success-light: #D1FAE5;
    --success-dark: #059669;
    --warning: #F59E0B;
    --warning-light: #FEF3C7;
    --danger: #EF4444;
    --danger-light: #FEE2E2;
    --danger-dark: #DC2626;
    --info: #3B82F6;
    --info-light: #DBEAFE;

    --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
    --mono: 'SF Mono', 'Cascadia Code', 'Fira Code', monospace;

    --radius-xs: 4px;
    --radius-sm: 8px;
    --radius: 12px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-full: 9999px;

    --shadow-xs: 0 1px 2px rgba(0,0,0,.05);
    --shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
    --shadow: 0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -2px rgba(0,0,0,.05);
    --shadow-md: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.04);
    --shadow-lg: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.04);
    --shadow-xl: 0 25px 50px -12px rgba(0,0,0,.25);

    --ease: cubic-bezier(.4, 0, .2, 1);
    --ease-out: cubic-bezier(.16, 1, .3, 1);
    --t-fast: .15s var(--ease);
    --t-base: .2s var(--ease);
    --t-slow: .3s var(--ease);
    --t-panel: .4s var(--ease-out);

    --header-h: 56px;
    --bottom-h: 60px;
    --sidebar-w: 260px;
    --panel-w: 420px;
}

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);color:var(--slate-900);background:var(--slate-50);line-height:1.6;min-height:100vh;min-height:100dvh;overflow-x:hidden}
a{color:var(--primary);text-decoration:none;transition:color var(--t-fast)}
a:hover{color:var(--primary-hover)}
img{max-width:100%;display:block}
table{border-collapse:collapse;width:100%}
button,input,select,textarea{font-family:var(--font);font-size:inherit}

/* ---- App Layout ---- */
.app-layout{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.sidebar{display:none}
.main-content{flex:1;display:flex;flex-direction:column;padding-bottom:var(--bottom-h)}
.page-content{flex:1;padding:16px;max-width:960px;width:100%;margin:0 auto}

/* ---- Top Header ---- */
.top-header{
    height:var(--header-h);
    background:rgba(255,255,255,.85);
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
    border-bottom:1px solid var(--slate-200);
    display:flex;
    align-items:center;
    padding:0 16px;
    gap:12px;
    position:sticky;
    top:0;
    z-index:100;
}
.header-logo{
    display:flex;align-items:center;gap:8px;flex-shrink:0;
    font-weight:800;font-size:1rem;color:var(--slate-900);
}
.header-logo .logo-dot{
    width:30px;height:30px;background:var(--primary);border-radius:var(--radius-sm);
    display:flex;align-items:center;justify-content:center;
    color:var(--white);font-size:.7rem;font-weight:800;
}
.header-title{font-size:1rem;font-weight:700;display:none}
.header-search{flex:1;max-width:320px;position:relative}
.header-search .search-icon{
    position:absolute;left:12px;top:50%;transform:translateY(-50%);
    color:var(--slate-400);font-size:.85rem;pointer-events:none;
}
.header-search input{
    width:100%;padding:8px 12px 8px 36px;
    border:1px solid transparent;border-radius:var(--radius-full);
    font-size:.85rem;background:var(--slate-100);
    transition:all var(--t-base);outline:none;color:var(--slate-900);
}
.header-search input:focus{
    background:var(--white);border-color:var(--primary);
    box-shadow:0 0 0 3px var(--primary-light);
}
.search-results-dropdown{
    position:absolute;top:calc(100% + 8px);left:0;right:0;
    background:var(--white);border-radius:var(--radius);
    box-shadow:var(--shadow-lg);border:1px solid var(--slate-200);
    max-height:320px;overflow-y:auto;display:none;z-index:200;
}
.search-results-dropdown.active{display:block}
.search-result-item{
    padding:10px 14px;cursor:pointer;
    border-bottom:1px solid var(--slate-100);transition:background var(--t-fast);
}
.search-result-item:hover{background:var(--slate-50)}
.search-result-item:last-child{border-bottom:none}
.search-result-type{
    font-size:.65rem;font-weight:700;text-transform:uppercase;
    letter-spacing:.05em;color:var(--primary);margin-bottom:2px;
}
.header-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}
.lang-switch{display:flex;background:var(--slate-100);border-radius:var(--radius-full);padding:2px}
.lang-switch a{
    padding:4px 10px;font-size:.75rem;font-weight:600;
    color:var(--slate-500);border-radius:var(--radius-full);transition:all var(--t-fast);
}
.lang-switch a.active{background:var(--white);color:var(--slate-900);box-shadow:var(--shadow-xs)}

/* ---- Bottom Navigation ---- */
.bottom-nav{
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    height:var(--bottom-h);
    background:rgba(255,255,255,.95);
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
    border-top:1px solid var(--slate-200);
    display:flex;
    align-items:center;
    justify-content:space-around;
    z-index:100;
    padding-bottom:env(safe-area-inset-bottom,0);
}
.bottom-nav-item{
    display:flex;flex-direction:column;align-items:center;gap:2px;
    padding:6px 10px;color:var(--slate-400);font-size:.62rem;font-weight:600;
    transition:color var(--t-fast);-webkit-tap-highlight-color:transparent;
    text-decoration:none;position:relative;
}
.bottom-nav-item .nav-ico{font-size:1.25rem;line-height:1}
.bottom-nav-item.active{color:var(--primary)}
.bottom-nav-item.active::before{
    content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
    width:20px;height:3px;background:var(--primary);border-radius:0 0 3px 3px;
}

/* ---- FAB ---- */
.fab{
    position:fixed;
    bottom:calc(var(--bottom-h) + 16px + env(safe-area-inset-bottom,0px));
    right:16px;width:56px;height:56px;border-radius:50%;
    background:var(--primary);color:var(--white);border:none;
    font-size:1.6rem;display:flex;align-items:center;justify-content:center;
    cursor:pointer;box-shadow:0 8px 24px rgba(99,102,241,.4);
    z-index:90;transition:all var(--t-base);
    -webkit-tap-highlight-color:transparent;line-height:1;
}
.fab:hover{transform:scale(1.08);box-shadow:0 12px 28px rgba(99,102,241,.5)}
.fab:active{transform:scale(.95)}

/* ---- Sidebar (Desktop) ---- */
.sidebar-header{padding:20px 20px 16px;border-bottom:1px solid var(--slate-200)}
.sidebar-logo{
    font-size:1.05rem;font-weight:800;color:var(--slate-900);
    display:flex;align-items:center;gap:10px;
}
.sidebar-logo .logo-icon{
    width:32px;height:32px;background:var(--primary);border-radius:var(--radius-sm);
    display:flex;align-items:center;justify-content:center;
    color:var(--white);font-weight:800;font-size:.7rem;
}
.sidebar-nav{flex:1;overflow-y:auto;padding:12px 10px}
.nav-section{margin-bottom:4px}
.nav-section-title{
    font-size:.65rem;font-weight:700;text-transform:uppercase;
    letter-spacing:.06em;color:var(--slate-400);padding:10px 12px 4px;
}
.nav-item{
    display:flex;align-items:center;gap:10px;padding:9px 12px;
    border-radius:var(--radius-sm);color:var(--slate-600);font-weight:500;
    font-size:.87rem;transition:all var(--t-fast);cursor:pointer;
}
.nav-item:hover{background:var(--slate-100);color:var(--slate-900)}
.nav-item.active{background:var(--primary-light);color:var(--primary);font-weight:600}
.nav-item .nav-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.95rem}
.nav-item .nav-badge{
    margin-left:auto;background:var(--danger);color:var(--white);
    font-size:.65rem;font-weight:700;padding:1px 7px;border-radius:10px;
}
.sidebar-footer{padding:12px 14px;border-top:1px solid var(--slate-200)}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);transition:background var(--t-fast)}
.sidebar-user:hover{background:var(--slate-50)}
.user-avatar{
    width:34px;height:34px;border-radius:50%;
    background:linear-gradient(135deg,var(--primary),var(--primary-hover));
    color:var(--white);display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:.82rem;flex-shrink:0;
}
.user-info{flex:1;min-width:0}
.user-name{font-weight:600;font-size:.82rem;color:var(--slate-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{font-size:.7rem;color:var(--slate-500)}

/* ---- Stats Cards ---- */
.stats-row{
    display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;padding:2px 0;margin-bottom:20px;
}
.stats-row::-webkit-scrollbar{display:none}
.stat-card{
    flex:0 0 auto;min-width:130px;background:var(--white);
    border-radius:var(--radius);padding:16px;
    border:1px solid var(--slate-200);
    transition:box-shadow var(--t-base);
}
.stat-card:hover{box-shadow:var(--shadow-sm)}
.stat-icon-wrap{
    width:36px;height:36px;border-radius:var(--radius-sm);
    display:flex;align-items:center;justify-content:center;
    font-size:1.1rem;margin-bottom:10px;
}
.stat-icon-wrap.blue{background:var(--primary-light);color:var(--primary)}
.stat-icon-wrap.green{background:var(--success-light);color:var(--success)}
.stat-icon-wrap.orange{background:var(--warning-light);color:var(--warning)}
.stat-icon-wrap.red{background:var(--danger-light);color:var(--danger)}
.stat-value{font-size:1.5rem;font-weight:800;color:var(--slate-900);line-height:1.2}
.stat-label{font-size:.73rem;color:var(--slate-500);margin-top:2px;font-weight:500}

/* legacy alias */
.stats-scroll{display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0;margin-bottom:20px}
.stats-scroll::-webkit-scrollbar{display:none}
.stat-icon-inline{display:inline-flex;width:32px;height:32px;border-radius:var(--radius-sm);align-items:center;justify-content:center;font-size:.95rem;margin-bottom:8px}
.stat-icon-inline.blue{background:var(--primary-light);color:var(--primary)}
.stat-icon-inline.green{background:var(--success-light);color:var(--success)}
.stat-icon-inline.orange{background:var(--warning-light);color:var(--warning)}
.stat-icon-inline.red{background:var(--danger-light);color:var(--danger)}

/* ---- Quick Actions ---- */
.quick-actions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}
.quick-action{
    padding:18px 12px;border:1px solid var(--slate-200);border-radius:var(--radius);
    text-align:center;cursor:pointer;transition:all var(--t-base);
    background:var(--white);text-decoration:none;-webkit-tap-highlight-color:transparent;
}
.quick-action:hover{border-color:var(--primary);background:var(--primary-light)}
.quick-action-icon{font-size:1.4rem;margin-bottom:6px}
.quick-action-label{font-size:.78rem;font-weight:600;color:var(--slate-700)}

/* ---- Workspace Tabs ---- */
.workspace-tabs{
    display:flex;gap:0;margin-bottom:16px;overflow-x:auto;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
    border-bottom:2px solid var(--slate-200);
}
.workspace-tabs::-webkit-scrollbar{display:none}
.workspace-tab{
    padding:10px 16px;font-size:.85rem;font-weight:600;color:var(--slate-500);
    cursor:pointer;white-space:nowrap;border:none;background:none;
    border-bottom:2px solid transparent;margin-bottom:-2px;
    transition:all var(--t-fast);-webkit-tap-highlight-color:transparent;
}
.workspace-tab:hover{color:var(--slate-700)}
.workspace-tab.active{color:var(--primary);border-bottom-color:var(--primary)}
.tab-content{display:none;animation:fadeSlideUp .3s var(--ease)}
.tab-content.active{display:block}

@keyframes fadeSlideUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ---- Cards ---- */
.card{background:var(--white);border-radius:var(--radius);border:1px solid var(--slate-200);overflow:visible}
.card-header{padding:14px 16px;border-bottom:1px solid var(--slate-200);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.card-title{font-size:.95rem;font-weight:700;color:var(--slate-900)}
.card-body{padding:16px}
.card-footer{padding:12px 16px;border-top:1px solid var(--slate-200);display:flex;justify-content:flex-end;gap:8px}

/* ---- Mobile Cards (list items) ---- */
.mobile-cards{display:flex;flex-direction:column;gap:8px}
.mobile-card{
    background:var(--white);border:1px solid var(--slate-200);border-radius:var(--radius);
    padding:14px;display:flex;align-items:flex-start;gap:12px;
    transition:all var(--t-fast);cursor:pointer;text-decoration:none;color:inherit;
}
.mobile-card:active{background:var(--slate-50);transform:scale(.995)}
.mobile-card-avatar{
    width:40px;height:40px;border-radius:50%;
    background:var(--primary-light);color:var(--primary);
    display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:.82rem;flex-shrink:0;
}
.mobile-card-body{flex:1;min-width:0}
.mobile-card-title{font-weight:600;font-size:.87rem;color:var(--slate-900)}
.mobile-card-subtitle{font-size:.78rem;color:var(--slate-500);margin-top:2px}
.mobile-card-footer{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.mobile-card-right{text-align:right;flex-shrink:0}
.mobile-card-amount{font-weight:700;font-size:.9rem;color:var(--slate-900)}
.mobile-card-hours{font-size:.73rem;color:var(--slate-500)}

/* ---- Panel / Slide Drawer ---- */
.panel-overlay{
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:rgba(15,23,42,.4);
    z-index:1000;
    opacity:0;
    visibility:hidden;
    transition:opacity var(--t-panel),visibility var(--t-panel);
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
}
.panel-overlay.active{
    opacity:1;
    visibility:visible;
}
.panel{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:100%;
    max-width:var(--panel-w);
    background:var(--white);
    z-index:1001;
    display:flex;
    flex-direction:column;
    transform:translateX(100%);
    transition:transform var(--t-panel);
    box-shadow:var(--shadow-xl);
}
.panel-overlay.active .panel{
    transform:translateX(0);
}
.panel-header{
    padding:14px 16px;border-bottom:1px solid var(--slate-200);
    display:flex;align-items:center;gap:10px;flex-shrink:0;
}
.panel-back{
    width:32px;height:32px;border-radius:var(--radius-sm);background:var(--slate-100);
    border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
    font-size:1rem;color:var(--slate-600);transition:all var(--t-fast);flex-shrink:0;
}
.panel-back:hover{background:var(--slate-200);color:var(--slate-900)}
.panel-title{flex:1;font-size:.95rem;font-weight:700;color:var(--slate-900)}
.panel-close{
    width:32px;height:32px;border-radius:var(--radius-sm);background:none;
    border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
    font-size:1.1rem;color:var(--slate-400);transition:all var(--t-fast);flex-shrink:0;
}
.panel-close:hover{background:var(--slate-100);color:var(--slate-900)}
.panel-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.panel-footer{
    padding:14px 16px;border-top:1px solid var(--slate-200);
    display:flex;gap:10px;flex-shrink:0;background:var(--white);
}

/* ---- Wizard Steps ---- */
.wizard-progress{
    display:flex;align-items:center;gap:4px;padding:14px 16px;
    border-bottom:1px solid var(--slate-100);
}
.wizard-dot{
    height:4px;flex:1;border-radius:2px;background:var(--slate-200);
    transition:background var(--t-slow);
}
.wizard-dot.active{background:var(--primary)}
.wizard-dot.done{background:var(--success)}

/* ---- Wizard Pages ---- */
.wizard-page{display:none;padding:20px 16px;animation:wizSlide .3s var(--ease)}
.wizard-page.active{display:block}
@keyframes wizSlide{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
.wizard-page-title{font-size:1.1rem;font-weight:700;color:var(--slate-900);margin-bottom:4px}
.wizard-page-desc{font-size:.82rem;color:var(--slate-500);margin-bottom:20px;line-height:1.5}

/* ---- Select Cards (employees) ---- */
.select-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.select-card{
    padding:14px 10px;border:2px solid var(--slate-200);border-radius:var(--radius);
    cursor:pointer;transition:all var(--t-fast);background:var(--white);
    -webkit-tap-highlight-color:transparent;text-align:center;position:relative;
}
.select-card:hover{border-color:var(--slate-300);background:var(--slate-50)}
.select-card.selected{border-color:var(--primary);background:var(--primary-light)}
.select-card.selected::after{
    content:'✓';position:absolute;top:6px;right:6px;
    width:20px;height:20px;background:var(--primary);color:var(--white);
    border-radius:50%;font-size:.6rem;display:flex;
    align-items:center;justify-content:center;font-weight:700;
}
.select-card-avatar{
    width:42px;height:42px;border-radius:50%;
    background:var(--primary-light);color:var(--primary);
    display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:.85rem;margin:0 auto 8px;
}
.select-card-name{font-size:.8rem;font-weight:600;color:var(--slate-900);line-height:1.3}
.select-card-meta{font-size:.7rem;color:var(--slate-400);margin-top:2px}
.select-card-full{
    grid-column:1/-1;text-align:left;display:flex;align-items:center;gap:12px;padding:12px 14px;
}
.select-card-full .select-card-avatar{margin:0;flex-shrink:0}

/* ---- Company Cards ---- */
.company-grid{display:grid;grid-template-columns:1fr;gap:8px}
.company-card{
    padding:16px;border:2px solid var(--slate-200);border-radius:var(--radius);
    cursor:pointer;transition:all var(--t-fast);background:var(--white);
    display:flex;align-items:center;gap:14px;-webkit-tap-highlight-color:transparent;
}
.company-card:hover{border-color:var(--slate-300)}
.company-card.selected{border-color:var(--primary);background:var(--primary-light)}
.company-card-icon{
    width:44px;height:44px;border-radius:var(--radius-sm);background:var(--slate-100);
    display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;
}
.company-card.selected .company-card-icon{background:var(--primary-50)}
.company-card-name{font-size:.9rem;font-weight:600;color:var(--slate-900);flex:1}
.company-card-check{
    width:22px;height:22px;border:2px solid var(--slate-300);border-radius:50%;
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
    transition:all var(--t-fast);
}
.company-card.selected .company-card-check{
    background:var(--primary);border-color:var(--primary);color:var(--white);font-size:.6rem;font-weight:700;
}

/* ---- Object List ---- */
.object-list{display:flex;flex-direction:column;gap:6px}
.object-item{
    padding:12px 14px;border:1px solid var(--slate-200);border-radius:var(--radius-sm);
    cursor:pointer;transition:all var(--t-fast);display:flex;align-items:center;gap:10px;
    -webkit-tap-highlight-color:transparent;
}
.object-item:hover{background:var(--slate-50)}
.object-item.selected{border-color:var(--primary);background:var(--primary-light)}
.object-item-name{font-size:.85rem;font-weight:500;flex:1}
.object-item-addr{font-size:.73rem;color:var(--slate-400)}
.add-new-btn{
    padding:12px;border:2px dashed var(--slate-300);border-radius:var(--radius-sm);
    cursor:pointer;text-align:center;color:var(--primary);font-weight:600;
    font-size:.82rem;transition:all var(--t-fast);background:none;width:100%;
    font-family:var(--font);-webkit-tap-highlight-color:transparent;
}
.add-new-btn:hover{border-color:var(--primary);background:var(--primary-light)}

/* ---- Calendar ---- */
.calendar{background:var(--white);border-radius:var(--radius);border:1px solid var(--slate-200);overflow:hidden}
.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px}
.calendar-title{font-size:.9rem;font-weight:700;color:var(--slate-900)}
.calendar-nav{
    width:32px;height:32px;border-radius:var(--radius-sm);background:none;
    border:1px solid var(--slate-200);cursor:pointer;display:flex;
    align-items:center;justify-content:center;font-size:1rem;
    color:var(--slate-600);transition:all var(--t-fast);
}
.calendar-nav:hover{background:var(--slate-50);border-color:var(--slate-300)}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:0 8px}
.calendar-weekday{text-align:center;font-size:.68rem;font-weight:700;color:var(--slate-400);padding:6px 0;text-transform:uppercase}
.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);padding:4px 8px 10px;gap:2px}
.calendar-day{
    aspect-ratio:1;display:flex;align-items:center;justify-content:center;
    border-radius:var(--radius-sm);font-size:.82rem;font-weight:500;
    cursor:pointer;transition:all var(--t-fast);color:var(--slate-900);
    -webkit-tap-highlight-color:transparent;
}
.calendar-day:hover{background:var(--slate-100)}
.calendar-day.other-month{color:var(--slate-300)}
.calendar-day.today{font-weight:700;color:var(--primary);background:var(--primary-light)}
.calendar-day.selected{background:var(--primary);color:var(--white);font-weight:700}
.calendar-day.selected:hover{background:var(--primary-hover)}

/* ---- Time Input ---- */
.time-input-group{
    display:flex;align-items:center;gap:2px;
    background:var(--slate-100);border-radius:var(--radius-sm);padding:4px;
}
.time-input{
    width:48px;text-align:center;padding:8px 2px;border:none;
    border-radius:var(--radius-xs);font-size:1.05rem;font-weight:700;
    font-family:var(--mono);background:var(--white);color:var(--slate-900);
    outline:none;transition:box-shadow var(--t-fast);
}
.time-input:focus{box-shadow:0 0 0 2px var(--primary)}
.time-separator{font-size:1.1rem;font-weight:700;color:var(--slate-400);padding:0 2px}
.time-picker-row{display:flex;align-items:center;gap:12px}
.time-picker-label{font-size:.82rem;font-weight:600;color:var(--slate-600);min-width:55px}

/* ---- Interval Cards ---- */
.intervals-container{display:flex;flex-direction:column;gap:10px}
.interval-card{border:1px solid var(--slate-200);border-radius:var(--radius-sm);padding:14px;position:relative}
.interval-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.interval-card-num{font-size:.73rem;font-weight:700;color:var(--primary);background:var(--primary-light);padding:2px 10px;border-radius:var(--radius-full)}
.interval-remove{
    width:26px;height:26px;border-radius:50%;background:var(--danger-light);
    color:var(--danger);border:none;cursor:pointer;display:flex;
    align-items:center;justify-content:center;font-size:.75rem;transition:all var(--t-fast);
}
.interval-remove:hover{background:var(--danger);color:var(--white)}
.interval-times{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* ---- Buttons ---- */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:10px 18px;border:none;border-radius:var(--radius-sm);
    font-family:var(--font);font-size:.85rem;font-weight:600;
    cursor:pointer;transition:all var(--t-fast);white-space:nowrap;
    text-decoration:none;line-height:1.4;-webkit-tap-highlight-color:transparent;
}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-primary{background:var(--primary);color:var(--white)}
.btn-primary:hover:not(:disabled){background:var(--primary-hover);color:var(--white)}
.btn-secondary{background:var(--slate-100);color:var(--slate-700)}
.btn-secondary:hover:not(:disabled){background:var(--slate-200)}
.btn-outline{background:transparent;border:1px solid var(--slate-200);color:var(--slate-600)}
.btn-outline:hover:not(:disabled){border-color:var(--slate-300);background:var(--slate-50)}
.btn-danger{background:var(--danger);color:var(--white)}
.btn-danger:hover:not(:disabled){background:var(--danger-dark);color:var(--white)}
.btn-success{background:var(--success);color:var(--white)}
.btn-success:hover:not(:disabled){background:var(--success-dark);color:var(--white)}
.btn-ghost{background:none;border:none;color:var(--primary);padding:10px 14px}
.btn-ghost:hover{background:var(--primary-light)}
.btn-sm{padding:6px 12px;font-size:.78rem;border-radius:var(--radius-xs)}
.btn-lg{padding:14px 28px;font-size:.95rem}
.btn-full{width:100%}
.btn-icon{padding:8px;min-width:36px}
.btn-group{display:flex;gap:6px}

/* ---- Forms ---- */
.form-group{margin-bottom:14px}
.form-label{display:block;font-size:.82rem;font-weight:600;color:var(--slate-600);margin-bottom:6px}
.form-control{
    width:100%;padding:10px 12px;border:1px solid var(--slate-200);
    border-radius:var(--radius-sm);font-family:var(--font);font-size:.87rem;
    color:var(--slate-900);background:var(--white);
    transition:border-color var(--t-fast),box-shadow var(--t-fast);outline:none;
}
.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
.form-control::placeholder{color:var(--slate-400)}
select.form-control{
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%2364748B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;
}
textarea.form-control{min-height:80px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr;gap:14px}
.form-check{display:flex;align-items:center;gap:8px;cursor:pointer}
.form-check input[type="checkbox"]{width:18px;height:18px;accent-color:var(--primary)}
.form-hint{font-size:.73rem;color:var(--slate-400);margin-top:4px}
.form-error{font-size:.73rem;color:var(--danger);margin-top:4px}
.inline-add-form{
    padding:14px;border:1px solid var(--primary-100);border-radius:var(--radius-sm);
    background:var(--primary-light);margin-top:10px;animation:fadeSlideUp .2s var(--ease);
}

/* ---- Searchbox ---- */
.searchbox{position:relative;margin-bottom:12px}
.searchbox input{
    width:100%;padding:10px 12px 10px 36px;border:1px solid var(--slate-200);
    border-radius:var(--radius-sm);font-size:.85rem;background:var(--slate-50);
    outline:none;transition:all var(--t-fast);font-family:var(--font);color:var(--slate-900);
}
.searchbox input:focus{border-color:var(--primary);background:var(--white);box-shadow:0 0 0 3px var(--primary-light)}
.searchbox .searchbox-ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--slate-400);pointer-events:none;font-size:.85rem}

/* ---- Badges ---- */
.badge{
    display:inline-flex;align-items:center;padding:2px 8px;
    border-radius:var(--radius-full);font-size:.7rem;font-weight:600;white-space:nowrap;
}
.badge-blue{background:var(--primary-light);color:var(--primary)}
.badge-green{background:var(--success-light);color:var(--success-dark)}
.badge-orange{background:var(--warning-light);color:var(--warning)}
.badge-red{background:var(--danger-light);color:var(--danger)}
.badge-gray{background:var(--slate-100);color:var(--slate-600)}

/* ---- Tables ---- */
.data-table-wrap{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse}
.data-table th{
    padding:10px 14px;text-align:left;font-size:.7rem;font-weight:700;
    color:var(--slate-400);text-transform:uppercase;letter-spacing:.05em;
    background:var(--slate-50);border-bottom:2px solid var(--slate-200);white-space:nowrap;
    position:sticky;top:0;
}
.data-table td{padding:11px 14px;font-size:.84rem;border-bottom:1px solid var(--slate-100);color:var(--slate-800)}
.data-table tbody tr{transition:background var(--t-fast)}
.data-table tbody tr:hover{background:var(--slate-50)}
.data-table tfoot td{padding:12px 14px;background:var(--slate-50);border-top:2px solid var(--slate-200);font-size:.85rem}
.data-table .text-right{text-align:right}
.data-table .text-center{text-align:center}

/* ---- Context Menu ---- */
.context-menu-wrapper{position:relative}
.context-menu-btn{
    background:none;border:none;cursor:pointer;padding:4px 8px;
    border-radius:var(--radius-sm);color:var(--slate-500);
    transition:all var(--t-fast);font-size:1.1rem;line-height:1;
}
.context-menu-btn:hover{background:var(--slate-100);color:var(--slate-900)}
.context-menu{
    position:absolute;right:0;top:100%;min-width:160px;
    background:var(--white);border-radius:var(--radius-sm);
    box-shadow:var(--shadow-lg);border:1px solid var(--slate-200);
    z-index:100;display:none;padding:4px;
}
.context-menu.active{display:block}
.context-menu-item{
    display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:.82rem;
    color:var(--slate-600);border-radius:var(--radius-xs);cursor:pointer;
    transition:all var(--t-fast);border:none;background:none;width:100%;
    text-align:left;font-family:var(--font);
}
.context-menu-item:hover{background:var(--slate-50);color:var(--slate-900)}
.context-menu-item.danger{color:var(--danger)}
.context-menu-item.danger:hover{background:var(--danger-light)}
.context-menu-divider{height:1px;background:var(--slate-100);margin:4px 0}

/* ---- Modal ---- */
.modal-overlay{
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:rgba(15,23,42,.5);
    z-index:1000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:16px;
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
}
.modal-overlay.active{display:flex}
.modal{
    background:var(--white);border-radius:var(--radius-lg);
    box-shadow:var(--shadow-xl);width:100%;max-width:420px;
    max-height:90vh;overflow-y:auto;animation:modalIn .3s var(--ease);
}
@keyframes modalIn{from{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-header{padding:18px 20px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--slate-200)}
.modal-title{font-size:1rem;font-weight:700}
.modal-close{
    background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--slate-400);
    padding:4px;border-radius:var(--radius-sm);transition:all var(--t-fast);
}
.modal-close:hover{background:var(--slate-100);color:var(--slate-900)}
.modal-body{padding:20px}
.modal-footer{padding:14px 20px;border-top:1px solid var(--slate-200);display:flex;justify-content:flex-end;gap:8px}

/* ---- Toast ---- */
.toast-container{
    position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:2000;
    display:flex;flex-direction:column;gap:8px;
    width:calc(100% - 32px);max-width:380px;pointer-events:none;
}
.toast{
    background:var(--slate-800);color:var(--white);border-radius:var(--radius-sm);
    padding:12px 16px;display:flex;align-items:center;gap:10px;
    font-size:.85rem;font-weight:500;animation:toastIn .3s var(--ease);
    pointer-events:auto;box-shadow:var(--shadow-lg);
}
.toast.success{background:var(--success)}
.toast.error{background:var(--danger)}
.toast.warning{background:var(--warning)}
@keyframes toastIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}

/* ---- Timer Widget ---- */
.timer-widget{
    background:linear-gradient(135deg,var(--primary-light),var(--white));
    border:2px solid var(--primary-100);border-radius:var(--radius);
    padding:20px;text-align:center;margin-bottom:20px;
}
.timer-display{font-size:2rem;font-weight:800;font-family:var(--mono);color:var(--slate-900);margin:8px 0}
.timer-status{font-size:.82rem;color:var(--slate-500);margin-bottom:8px}
.timer-status.running{color:var(--success);font-weight:600}

/* ---- Filters ---- */
.filters-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;align-items:flex-end}
.filter-group{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.filter-label{font-size:.73rem;font-weight:600;color:var(--slate-500)}
.filter-group .form-control{min-width:0}

/* ---- Filter Toggle (mobile) ---- */
.filters-toggle-btn{
    display:none;align-items:center;justify-content:center;gap:6px;
    width:100%;padding:10px 14px;background:var(--white);
    border:1px solid var(--slate-200);border-radius:var(--radius-sm);
    font-size:.82rem;font-weight:600;color:var(--slate-600);
    cursor:pointer;margin-bottom:12px;font-family:var(--font);
    transition:all var(--t-fast);
}
.filters-toggle-btn:hover{background:var(--slate-50)}
.filters-toggle-btn .toggle-arrow{font-size:.7rem;transition:transform var(--t-fast);margin-left:4px}
.filters-toggle-btn.open .toggle-arrow{transform:rotate(180deg)}
.filters-toggle-btn.open{background:var(--primary-light);color:var(--primary);border-color:var(--primary-100)}

/* ---- Empty State ---- */
.empty-state{text-align:center;padding:48px 16px;color:var(--slate-400)}
.empty-state-icon{font-size:2.5rem;margin-bottom:12px;opacity:.4}
.empty-state-title{font-size:.93rem;font-weight:600;color:var(--slate-600);margin-bottom:4px}

/* ---- Summary (wizard confirmation) ---- */
.summary-list{display:flex;flex-direction:column;gap:10px}
.summary-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--slate-50);border-radius:var(--radius-sm)}
.summary-item-icon{
    width:32px;height:32px;border-radius:var(--radius-sm);background:var(--primary-light);
    color:var(--primary);display:flex;align-items:center;justify-content:center;
    font-size:.85rem;flex-shrink:0;
}
.summary-item-label{font-size:.7rem;font-weight:700;color:var(--slate-400);text-transform:uppercase;letter-spacing:.03em}
.summary-item-value{font-size:.87rem;font-weight:600;color:var(--slate-900);margin-top:2px}

/* ---- Spinner ---- */
.spinner{
    width:24px;height:24px;border:3px solid var(--slate-200);
    border-top-color:var(--primary);border-radius:50%;
    animation:spin .6s linear infinite;margin:0 auto;
}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-overlay{
    position:absolute;
    top:0;left:0;right:0;bottom:0;
    background:rgba(255,255,255,.8);
    display:flex;align-items:center;justify-content:center;z-index:10;border-radius:inherit;
}

/* ---- Selection Chips ---- */
.selection-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.selection-chip{
    display:inline-flex;align-items:center;gap:4px;padding:4px 10px;
    background:var(--primary-light);color:var(--primary);
    border-radius:var(--radius-full);font-size:.78rem;font-weight:600;
}
.selection-chip-remove{cursor:pointer;font-size:.9rem;line-height:1;opacity:.7;transition:opacity var(--t-fast)}
.selection-chip-remove:hover{opacity:1}

/* ---- Pagination ---- */
.pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:16px}
.pagination a,.pagination span{padding:6px 12px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:500;color:var(--slate-600);transition:all var(--t-fast)}
.pagination a:hover{background:var(--slate-100)}
.pagination .active{background:var(--primary);color:var(--white)}

/* ---- Section Heading ---- */
.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.section-title{font-size:.93rem;font-weight:700;color:var(--slate-900)}
.section-link{font-size:.78rem;font-weight:600;color:var(--primary)}

/* ---- Login Page ---- */
.login-page{
    min-height:100vh;min-height:100dvh;display:flex;align-items:center;
    justify-content:center;background:var(--slate-50);padding:24px;
}
.login-card{
    width:100%;max-width:380px;background:var(--white);
    border-radius:var(--radius-lg);box-shadow:var(--shadow-md);
    padding:36px 28px;border:1px solid var(--slate-200);
}
.login-logo{text-align:center;margin-bottom:28px}
.login-logo .logo-icon{
    width:52px;height:52px;margin:0 auto 12px;background:var(--primary);
    border-radius:var(--radius);display:flex;align-items:center;
    justify-content:center;color:var(--white);font-weight:800;font-size:1.2rem;
}
.login-logo h1{font-size:1.2rem;font-weight:800;color:var(--slate-900)}
.login-logo p{font-size:.82rem;color:var(--slate-500);margin-top:4px}
.login-error{
    background:var(--danger-light);color:var(--danger);padding:10px 14px;
    border-radius:var(--radius-sm);font-size:.82rem;margin-bottom:16px;
    text-align:center;font-weight:500;
}

/* ---- Install ---- */
.install-page{padding:24px}

/* ---- Interval row (legacy form) ---- */
.interval-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--slate-100)}
.interval-row:last-child{border-bottom:none}

/* ---- Stats Grid (legacy) ---- */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}
.stat-icon{
    width:40px;height:40px;border-radius:var(--radius-sm);display:flex;
    align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;
}
.stat-icon.blue{background:var(--primary-light);color:var(--primary)}
.stat-icon.green{background:var(--success-light);color:var(--success)}
.stat-icon.orange{background:var(--warning-light);color:var(--warning)}
.stat-icon.red{background:var(--danger-light);color:var(--danger)}

/* ---- Scrollbar ---- */
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--slate-300);border-radius:2px}
::-webkit-scrollbar-thumb:hover{background:var(--slate-400)}

/* ---- Table container ---- */
.table-container{overflow-x:auto}

/* ---- Utilities ---- */
.text-primary{color:var(--primary)}
.text-blue{color:var(--primary)}
.text-green{color:var(--success)}
.text-red{color:var(--danger)}
.text-gray{color:var(--slate-500)}
.text-right{text-align:right}
.text-center{text-align:center}
.text-sm{font-size:.78rem}
.text-bold{font-weight:700}
.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}
.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}
.d-flex{display:flex}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}
.items-center{align-items:center}.justify-between{justify-content:space-between}
.flex-1{flex:1}.w-full{width:100%}
.hidden{display:none !important}

/* ============================================================
   Desktop (768px+)
   ============================================================ */
@media(min-width:768px){
    .app-layout{flex-direction:row}
    .main-content{margin-left:var(--sidebar-w);padding-bottom:0}
    .bottom-nav{display:none}
    .fab{bottom:24px;right:24px}
    .sidebar{
        display:flex;flex-direction:column;width:var(--sidebar-w);
        background:var(--white);border-right:1px solid var(--slate-200);
        position:fixed;top:0;left:0;bottom:0;z-index:100;
    }
    .header-logo{display:none}
    .header-title{display:block}
    .page-content{padding:24px}
    .stats-row,.stats-scroll{
        display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));overflow:visible;
    }
    .stat-card{min-width:0}
    .select-grid{grid-template-columns:repeat(3,1fr)}
    .form-row{grid-template-columns:1fr 1fr}
    .interval-row{grid-template-columns:1fr 1fr 2fr 2fr 3fr auto}
    .filter-group{flex:0 0 auto}
    .filter-group .form-control{min-width:140px}
    .quick-actions-grid{grid-template-columns:repeat(4,1fr)}
    .panel{width:var(--panel-w)}
}

@media(max-width:767px){
    .filters-bar{flex-direction:column;align-items:stretch;gap:12px}
    .filters-bar .filter-group{flex:none;width:100%}
    .filters-bar .filter-label{text-align:left}
    .filters-bar button[type="submit"]{width:100%}
    .data-table-desktop{display:none}
    .filters-toggle-btn{display:flex}
    .filters-bar.collapsible{display:none}
    .filters-bar.collapsible.open{
        display:flex;
        padding:16px;
        background:var(--slate-50);
        border:1px solid var(--slate-200);
        border-radius:var(--radius-sm);
    }
}
@media(min-width:768px){
    .mobile-cards-only{display:none}
}
