:root{
  color-scheme:light;
  --bg:#f4f6f4;
  --surface:#ffffff;
  --surface-2:#f8faf8;
  --surface-3:#eef3ef;
  --text:#17201c;
  --muted:#66716b;
  --muted-2:#87918b;
  --line:#dce3de;
  --line-strong:#c9d3cc;
  --accent:#246b50;
  --accent-strong:#18513b;
  --accent-soft:#e3f0e9;
  --danger:#b42318;
  --danger-soft:#fde9e7;
  --warning:#9a6700;
  --warning-soft:#fff3d8;
  --info:#315c92;
  --info-soft:#e8f0fb;
  --shadow:0 10px 30px rgba(28,45,37,.07);
  --shadow-lg:0 22px 60px rgba(21,35,29,.16);
  --radius-sm:8px;
  --radius:12px;
  --radius-lg:18px;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-7:32px;
  --control:42px;
  --mobile-control:44px;
  --sidebar:260px;
  --topbar:72px;
  --font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
[data-theme="dark"]{
  color-scheme:dark;
  --bg:#09100d;
  --surface:#111a16;
  --surface-2:#17221d;
  --surface-3:#1e2b25;
  --text:#edf4f0;
  --muted:#a9b7af;
  --muted-2:#809087;
  --line:#2b3a33;
  --line-strong:#3a4d43;
  --accent:#63c493;
  --accent-strong:#87d8ad;
  --accent-soft:#183629;
  --danger:#ff8a80;
  --danger-soft:#40201e;
  --warning:#efc15e;
  --warning-soft:#3b311b;
  --info:#8bb8f2;
  --info-soft:#1b2b3f;
  --shadow:0 12px 34px rgba(0,0,0,.24);
  --shadow-lg:0 28px 70px rgba(0,0,0,.42);
}
*{box-sizing:border-box}
html{min-width:320px;background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:var(--bg);color:var(--text);font:15.5px/1.45 var(--font);text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.52}
button svg,.icon-btn svg,.btn svg,.main-nav svg,.mobile-bottom-nav svg,.kpi-icon svg,.search-field svg,.quick-create-grid svg,.empty-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
img{max-width:100%}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}
.muted{color:var(--muted)}
.overdue,.danger-text{color:var(--danger)!important}
.app-root{min-height:100vh}
.login-screen{min-height:100vh;background:var(--bg);transition:opacity .16s ease,transform .16s ease}
.login-screen.leaving{opacity:0;transform:translateY(-6px)}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(400px,1fr) minmax(460px,.9fr)}
.login-brand-panel{padding:56px clamp(38px,6vw,96px);display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#16382b,#245f47);color:#fff;position:relative;overflow:hidden}
.login-brand-panel:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-160px;bottom:-120px}
.login-logo{width:154px;filter:brightness(0) invert(1)}
.brand-copy{max-width:600px;position:relative;z-index:1}
.eyebrow{display:inline-block;font-size:12px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.login-brand-panel .eyebrow{color:rgba(255,255,255,.68)}
.brand-copy h1{font-size:clamp(42px,5vw,74px);line-height:.95;letter-spacing:-.055em;margin:18px 0 22px}
.brand-copy p{max-width:510px;margin:0;font-size:18px;color:rgba(255,255,255,.78)}
.login-feature-list{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1}
.login-feature-list span{padding:9px 12px;border:1px solid rgba(255,255,255,.17);border-radius:999px;font-size:13px;color:rgba(255,255,255,.8)}
.login-card-wrap{display:grid;place-items:center;padding:32px}
.login-card{width:min(100%,440px);padding:36px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}
.login-card h2{font-size:30px;letter-spacing:-.03em;margin:8px 0 4px}
.login-card>.muted{margin:0 0 26px}
.mobile-login-logo{display:none}
.form-field{display:grid;gap:7px;margin-bottom:15px}
.form-field>span,.form-field>label,.form-field label{font-size:13px;font-weight:700;color:var(--muted)}
.form-field input,.form-field select,.form-field textarea,.toolbar select,.settings-list select,.stage-control select,.kanban-control-bar select{width:100%;min-height:var(--control);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:9px 12px;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}
.form-field textarea{resize:vertical;min-height:96px}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.toolbar select:focus,.settings-list select:focus,.stage-control select:focus,.kanban-control-bar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent);outline:none}
.password-field{position:relative}
.password-field input{padding-right:52px}
.password-toggle{position:absolute;right:3px;top:3px}
.inline-error,.form-errors{padding:10px 12px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:14px;margin:0 0 14px}
.demo-warning{margin:16px 0 0;text-align:center;color:var(--muted);font-size:12.5px}
.btn{min-height:var(--control);border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:750;text-decoration:none;transition:background .14s ease,border-color .14s ease,transform .14s ease,color .14s ease,box-shadow .14s ease}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
[data-theme="dark"] .btn-primary{color:#07130d}
.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}
.btn-secondary{background:var(--surface);border-color:var(--line);color:var(--text)}
.btn-secondary:hover{background:var(--surface-3);border-color:var(--line-strong)}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn-compact{min-height:36px;padding:7px 11px;font-size:13px}
.btn-wide{width:100%}
.btn.loading span:after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px}
.icon-btn{width:var(--control);height:var(--control);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;display:inline-grid;place-items:center;color:var(--muted);transition:background .14s ease,color .14s ease,border-color .14s ease}
.icon-btn:hover{background:var(--surface-3);color:var(--text)}
.crm-shell{min-height:100vh;display:flex}
.sidebar{position:fixed;z-index:30;left:0;top:0;bottom:0;width:var(--sidebar);background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;transition:width .18s ease,transform .18s ease}
.sidebar-header{height:var(--topbar);padding:10px 12px 10px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px}
.brand-button{border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:11px;min-width:0;padding:4px;text-align:left}
.brand-button img{width:31px;height:31px}
.brand-button span{display:grid;line-height:1.05;white-space:nowrap}
.brand-button strong{font-size:15px;letter-spacing:.08em}
.brand-button small{font-size:9px;color:var(--muted);letter-spacing:.1em;margin-top:3px}
.main-nav{padding:12px 10px;display:grid;gap:2px;overflow:auto}
.main-nav button{position:relative;min-height:41px;border:0;border-radius:9px;background:transparent;color:var(--muted);padding:8px 10px;display:flex;align-items:center;gap:11px;text-align:left;font-size:13px;font-weight:650;line-height:1.25;transition:background .14s ease,color .14s ease}
.main-nav button:hover{background:var(--surface-3);color:var(--text)}
.main-nav button.active{background:var(--accent-soft);color:var(--accent-strong)}
.sidebar-footer{margin-top:auto;padding:12px;border-top:1px solid var(--line)}
.sidebar-theme-toggle{width:100%;min-height:48px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--text);display:grid;grid-template-columns:32px minmax(0,1fr) 34px;align-items:center;gap:9px;padding:7px 8px;text-align:left;transition:background .14s ease,border-color .14s ease}
.sidebar-theme-toggle:hover{background:var(--surface-3);border-color:var(--line-strong)}
.theme-toggle-icon{width:32px;height:32px;border-radius:8px;background:var(--surface);display:grid;place-items:center;color:var(--accent-strong)}
.theme-toggle-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle-copy{display:grid;min-width:0}.theme-toggle-copy strong{font-size:12.5px}.theme-toggle-copy small{font-size:11.5px;color:var(--muted)}
.theme-toggle-state{width:30px;height:18px;border-radius:999px;background:var(--line-strong);padding:2px;transition:background .14s ease}
.theme-toggle-state:after{content:"";display:block;width:14px;height:14px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.18);transition:transform .14s ease}
.theme-toggle-state.is-dark{background:var(--accent)}.theme-toggle-state.is-dark:after{transform:translateX(12px)}
.avatar{width:36px;height:36px;border-radius:50%;display:inline-grid;place-items:center;flex:0 0 auto;background:var(--accent-soft);color:var(--accent-strong);font-size:12px;font-weight:800}
.avatar-sm{width:28px;height:28px;font-size:10px}.avatar-lg{width:54px;height:54px;font-size:16px}
.sidebar.collapsed{width:78px}
.sidebar.collapsed .brand-button span,.sidebar.collapsed .main-nav button span,.sidebar.collapsed .theme-toggle-copy,.sidebar.collapsed .theme-toggle-state{display:none}
.sidebar.collapsed .main-nav button{justify-content:center;padding-inline:0}
.sidebar.collapsed .sidebar-header{padding-inline:12px;display:grid;grid-template-columns:1fr}
.sidebar.collapsed .brand-button{justify-content:center}
.sidebar.collapsed #sidebar-collapse{position:absolute;right:-15px;top:22px;width:30px;height:30px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.sidebar.collapsed #sidebar-collapse svg{transform:rotate(180deg)}

.sidebar.collapsed .sidebar-footer{padding:10px 12px}
.sidebar.collapsed .sidebar-theme-toggle{grid-template-columns:1fr;width:44px;min-height:44px;padding:5px;margin:0 auto}
.sidebar.collapsed .theme-toggle-icon{width:32px;height:32px}
.main-column{min-width:0;width:100%;margin-left:var(--sidebar);transition:margin-left .18s ease}
.sidebar.collapsed~.drawer-backdrop+.main-column,.sidebar.collapsed+.drawer-backdrop+.main-column{margin-left:78px}
.topbar{position:sticky;z-index:20;top:0;height:var(--topbar);padding:12px 24px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);display:flex;align-items:center;gap:14px}
.mobile-menu{display:none}
.global-search-wrap{position:relative;flex:1;max-width:590px}
.global-search-wrap>.search-icon{position:absolute;z-index:1;left:13px;top:50%;transform:translateY(-50%);width:19px;height:19px;fill:none;stroke:var(--muted);stroke-width:1.8}
.global-search-wrap input{width:100%;height:42px;padding:9px 72px 9px 42px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);outline:none;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}
.global-search-wrap input:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}
.global-search-wrap kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);padding:3px 7px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--muted);font:11px var(--font)}
.search-results{position:absolute;left:0;right:0;top:calc(100% + 8px);max-height:420px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-lg)}
.search-results>button{width:100%;border:0;background:transparent;padding:10px 12px;border-radius:8px;display:grid;text-align:left}
.search-results>button:hover,.search-results>button:focus-visible{background:var(--surface-3)}
.search-results strong{font-size:14px}.search-results span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:7px}
.indicator-btn{position:relative}
.indicator-dot{position:absolute;right:8px;top:8px;width:8px;height:8px;border:2px solid var(--surface);border-radius:50%;background:var(--danger)}
.profile-btn{height:42px;border:0;background:transparent;border-radius:10px;padding:3px 6px 3px 3px;display:flex;align-items:center;gap:7px;color:var(--text)}
.profile-btn:hover{background:var(--surface-3)}
.profile-btn>svg{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:1.8}
.popover{position:fixed;z-index:60;top:64px;right:22px;width:min(380px,calc(100vw - 24px));border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-lg);padding:8px}
.profile-popover{width:270px}
.popover header{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 8px}
.popover header>div{display:grid}.popover header span{font-size:12px;color:var(--muted)}
.popover-user{display:flex;gap:10px;align-items:center;padding:10px;border-bottom:1px solid var(--line);margin-bottom:4px}.popover-user div{display:grid}.popover-user small{color:var(--muted)}
.profile-popover>button{width:100%;min-height:42px;border:0;background:transparent;border-radius:8px;padding:9px 10px;display:flex;align-items:center;gap:10px;text-align:left}.profile-popover>button:hover{background:var(--surface-3)}
.profile-popover>button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}
.notification-list{display:grid;gap:2px;max-height:370px;overflow:auto}
.notification-item{border:0;background:transparent;border-radius:9px;padding:10px;display:grid;grid-template-columns:8px 1fr;gap:8px;text-align:left}.notification-item:hover{background:var(--surface-3)}.notification-item.read{opacity:.62}.notification-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:6px}.notification-item.read .notification-dot{background:var(--line-strong)}.notification-item div{display:grid}.notification-item strong{font-size:13.5px}.notification-item p{margin:2px 0 0;color:var(--muted);font-size:12.5px}
.main-content{min-height:calc(100vh - var(--topbar));padding:28px clamp(20px,2.5vw,38px) 70px;outline:none}
.page-view{max-width:1560px;margin:0 auto}
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px}
.page-heading h1{font-size:30px;line-height:1.08;letter-spacing:-.035em;margin:7px 0 5px}.page-heading p{margin:0;color:var(--muted);max-width:720px}.page-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}

.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.kpi-card{min-width:0;padding:17px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 1px 0 rgba(0,0,0,.02);display:grid;gap:6px;transition:border-color .14s ease,transform .14s ease,box-shadow .14s ease}.kpi-card>span{font-size:13px;color:var(--muted);font-weight:650}.kpi-card>strong{font-size:24px;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-top{min-height:29px;display:flex;align-items:center;justify-content:space-between}.kpi-icon{width:30px;height:30px;border-radius:8px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent-strong)}.kpi-icon svg{width:16px;height:16px}.metric-trend{padding:3px 7px;border-radius:999px;font-size:11.5px;font-weight:800}.metric-trend.positive{background:var(--accent-soft);color:var(--accent-strong)}.metric-trend.negative{background:var(--danger-soft);color:var(--danger)}.metric-trend.neutral{background:var(--surface-3);color:var(--muted)}.kpi-card footer{min-height:34px;display:flex;align-items:end;justify-content:space-between;gap:8px}.kpi-card small{color:var(--muted);font-size:12px}.sparkline{width:86px!important;height:30px!important;overflow:visible}.sparkline polyline{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:drawline .45s ease forwards}
.panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 1px 0 rgba(0,0,0,.02)}
.panel-head{min-height:64px;padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-head h2{font-size:16px;margin:0}.panel-head p{margin:2px 0 0;font-size:12.5px;color:var(--muted)}.panel-total{font-size:18px}.panel-body{padding:18px}
.dashboard-grid,.analytics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.span-2{grid-column:span 2}
.text-action,.entity-link{border:0;background:transparent;color:var(--accent-strong);padding:0;font-weight:750;text-align:left}.text-action{min-height:32px}.entity-link:hover,.text-action:hover{text-decoration:underline}
.compact-list{display:grid}.compact-item{border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 18px;display:grid;gap:2px;text-align:left}.compact-item:last-child{border-bottom:0}.compact-item:hover{background:var(--surface-2)}.compact-item time{font-size:12px;color:var(--muted)}.compact-item strong{font-size:14px}.compact-item span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.activity-list{display:grid;padding:4px 18px 10px}.activity-item{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}.activity-item:last-child{border-bottom:0}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:5px}.activity-item strong{font-size:13.5px}.activity-item p{margin:2px 0 0;color:var(--muted);font-size:12.5px}.activity-item time{font-size:11.5px;color:var(--muted)}
.toolbar{display:flex;align-items:center;gap:10px;margin:0 0 14px}.toolbar-main{flex:1;min-width:260px;display:flex;gap:8px}.search-field{position:relative;display:block;flex:1;max-width:470px}.search-field svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);width:18px;height:18px}.search-field input{width:100%;height:42px;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:9px 12px 9px 38px;outline:none}.search-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.toolbar-filters{display:flex;align-items:center;gap:8px}.toolbar-filters label{display:block}.toolbar-filters select{min-width:145px}.mobile-filter-open{display:none}.view-toggle{display:flex;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.view-toggle button{min-height:34px;border:0;background:transparent;border-radius:6px;padding:6px 10px;color:var(--muted);font-weight:700}.view-toggle button.active{background:var(--surface-3);color:var(--text)}
.table-panel{overflow:hidden}.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{position:sticky;top:0;z-index:1;background:var(--surface-2);font-size:11.5px;letter-spacing:.035em;text-transform:uppercase;color:var(--muted);white-space:nowrap}td{font-size:13.5px}td small{display:block;margin-top:2px;color:var(--muted);font-size:11.5px}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:0}.sort-button{border:0;background:transparent;padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;display:inline-flex;gap:5px}.row-actions{display:flex;justify-content:flex-end;gap:3px}.action-btn{width:36px;height:36px}.danger-action:hover{background:var(--danger-soft);color:var(--danger)}.mobile-card-list{display:none}.pagination,.pagination-note{padding:12px 14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12.5px}.pagination>div{display:flex;gap:6px}
.status-badge{display:inline-flex;align-items:center;min-height:26px;padding:3px 8px;border-radius:999px;background:var(--surface-3);color:var(--muted);font-size:9.5px;font-weight:750;white-space:nowrap}.status-новый,.status-новая,.status-запланирован,.status-планируется{background:var(--info-soft);color:var(--info)}.status-сделка,.status-завершено,.status-выполнен,.status-выполнено,.status-оплачено,.status-активен{background:var(--accent-soft);color:var(--accent-strong)}.status-отказ,.status-отменён,.status-не-оплачено{background:var(--danger-soft);color:var(--danger)}.status-частично,.status-подтвержден,.status-подтверждён,.status-согласование,.status-сумма-не-задана{background:var(--warning-soft);color:var(--warning)}
.priority-label{display:inline-flex;align-items:center;min-height:25px;padding:3px 8px;border-radius:999px;background:var(--surface-3);color:var(--muted);font-size:11.5px;font-weight:800}.priority-label-priority-высокий,.priority-label-status-высокий,.priority-label-высокий{background:var(--warning-soft);color:var(--warning)}.priority-label-priority-срочный,.priority-label-status-срочный,.priority-label-срочный{background:var(--danger-soft);color:var(--danger)}.priority-label-priority-средний,.priority-label-status-средний,.priority-label-средний{background:var(--info-soft);color:var(--info)}
.progress{height:7px;border-radius:999px;background:var(--surface-3);overflow:hidden}.progress i{display:block;height:100%;width:var(--value);background:var(--accent);border-radius:inherit;transform-origin:left;animation:growbar .32s ease}.progress-cell{min-width:110px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.progress-cell span{font-size:11.5px;color:var(--muted)}
.kanban-board{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:14px;align-items:start}.kanban-column{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);transition:border-color .14s ease,background .14s ease}.kanban-column>header{min-height:52px;padding:11px 13px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.kanban-column>header>div{display:flex;align-items:center;gap:8px}.kanban-column>header strong{font-size:13.5px}.kanban-column>header span{min-width:23px;height:23px;border-radius:999px;background:var(--surface);display:grid;place-items:center;font-size:11px;color:var(--muted)}.kanban-cards{padding:10px;display:grid;gap:9px}.kanban-card{min-width:0;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 2px 8px rgba(25,42,34,.04);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.kanban-card.dragging{opacity:.45}.kanban-column.drag-over{border-color:var(--accent);background:var(--accent-soft)}.kanban-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.kanban-card .row-actions{margin-left:auto}.kanban-card p{margin:7px 0 4px;color:var(--muted);font-size:13px}.kanban-card>span{font-size:12px;color:var(--muted)}.kanban-empty{min-height:74px;padding:16px;border:1px dashed var(--line-strong);border-radius:8px;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:12px}.stage-control{display:grid;gap:5px;margin-top:11px}.stage-control span{font-size:11.5px;color:var(--muted);font-weight:700}.stage-control select{height:38px;min-height:38px;padding:6px 9px;font-size:12.5px}.tap-target{min-height:40px;display:inline-flex;align-items:center}
.kanban-control-bar{position:sticky;top:calc(var(--topbar) + 8px);z-index:10;margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(180px,260px) minmax(180px,260px) 1fr;gap:12px;align-items:end}.kanban-control-bar label{display:grid;gap:5px}.kanban-control-bar label>span{font-size:11.5px;color:var(--muted);font-weight:750}.kanban-summary{justify-self:end;display:flex;gap:16px;align-items:center;min-height:42px}.kanban-summary span{font-size:12.5px;color:var(--muted)}.kanban-summary strong{color:var(--text);font-size:17px}.project-kanban{display:grid;gap:14px}.project-stage{width:100%;background:var(--surface)}.project-stage>header{position:sticky;top:calc(var(--topbar) + 92px);z-index:7;background:var(--surface);border-radius:var(--radius) var(--radius) 0 0}.project-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-kanban-card{padding:15px}.project-kanban-card h3{margin:9px 0 2px;font-size:15px}.project-kanban-card>p{margin:0 0 12px}.kanban-finance{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.kanban-finance span,.kanban-deadline span{display:grid;gap:2px;color:var(--muted);font-size:11.5px}.kanban-finance strong,.kanban-deadline strong{font-size:13.5px;color:var(--text)}.kanban-deadline{display:flex;align-items:center;justify-content:space-between;margin:10px 0}.kanban-deadline.overdue strong{color:var(--danger)}.kanban-card-actions{display:flex;align-items:center;gap:6px;margin-top:12px}.kanban-card-actions>.btn{flex:1;min-height:38px;font-size:12.5px}.collapse-stage svg{transition:transform .14s ease}.collapsed-stage .collapse-stage svg{transform:rotate(-90deg)}.collapsed-stage>.kanban-cards{display:none}
.finance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.finance-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(360px,.8fr);gap:16px;margin-bottom:16px;align-items:start}.finance-line,.finance-donut{align-self:start}.finance-actions{display:grid;grid-template-columns:1fr;gap:5px;justify-items:stretch;min-width:86px}.finance-actions .btn{min-height:32px;padding:5px 8px;font-size:11.5px}.finance-mobile-list{display:none}.mobile-finance-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.line-chart{display:block;width:100%;height:auto;min-height:220px;overflow:visible}.chart-grid line{stroke:var(--line);stroke-width:.75}.chart-grid text,.chart-x-label{fill:var(--muted);font-size:6px;font-family:var(--font)}.line-area{fill:url(#line-fill);stroke:none}.line-area+path,.line-path{stroke:var(--accent);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.line-path{stroke-dasharray:1;stroke-dashoffset:1;animation:drawline .55s ease forwards}.line-point{fill:var(--surface);stroke:var(--accent);stroke-width:1.5}.line-point-hit{fill:transparent;pointer-events:all}.chart-data-details{margin-top:10px;border-top:1px solid var(--line);padding-top:10px;width:100%}.chart-data-details summary{color:var(--muted);font-size:12px;cursor:pointer;min-height:32px;display:flex;align-items:center;width:max-content}.chart-data-scroll{overflow:visible;max-height:none;margin-top:10px;width:100%}.chart-data-scroll table,.chart-data-table{width:100%;min-width:0;table-layout:auto}.chart-data-scroll th,.chart-data-scroll td{padding:8px 10px;font-size:12px}.chart-block,.donut-wrap,.funnel-chart,.status-bars,.production-load{position:relative}.chart-tooltip{position:absolute;z-index:12;transform:translate(-50%,-100%);max-width:min(260px,calc(100% - 16px));padding:7px 9px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);box-shadow:var(--shadow-md);color:var(--text);font-size:12px;font-weight:700;line-height:1.3;white-space:nowrap;pointer-events:none}.chart-tooltip[hidden]{display:none}
.donut-wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:center}.donut{width:220px;height:220px;display:block;overflow:visible;transform:rotate(-90deg)}.donut-track,.donut-segment{fill:none;stroke-width:23}.donut-track{stroke:var(--surface-3)}.donut-segment{stroke-dasharray:var(--dash) calc(100 - var(--dash));stroke-dashoffset:var(--offset);stroke-linecap:butt;animation:donutdraw .45s ease both}.donut-segment-0{stroke:var(--accent)}.donut-segment-1{stroke:#4b87b8}.donut-segment-2{stroke:#c59542}.donut-segment-3{stroke:#8d6ab3}.donut-segment-4{stroke:#c66d62}.donut-segment-5{stroke:#5a9c8b}.donut-value,.donut-label{font-family:var(--font);fill:var(--text);transform:rotate(90deg);transform-origin:110px 110px}.donut-value{font-size:19px;font-weight:800}.donut-label{font-size:9px;fill:var(--muted)}.donut-legend{display:grid;gap:8px;min-width:0}.donut-legend>div{display:grid;grid-template-columns:10px minmax(90px,1fr) auto auto;gap:7px;align-items:center;min-width:0}.legend-swatch{width:8px;height:8px;border-radius:2px}.donut-bg-0{background:var(--accent)}.donut-bg-1{background:#4b87b8}.donut-bg-2{background:#c59542}.donut-bg-3{background:#8d6ab3}.donut-bg-4{background:#c66d62}.donut-bg-5{background:#5a9c8b}.legend-name{min-width:0;line-height:1.2;overflow-wrap:anywhere;font-size:12px}.donut-legend strong{font-size:11.5px;white-space:nowrap}.donut-legend small{font-size:10.5px;color:var(--muted)}
.funnel-summary,.load-head{display:flex;align-items:baseline;gap:8px;margin-bottom:13px}.funnel-summary strong,.load-head strong{font-size:24px}.funnel-summary span,.load-head span{font-size:12px;color:var(--muted)}.funnel-chart,.status-bars,.production-load{min-width:0}.funnel-row,.status-bar-row{display:grid;grid-template-columns:110px minmax(80px,1fr) 26px;gap:9px;align-items:center;margin:9px 0}.funnel-row>span,.status-bar-row>span{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.funnel-row>strong,.status-bar-row>strong{text-align:right;font-size:12px}.funnel-track,.status-bar-track{height:9px;background:var(--surface-3);border-radius:999px;overflow:hidden}.funnel-track i,.status-bar-track i{display:block;height:100%;width:var(--value);background:var(--accent);border-radius:inherit;transform-origin:left;animation:growbar .35s ease}.status-bar-track i{background:color-mix(in srgb,var(--accent) 75%,#4b87b8)}
.load-bars{height:180px;display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end}.load-day{height:100%;display:grid;grid-template-rows:1fr auto auto;gap:4px;text-align:center}.load-column{height:100%;display:flex;align-items:end;justify-content:center;background:var(--surface-3);border-radius:6px;overflow:hidden}.load-column i{display:block;width:100%;height:var(--value);background:linear-gradient(to top,var(--accent),color-mix(in srgb,var(--accent) 55%,#6aa8d1));transform-origin:bottom;animation:growheight .4s ease}.load-day strong{font-size:11px}.load-day span{font-size:10.5px;color:var(--muted)}.chart-empty{min-height:220px;display:grid;place-items:center;align-content:center;text-align:center;gap:7px;color:var(--muted)}.chart-empty>div{width:42px;height:42px;border-radius:12px;background:var(--surface-3);display:grid;place-items:center}.chart-empty strong{color:var(--text)}.chart-empty span{font-size:12.5px;max-width:300px}
.production-top{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;margin-bottom:16px}.production-stat{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:18px;display:grid;align-content:center}.production-stat span{color:var(--muted);font-size:12px}.production-stat strong{font-size:38px;line-height:1.05;margin:4px 0}.production-stat small{color:var(--muted)}
.calendar-panel{margin-top:16px}.calendar-nav{display:flex;gap:6px;flex-wrap:wrap}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:4px}.cal-weekdays span{text-align:center;padding:6px;color:var(--muted);font-size:11px;font-weight:750}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}.calendar-cell{min-height:105px;padding:7px;background:var(--surface);min-width:0}.calendar-cell>span{display:inline-grid;width:26px;height:26px;place-items:center;font-size:11.5px;color:var(--muted)}.today-cell>span{border-radius:50%;background:var(--accent);color:#fff;font-weight:800}.muted-cell{background:var(--surface-2)}.cal-event{width:100%;border:0;background:var(--accent-soft);color:var(--accent-strong);border-radius:5px;padding:5px 6px;margin-top:4px;text-align:left;font-size:10.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event:hover{filter:brightness(.97)}.mobile-agenda{display:none}
.install-list{display:grid;gap:10px}.install-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px;display:grid;grid-template-columns:66px minmax(0,1fr) auto;gap:14px;align-items:center}.install-card>time{height:68px;border-radius:10px;background:var(--surface-3);display:grid;place-items:center;align-content:center;line-height:1.05}.install-card>time strong{font-size:21px}.install-card>time span{font-size:10px;color:var(--muted);text-transform:uppercase}.install-card>time b{margin-top:4px;font-size:11px}.install-main{min-width:0}.install-main>div{display:flex;align-items:center;gap:8px}.install-main h3{margin:0;font-size:15px}.install-main p{margin:5px 0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.install-main small{color:var(--muted)}
.task-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.task-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px}.task-check{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--surface);display:grid;place-items:center;color:var(--accent)}.task-check svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}.task-title-line{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}.task-title-line h3{font-size:14.5px;margin:3px 0}.task-card p{margin:5px 0 10px;color:var(--muted);font-size:12.5px}.task-card footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.task-card footer>span:first-child{display:flex;align-items:center;gap:6px;font-size:12px}.task-card time{font-size:11.5px;color:var(--muted)}.task-done{opacity:.72}.task-done h3{text-decoration:line-through}
.analytics-highlight{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.analytics-highlight>div{padding:17px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:grid}.analytics-highlight span{font-size:12px;color:var(--muted)}.analytics-highlight strong{font-size:24px;margin:3px 0}.analytics-highlight small{color:var(--muted)}
.employee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.employee-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.employee-card h3{margin:0;font-size:14.5px}.employee-card p{margin:2px 0 0;color:var(--muted);font-size:12.5px}.employee-card dl{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0}.employee-card dl>div{padding:9px;background:var(--surface-2);border-radius:8px;min-width:0}.employee-card dt{font-size:10.5px;color:var(--muted)}.employee-card dd{margin:2px 0 0;font-size:12.5px;overflow:hidden;text-overflow:ellipsis}.employee-card footer{grid-column:1/-1;border-top:1px solid var(--line);padding-top:9px}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-list{display:grid;gap:0}.settings-list>label{padding:13px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}.settings-list>label:last-child{border-bottom:0}.settings-list>label>span{display:grid}.settings-list small{color:var(--muted)}.settings-list select{max-width:170px}.reset-card{display:grid;gap:14px}.reset-clock{padding:15px;border-radius:10px;background:var(--surface-2);display:grid}.reset-clock span{font-size:12px;color:var(--muted)}.reset-clock strong{font-size:28px;letter-spacing:.04em}.reset-card p{margin:0;color:var(--muted)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.info-grid>div{padding:12px;border-radius:9px;background:var(--surface-2);display:grid}.info-grid span{font-size:12px;color:var(--muted)}
.empty-state{min-height:140px;display:grid;place-items:center;align-content:center;text-align:center;padding:22px;color:var(--muted)}.empty-state h3{margin:8px 0 3px;color:var(--text);font-size:15px}.empty-state p{margin:0;max-width:330px;font-size:12.5px}.empty-icon{width:40px;height:40px;border-radius:11px;background:var(--surface-3);display:grid;place-items:center}
.modal-backdrop,.side-drawer-backdrop{position:fixed;z-index:100;inset:0;background:rgba(8,15,11,.42);display:grid;place-items:center;padding:18px;opacity:0;transition:opacity .14s ease}.modal-backdrop.open,.side-drawer-backdrop.open{opacity:1}.modal{width:min(620px,100%);max-height:min(88vh,900px);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;transform:translateY(10px) scale(.99);transition:transform .14s ease}.modal-backdrop.open .modal{transform:none}.modal-wide{width:min(900px,100%)}.modal>header,.side-drawer>header{padding:15px 17px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.modal>header h2,.side-drawer>header h2{margin:3px 0 0;font-size:20px}.modal-body{padding:18px;overflow:auto}.modal>footer{padding:13px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.entity-form{display:grid}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.form-field-full{grid-column:1/-1}.modal-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;margin-top:7px}.confirm-copy{margin:0 0 10px}.confirm-details{padding:12px;border-radius:9px;background:var(--surface-2)}.dependency-list{margin:0;padding-left:20px;display:grid;gap:4px}.payment-context{padding:12px;border-radius:9px;background:var(--surface-2);display:grid;margin-bottom:14px}.payment-context span{font-size:12px;color:var(--muted)}
.side-drawer-backdrop{place-items:stretch end;padding:0}.side-drawer{width:min(480px,100%);height:100%;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform .16s ease;display:flex;flex-direction:column}.side-drawer-backdrop.open .side-drawer{transform:none}.side-drawer-body{padding:18px;overflow:auto}.drawer-status-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.drawer-client{font-size:19px;margin:0 0 14px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.detail-list>div{padding:10px;border-radius:8px;background:var(--surface-2);min-width:0}.detail-list dt{font-size:11px;color:var(--muted)}.detail-list dd{margin:3px 0 0;font-size:13.5px;overflow-wrap:anywhere}.drawer-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.drawer-section h3{font-size:14px;margin:0 0 9px}.drawer-link{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:9px 0;display:grid;text-align:left}.drawer-link:last-child{border-bottom:0}.drawer-link span{font-size:12px;color:var(--muted)}.comment-list{display:grid;gap:7px}.comment-list p{margin:0;padding:9px;border-radius:8px;background:var(--surface-2)}.inline-comment-form{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:9px}.inline-comment-form input{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:8px 10px}.activity-mini,.payment-mini{padding:8px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.activity-mini:last-child,.payment-mini:last-child{border-bottom:0}.activity-mini strong{font-size:12.5px}.activity-mini time,.payment-mini time{font-size:11px;color:var(--muted)}.payment-mini>span{display:flex;align-items:center;gap:7px}.drawer-actions{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}.payment-history-summary{display:grid;grid-template-columns:1fr auto;gap:7px;padding:13px;border-radius:9px;background:var(--surface-2);margin-bottom:14px}.payment-history-summary span{color:var(--muted);font-size:12px}.payment-history-list{display:grid;gap:8px;margin-bottom:14px}.payment-history-list article{padding:12px;border:1px solid var(--line);border-radius:9px}.payment-history-list article>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.payment-history-list article>strong{display:block;margin-top:7px;font-size:18px}.payment-history-list p{margin:5px 0 10px;color:var(--muted);font-size:12.5px}
.quick-create-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick-create-grid button{min-height:96px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);display:grid;place-items:center;align-content:center;gap:8px;font-weight:750}.quick-create-grid button:hover{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent-strong)}.quick-create-grid svg{width:24px;height:24px}
.toast-root{position:fixed;z-index:140;right:18px;bottom:18px;display:grid;gap:8px;pointer-events:none}.toast{width:min(380px,calc(100vw - 28px));padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-lg);display:grid;grid-template-columns:25px 1fr 34px;gap:8px;align-items:center;opacity:0;transform:translateY(8px);transition:opacity .14s ease,transform .14s ease;pointer-events:auto}.toast.show{opacity:1;transform:none}.toast-mark{width:23px;height:23px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);display:grid;place-items:center;font-weight:900}.toast-error .toast-mark{background:var(--danger-soft);color:var(--danger)}.toast button{width:34px;height:34px;border:0;background:transparent;border-radius:7px;display:grid;place-items:center;color:var(--muted)}.toast button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.page-skeleton{display:grid;gap:14px}.skeleton{border-radius:10px;background:linear-gradient(100deg,var(--surface-3) 20%,color-mix(in srgb,var(--surface-3) 55%,var(--surface)) 40%,var(--surface-3) 60%);background-size:220% 100%;animation:skeleton 1.25s linear infinite}.sk-title{width:280px;height:62px}.skeleton-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.sk-card{height:140px}.sk-panel{height:330px}.error-state{min-height:55vh;display:grid;place-items:center;align-content:center;text-align:center;gap:8px}.error-state>div{width:52px;height:52px;border-radius:14px;background:var(--danger-soft);color:var(--danger);display:grid;place-items:center;font-size:26px;font-weight:900}.error-state h1{margin:7px 0 0}.error-state p{margin:0 0 8px;color:var(--muted)}
.mobile-bottom-nav{display:none}.drawer-backdrop{display:none}
.page-enter{animation:pageenter .2s ease}
[data-density="compact"] th,[data-density="compact"] td{padding-top:8px;padding-bottom:8px}[data-density="compact"] .kanban-card,[data-density="compact"] .mobile-record{padding:10px}
@media (hover:hover){.kpi-card:hover,.kanban-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-1px)}.btn:hover{transform:translateY(-1px)}}
@media (max-width:1260px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid>.span-2,.analytics-grid>.span-2{grid-column:span 2}.employee-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr)}}
@media (max-width:1100px) and (min-width:769px){:root{--sidebar:82px}.sidebar{width:82px}.sidebar-header{padding-inline:12px}.brand-button{justify-content:center}.brand-button span,.main-nav button span,.user-copy{display:none}.sidebar #sidebar-collapse{display:none}.main-nav button{justify-content:center;padding-inline:0}.main-nav button:after{content:attr(data-label);position:absolute;left:calc(100% + 9px);top:50%;transform:translateY(-50%) translateX(-4px);pointer-events:none;opacity:0;white-space:nowrap;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-size:12px;transition:opacity .12s ease,transform .12s ease}.main-nav button:hover:after,.main-nav button:focus-visible:after{opacity:1;transform:translateY(-50%) translateX(0)}.main-column{margin-left:82px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-grid{grid-template-columns:1fr}.donut-wrap{grid-template-columns:220px 1fr}.production-top{grid-template-columns:1fr 190px}}
@media (max-width:768px){
  :root{--topbar:62px;--control:44px}
  body{font-size:16px;padding-bottom:74px}
  .login-shell{grid-template-columns:1fr}.login-brand-panel{display:none}.login-card-wrap{min-height:100vh;padding:18px}.login-card{padding:25px 20px}.mobile-login-logo{display:block;margin-bottom:20px}.mobile-login-logo img{width:116px}
  .sidebar,.sidebar.collapsed{z-index:80;width:min(86vw,320px);transform:translateX(-102%);box-shadow:var(--shadow-lg)}.sidebar.mobile-open{transform:none}.sidebar .brand-button span,.sidebar.collapsed .brand-button span,.sidebar .main-nav button span,.sidebar.collapsed .main-nav button span,.sidebar .user-copy,.sidebar.collapsed .user-copy{display:grid}.sidebar .main-nav button,.sidebar.collapsed .main-nav button{justify-content:flex-start;padding:9px 10px}.sidebar .sidebar-header,.sidebar.collapsed .sidebar-header{padding:10px 16px;display:flex}.sidebar #sidebar-collapse{display:none!important}.main-column,.sidebar.collapsed+.drawer-backdrop+.main-column{margin-left:0}.drawer-backdrop{position:fixed;z-index:70;inset:0;border:0;background:rgba(7,14,10,.42);opacity:0;display:block;transition:opacity .14s ease}.drawer-backdrop.show{opacity:1}
  .topbar{padding:9px 10px;gap:7px}.mobile-menu{display:grid}.global-search-wrap{min-width:0}.global-search-wrap input{height:44px;padding-right:10px}.global-search-wrap input::placeholder{color:var(--muted)}.global-search-wrap kbd{display:none}.topbar-actions{gap:2px}.topbar-actions .btn-primary{width:44px;padding:0}.topbar-actions .btn-primary span{display:none}.indicator-btn,.profile-btn{width:44px;height:44px;padding:3px;justify-content:center}.profile-btn .desktop-profile,.profile-btn>svg{display:none}.popover{top:58px;right:8px;width:min(380px,calc(100vw - 16px))}
  .main-content{padding:18px 12px 34px}.page-heading{align-items:flex-start;display:grid;gap:13px;margin-bottom:17px}.page-heading h1{font-size:25px}.page-heading p{font-size:14px}.page-actions{justify-content:flex-start;width:100%}.page-actions .btn{min-height:44px}
  .kpi-grid,.finance-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi-card{padding:14px}.kpi-card>strong{font-size:21px}.kpi-card>span{font-size:13px}.kpi-card small{font-size:12.5px}.kpi-wide{grid-column:span 2}
  .dashboard-grid,.analytics-grid,.settings-grid{grid-template-columns:1fr}.dashboard-grid>.span-2,.analytics-grid>.span-2,.settings-grid>.span-2{grid-column:span 1}.panel-head{padding:14px}.panel-body{padding:14px}.panel-head h2{font-size:16px}.panel-head p{font-size:13px}
  .toolbar{display:grid;grid-template-columns:1fr auto;gap:8px}.toolbar-main{min-width:0}.search-field{max-width:none}.search-field input{height:44px;font-size:13px}.mobile-filter-open{display:inline-flex;min-width:44px}.toolbar-filters{display:none}.view-toggle{grid-column:1/-1;justify-self:start}.view-toggle button{min-height:40px}.mobile-filter-fields{display:grid!important;gap:10px}.mobile-filter-fields label{display:grid}.mobile-filter-fields select{min-height:44px;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:8px 10px}
  .table-wrap{display:none}.mobile-card-list,.finance-mobile-list{display:grid;gap:10px;padding:10px}.mobile-record{padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);display:grid;gap:10px}.mobile-record>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:9px}.mobile-record h3{margin:0;font-size:16px}.mobile-record>p{margin:0;color:var(--muted);font-size:14px}.mobile-record dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.mobile-record dl>div{padding:9px;border-radius:8px;background:var(--surface-2)}.mobile-record dt{font-size:12.5px;color:var(--muted)}.mobile-record dd{margin:3px 0 0;font-size:15px;overflow-wrap:anywhere}.mobile-record .row-actions{justify-content:flex-start;border-top:1px solid var(--line);padding-top:8px}.mobile-record .action-btn,.project-kanban-card .action-btn{width:44px;height:44px}.pagination{padding-inline:10px}.pagination .btn{min-height:44px}
  .kanban-board,.lead-kanban{grid-template-columns:1fr}.kanban-column{width:100%}.kanban-card{padding:14px}.kanban-card .tap-target{min-height:44px}.kanban-card .stage-control select{min-height:44px;height:44px;font-size:15px}.kanban-empty{min-height:82px;font-size:14px}
  .kanban-control-bar{position:relative;top:auto;grid-template-columns:1fr;margin-bottom:10px}.kanban-jump{display:none}.kanban-summary{justify-self:start;width:100%;justify-content:space-between;min-height:34px}.project-stage>header{position:sticky;top:var(--topbar)}.project-card-grid{grid-template-columns:1fr}.project-kanban-card h3{font-size:16px}.kanban-finance strong,.kanban-deadline strong{font-size:15px}.kanban-finance span,.kanban-deadline span,.stage-control span{font-size:12.5px}.kanban-card-actions{display:grid;grid-template-columns:1fr auto}.kanban-card-actions>.btn{min-height:44px;font-size:14px}
  .finance-grid{grid-template-columns:1fr}.finance-donut .panel-body{padding:12px}.donut-wrap{grid-template-columns:1fr;justify-items:center}.donut{width:190px;height:190px}.donut-legend{width:100%}.donut-legend>div{grid-template-columns:10px minmax(0,1fr) auto auto}.legend-name{font-size:13px}.donut-legend strong{font-size:12.5px}.line-chart{min-height:220px}.chart-x-label{font-size:9px}.chart-data-details summary{font-size:13px}.finance-mobile-card{padding:14px}.mobile-finance-actions .btn{min-height:44px}
  .production-top{grid-template-columns:1fr}.production-stat{grid-template-columns:1fr auto;align-items:center}.production-stat strong{grid-row:1/3;grid-column:2;font-size:32px}.production-stat small{grid-column:1/-1}.calendar-grid-desktop{display:none}.mobile-agenda{display:grid;gap:8px}.agenda-item{min-height:64px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);padding:10px 12px;display:grid;text-align:left}.agenda-item time{font-size:12.5px;color:var(--muted)}.agenda-item strong{font-size:15px}.agenda-item span{font-size:13.5px;color:var(--muted)}.calendar-nav .btn{min-height:44px}
  .install-card{grid-template-columns:58px minmax(0,1fr);gap:10px;padding:12px}.install-card>time{height:62px}.install-card>.row-actions{grid-column:1/-1;justify-content:flex-start;border-top:1px solid var(--line);padding-top:8px}.install-main p{white-space:normal;font-size:14px}.install-main small{font-size:13px}
  .task-board{grid-template-columns:1fr}.task-card{grid-template-columns:44px minmax(0,1fr);padding:13px}.task-check{width:44px;height:44px}.task-card>.row-actions{grid-column:2;justify-content:flex-start}.task-card p{font-size:14px}.task-card footer>span:first-child,.task-card time{font-size:13px}
  .analytics-highlight{grid-template-columns:1fr}.employee-grid{grid-template-columns:1fr}.employee-card dl{grid-template-columns:1fr}.employee-card dd{font-size:14px}.settings-list>label{align-items:flex-start;display:grid}.settings-list select{max-width:none}.info-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}.form-field-full{grid-column:auto}.modal-backdrop{padding:10px}.modal{max-height:92vh}.modal-body{padding:14px}.modal-form-actions{position:sticky;bottom:-14px;background:var(--surface);padding:10px 0 0}.modal-form-actions .btn{min-height:44px}.detail-list{grid-template-columns:1fr}.side-drawer{width:100%}.side-drawer-body{padding:15px}.inline-comment-form{grid-template-columns:1fr}.inline-comment-form .btn{min-height:44px}.quick-create-grid{grid-template-columns:repeat(2,1fr)}
  .toast-root{right:8px;left:8px;bottom:78px}.toast{width:100%;padding:9px 10px;font-size:14px}
  .mobile-bottom-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;height:66px;padding:5px max(6px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--surface);display:grid;grid-template-columns:repeat(5,1fr)}.mobile-bottom-nav button{min-width:0;border:0;background:transparent;border-radius:8px;color:var(--muted);display:grid;place-items:center;align-content:center;gap:2px;font-size:11px;font-weight:700}.mobile-bottom-nav button.active{color:var(--accent-strong);background:var(--accent-soft)}.mobile-bottom-nav svg{width:20px;height:20px}
  .skeleton-grid{grid-template-columns:repeat(2,1fr)}.sk-card{height:120px}
}
@media (max-width:430px){.topbar{gap:4px}.global-search-wrap input{padding-left:38px;font-size:15px}.global-search-wrap{max-width:none}.topbar-actions{flex:0 0 auto}.page-actions{display:grid;grid-template-columns:1fr 1fr}.page-actions>.btn:only-child{grid-column:1/-1}.kpi-grid,.finance-kpis{grid-template-columns:1fr 1fr}.kpi-card{min-height:142px}.kpi-card>strong{font-size:20px}.kpi-wide{grid-column:1/-1}.funnel-row,.status-bar-row{grid-template-columns:92px minmax(70px,1fr) 24px}.load-bars{gap:4px;height:160px}.load-day strong{font-size:10px}.donut{width:180px;height:180px}.mobile-record dl{grid-template-columns:1fr 1fr}.calendar-nav{display:grid;grid-template-columns:1fr 1fr 1fr;width:100%}.calendar-nav .btn{padding-inline:8px}.panel-head:has(.calendar-nav){display:grid}.panel-head:has(.calendar-nav) .calendar-nav{margin-top:4px}}
@media (max-width:370px){.main-content{padding-inline:10px}.kpi-grid,.finance-kpis{grid-template-columns:1fr}.kpi-wide{grid-column:auto}.kpi-card{min-height:auto}.topbar{padding-inline:7px}.global-search-wrap input{padding-left:35px}.profile-btn,.indicator-btn,.topbar-actions .btn-primary,.mobile-menu{width:44px;height:44px}.mobile-record dl{grid-template-columns:1fr}.page-actions{grid-template-columns:1fr}.page-actions>.btn{grid-column:auto}.quick-create-grid{grid-template-columns:1fr 1fr}.kanban-finance{grid-template-columns:1fr}.mobile-finance-actions{grid-template-columns:1fr}.toast-root{bottom:76px}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pageenter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes skeleton{to{background-position:-220% 0}}
@keyframes drawline{to{stroke-dashoffset:0}}
@keyframes growbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes growheight{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes donutdraw{from{stroke-dasharray:0 100}to{stroke-dasharray:var(--dash) calc(100 - var(--dash))}}

@media (max-width:768px){
  .btn,.icon-btn,.text-action,.entity-link,.view-toggle button,.sort-button{min-height:44px}
  .btn-compact{min-height:44px;font-size:14px}
  .kpi-card>span{font-size:15px}.kpi-card small{font-size:14px;line-height:1.35}
  .panel-head p,.compact-item span,.compact-item time,.activity-item p,.activity-item time{font-size:14px}
  .priority-label,.stage-control span,.kanban-finance span,.kanban-deadline span{font-size:13.5px}
  .kanban-card p,.kanban-card>span,.drawer-link span,.payment-history-list p{font-size:14px}
  .detail-list dt,.payment-history-summary span{font-size:13.5px}.detail-list dd{font-size:15px}
  .mobile-bottom-nav button{min-height:56px}
}
@media (max-width:768px){
  body{font-size:12px;line-height:1.45}
  .sidebar .main-nav button,.sidebar.collapsed .main-nav button{font-size:14px;min-height:44px}
  .brand-button strong{font-size:14px}.brand-button small{font-size:9.5px}
  .theme-toggle-copy strong{font-size:14px}.theme-toggle-copy small{font-size:13px}
  .page-heading h1{font-size:24px;line-height:1.12}.page-heading p{font-size:14.5px;line-height:1.4}
  .panel-head h2{font-size:16px;line-height:1.25}.panel-head p{font-size:13.5px;line-height:1.4}
  .kpi-card>span{font-size:14px}.kpi-card>strong{font-size:22px;line-height:1.1}.kpi-card small{font-size:13px}
  .mobile-record h3,.project-kanban-card h3,.task-title-line h3,.employee-card h3{font-size:15.5px;line-height:1.3}
  .mobile-record>p,.kanban-card p,.task-card p,.employee-card p,.install-main p{font-size:13px;line-height:1.4}
  .mobile-record dt,.detail-list dt,.payment-history-summary span,.priority-label,.stage-control span,.kanban-finance span,.kanban-deadline span{font-size:13px}
  .mobile-record dd,.detail-list dd,.kanban-finance strong,.kanban-deadline strong,.agenda-item strong{font-size:13px}
  .compact-item strong,.activity-item strong{font-size:14px}.compact-item span,.compact-item time,.activity-item p,.activity-item time{font-size:13px}
  .btn,.text-action,.view-toggle button,.sort-button,.toolbar select,.stage-control select{font-size:11px}
  .mobile-bottom-nav button{font-size:12px;line-height:1.15}
  .chart-data-details summary,.legend-name,.donut-legend strong{font-size:13px}
  .activity-list{padding:4px 14px 8px}
}
@media (max-width:430px){
  .page-heading h1{font-size:23px}.page-heading p{font-size:14px}
  .kpi-card>strong{font-size:21px}.kpi-card>span{font-size:13.5px}.kpi-card small{font-size:12.5px}
  .mobile-record h3,.project-kanban-card h3{font-size:15px}
  .mobile-bottom-nav button{font-size:11.5px}
}
@media (max-width:370px){
  body{font-size:15px}.page-heading h1{font-size:22px}.kpi-card>strong{font-size:20px}
  .mobile-bottom-nav button{font-size:11px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.page-enter{animation:none}.line-path,.sparkline polyline{stroke-dashoffset:0}.progress i,.funnel-track i,.status-bar-track i,.load-column i{transform:none}}
.main-content,.page-view{min-width:0;max-width:100%;overflow-x:clip}
@media (hover:none){.btn:active,.icon-btn:active,.main-nav button:active,.mobile-bottom-nav button:active,.kanban-card:active{transform:scale(.985);filter:brightness(.97)}}

@media (max-width:768px){
  .line-chart{min-height:190px}
  .line-chart .chart-grid text,.line-chart .chart-x-label{font-size:8px}
  .chart-data-scroll{overflow-x:auto}
  .chart-data-scroll table,.chart-data-table{width:100%;min-width:0}
  .chart-data-scroll th,.chart-data-scroll td{font-size:13px;padding:9px 10px}
  .chart-data-details summary{font-size:13px;min-height:44px}
  button,.btn,.icon-btn,.text-action,.entity-link,.view-toggle button,.sort-button,.task-check,.notification-item,.quick-create-grid button,.agenda-item,.cal-event,.theme-toggle,.collapse-stage{min-height:44px}
  .action-btn,.task-check,.icon-btn{min-width:44px}
  .mobile-bottom-nav button{font-size:11.5px}
  .page-heading h1{font-size:22px}
  .page-heading p{font-size:14px}
  .panel-head h2{font-size:16px}
  .panel-head p,.compact-item span,.compact-item time,.activity-item p,.activity-item time{font-size:13px}
  .kpi-card>span{font-size:13.5px}.kpi-card>strong{font-size:21px}.kpi-card small{font-size:12.5px}
  .mobile-record h3,.project-kanban-card h3,.task-title-line h3,.employee-card h3{font-size:15px}
  .mobile-record>p,.kanban-card p,.task-card p,.employee-card p,.install-main p{font-size:14px}
}
@media (max-width:370px){.page-heading h1{font-size:21px}.mobile-bottom-nav button{font-size:11px}.line-chart .chart-grid text,.line-chart .chart-x-label{font-size:7.6px}}

@media (max-width:768px){.load-day strong{font-size:12.5px}.load-day span{font-size:12px}.production-stat strong{font-size:28px}}

@media (max-width:768px){
  .cal-event{font-size:12.5px}
  .install-card>time span{font-size:12px}
  .donut-legend small{font-size:12px}
  .avatar-sm{font-size:11.5px}
  .employee-card dt{font-size:13px}
}
