:root{--bg: #f4f6f8;--surface: #ffffff;--surface-soft: #f8fafc;--line: #d9e0ea;--line-strong: #aeb9c8;--text: #172033;--muted: #667085;--accent: #1769e0;--accent-dark: #0f55bd;--danger: #b42318;--danger-soft: #fff0ed;--success: #14783f;--success-soft: #e7f6ee;--warning: #946200;--warning-soft: #fff6dc;--focus: rgba(23, 105, 224, .24);--shadow: 0 1px 2px rgba(15, 23, 42, .08), 0 12px 30px rgba(15, 23, 42, .08);--radius: 8px;--font-base: clamp(.9375rem, .9rem + .2vw, 1rem);--font-size-xs: calc(var(--font-base) * .8);--font-size-sm: calc(var(--font-base) * .875);--font-size-md: var(--font-base);--font-size-lg: calc(var(--font-base) * 1.2);--font-size-xl: calc(var(--font-base) * 1.333);--font-size-2xl: calc(var(--font-base) * 1.867);--font-size-3xl: calc(var(--font-base) * 2)}*{box-sizing:border-box}html{min-width:320px;background:var(--bg);touch-action:manipulation}body{margin:0;color:var(--text);background:var(--bg);font-family:Arial,Helvetica,sans-serif;font-size:var(--font-size-md);line-height:1.45;letter-spacing:0;touch-action:manipulation}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;touch-action:manipulation}a,.button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:grid;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav{display:flex;gap:5px;width:min(1280px,100%);margin-inline:auto;overflow-x:auto;padding:1px 4px 3px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a,.nav button{display:inline-flex;min-height:34px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);padding:6px 10px;background:var(--surface);color:var(--text);font-size:var(--font-size-sm);font-weight:700;white-space:nowrap}.nav a:hover,.nav a.router-link-active,.nav button:hover{border-color:var(--line-strong);background:var(--surface-soft);text-decoration:none}.nav button:last-child{margin-left:auto}.actions,.form-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions>button,.actions>.button{flex:1 1 0;min-width:min(145px,100%)}.main-container{width:min(1280px,100%);margin:0 auto;padding:16px 12px 28px}.public-main{min-height:100vh}.page-head{display:grid;gap:12px;margin-bottom:14px}.page-head>div{min-width:0}.page-head.compact{margin-bottom:8px}.page-head h1,.page-head h2{margin:0;font-size:var(--font-size-2xl);line-height:1.12;overflow-wrap:anywhere}.page-head p{margin:5px 0 0;color:var(--muted);overflow-wrap:anywhere}.dashboard-page-head h1{font-size:var(--font-size-xl);line-height:1.2}.dashboard-week-actions{--dashboard-week-action-font-size: calc(var(--font-base) * .7);gap:6px}.dashboard-week-actions>button,.dashboard-week-actions>.button{min-width:0;min-height:34px;flex:0 0 auto;padding:7px 9px;font-size:var(--dashboard-week-action-font-size);line-height:1.15;white-space:nowrap}button,.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;background:var(--surface);color:var(--text);font-weight:700;cursor:pointer;text-align:center}button:hover,.button:hover{border-color:var(--line-strong);background:var(--surface-soft);text-decoration:none}button:disabled{cursor:not-allowed;opacity:.64}button.primary,.button.primary{border-color:var(--accent);background:var(--accent);color:#fff}button.primary:hover,.button.primary:hover{border-color:var(--accent-dark);background:var(--accent-dark)}.small-button{min-height:34px;padding:6px 10px;font-size:var(--font-size-sm)}.toolbar,.table-wrap,.admin-panel,.stat-card,.day-column,.item-card,.login-panel,.scenario-script-panel,.scenario-meta-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.toolbar{display:grid;gap:10px;margin-bottom:14px;padding:14px}.filter-toolbar{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}.filter-toolbar button{align-self:end}label{display:grid;gap:6px;color:var(--muted);font-size:var(--font-size-sm);font-weight:800}input,select,textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:#fff;color:var(--text)}textarea{min-height:112px;resize:vertical}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.dashboard-controls{--dashboard-compact-font-size: calc(var(--font-base) * .7);display:grid;gap:10px;margin-bottom:16px}.dashboard-controls .toolbar,.dashboard-controls .stats-grid{margin-bottom:0}.dashboard-filter-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:7px}.dashboard-filter-toolbar label,.dashboard-filter-toolbar button,.dashboard-stats-grid .stat-card{font-size:calc(var(--dashboard-compact-font-size) * .9)}.dashboard-filter-toolbar label,.dashboard-filter-toolbar button{min-width:0}.dashboard-filter-toolbar input,.dashboard-filter-toolbar select{min-width:0;min-inline-size:0;max-width:100%;max-inline-size:100%;min-height:30px;padding:5px 6px}.dashboard-filter-toolbar input[type=date]{-moz-appearance:none;appearance:none;-webkit-appearance:none}.dashboard-filter-toolbar input[type=date]::-webkit-date-and-time-value{min-inline-size:0;text-align:left}.dashboard-filter-toolbar input[type=date]::-webkit-calendar-picker-indicator{margin-inline-start:auto;padding-inline-start:2px}.dashboard-filter-toolbar button{min-height:30px;padding:5px 6px}.dashboard-controls .dashboard-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:0}.dashboard-controls .dashboard-stats-grid .summary-filter-card:first-child{grid-column:1 / -1}.dashboard-stats-grid .stat-card{--dashboard-stat-label-font-size: calc(var(--font-base) * .62);--dashboard-stat-value-font-size: calc(var(--font-base) * .78);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;min-width:0;min-height:38px;overflow:hidden;padding:7px 8px;font-size:var(--dashboard-stat-label-font-size)}.summary-filter-card{cursor:pointer;text-align:left}.summary-filter-card:hover{border-color:var(--accent);background:var(--surface-soft)}.summary-filter-card.active{border-color:var(--accent);background:#e8f1ff}.dashboard-stats-grid .stat-card span{display:block;min-width:0;max-width:100%;overflow:hidden;font-size:var(--dashboard-stat-label-font-size);line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.dashboard-stats-grid .stat-card strong{margin-top:0;min-width:0;font-size:var(--dashboard-stat-value-font-size);line-height:1;white-space:nowrap}.admin-panel{display:grid;gap:12px;margin-bottom:16px;padding:14px}.admin-panel h2{margin:0;font-size:var(--font-size-xl);line-height:1.2}.admin-panel p{margin:5px 0 0;color:var(--muted)}.import-controls{display:grid;gap:8px}.stat-card{min-height:96px;padding:14px}.stat-card span{color:var(--muted)}.stat-card strong{display:block;margin-top:8px;font-size:var(--font-size-3xl);line-height:1}.people-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:10px}.people-stat-card{--people-stat-label-font-size: calc(var(--font-base) * .62);--people-stat-value-font-size: calc(var(--font-base) * .78);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;align-items:center;min-height:34px;min-width:0;overflow:hidden;padding:6px 7px;font-size:var(--people-stat-label-font-size)}.people-filter-card{cursor:pointer;text-align:left}.people-filter-card:hover{border-color:var(--accent);background:var(--surface-soft)}.people-filter-card.active{border-color:var(--accent);background:#e8f1ff}.people-stat-card span,.people-stat-card strong{min-width:0;overflow:hidden;line-height:1;white-space:nowrap}.people-stat-card span{font-size:var(--people-stat-label-font-size);text-overflow:ellipsis}.people-stat-card strong{margin-top:0;font-size:var(--people-stat-value-font-size)}.table-wrap{overflow:hidden}table,thead,tbody,tr,th,td{display:block}thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}tbody{display:grid;gap:10px;padding:10px}tr{display:grid;gap:9px;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--surface)}td{display:grid;grid-template-columns:minmax(94px,36%) minmax(0,1fr);gap:10px;align-items:start;min-width:0}td:before{content:attr(data-label);color:var(--muted);font-size:var(--font-size-xs);font-weight:800;text-transform:uppercase}td[colspan]{grid-template-columns:1fr}td[colspan]:before{content:none}.people-table tbody{gap:7px;padding:7px}.people-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name status" "role id";gap:4px 8px;align-items:center;padding:8px 9px}.people-table .people-row td{display:block;min-width:0;padding:0}.people-table .people-row td:before{content:none}.people-name-cell{grid-area:name}.people-status-cell{grid-area:status;justify-self:end;max-width:100%}.people-role-cell{grid-area:role}.people-id-cell{grid-area:id;justify-self:end}.people-name,.people-role,.people-id{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.people-name{font-size:var(--font-size-sm);font-weight:800;line-height:1.2}.people-role,.people-id{color:var(--muted);font-size:calc(var(--font-base) * .68);line-height:1.2}.people-status-cell .badge{min-height:22px;padding:2px 7px;white-space:nowrap}.people-empty-row{padding:10px}.people-empty-cell{display:block}.badge{display:inline-flex;min-height:26px;max-width:100%;align-items:center;justify-content:center;border-radius:999px;padding:3px 9px;background:#eef2f7;color:#344054;font-size:var(--font-size-xs);font-weight:800;line-height:1.2;text-align:center;white-space:normal}.badge.success{background:var(--success-soft);color:var(--success)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.muted{color:var(--muted)}.error-box{margin:0 0 14px;border:1px solid #f3b5ad;border-radius:var(--radius);padding:11px 12px;background:var(--danger-soft);color:var(--danger);font-weight:700}.success-box{margin:0;border:1px solid #abdfc6;border-radius:var(--radius);padding:11px 12px;background:var(--success-soft);color:var(--success);font-weight:700}.week-board,.dashboard-list-board{display:grid;gap:12px}.dashboard-empty{margin:14px 0 0}.day-column{min-height:0;overflow:hidden}.day-head{padding:0;border-bottom:1px solid var(--line);background:var(--surface-soft);font-weight:800}.day-head-button{display:flex;width:100%;min-height:0;align-items:center;justify-content:space-between;gap:10px;border:0;border-radius:0;padding:12px;background:transparent;color:inherit;font:inherit;text-align:left}.day-head-button:hover{border-color:transparent;background:#eef4ff}.day-head-button>span:first-child{display:flex;min-width:0;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-head-button>span:first-child:before{content:"▾";flex:0 0 auto;color:var(--muted)}.day-column.collapsed .day-head-button>span:first-child:before{content:"▸"}.day-column.collapsed .day-items{display:none}.day-items{display:grid;gap:9px;padding:10px}.item-card{display:grid;gap:7px;padding:11px;color:var(--text)}.item-card:hover{border-color:var(--line-strong);background:#fcfdff;text-decoration:none}.dashboard-week-board .ready-card{border-color:#f5c46b;background:var(--warning-soft)}.dashboard-week-board .ready-card:hover{border-color:var(--warning);background:#ffefd0}.dashboard-week-board .published-card{border-color:#75c997;background:#c8efda}.dashboard-week-board .published-card:hover{border-color:var(--success);background:#b8e8cf}.dashboard-week-board .item-card{--dashboard-card-font-size: calc(var(--font-base) * .7);--dashboard-card-status-font-size: calc(var(--dashboard-card-font-size) * .9);--dashboard-card-preview-font-size: calc(var(--dashboard-card-font-size) * .9);--dashboard-card-title-lines: 2;--dashboard-card-preview-lines: 2;--dashboard-card-title-line-height: 1.25;--dashboard-card-preview-line-height: 1.25;--dashboard-card-title-max-block-size: 2.5em;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:136px;min-width:0;overflow:hidden;font-size:var(--dashboard-card-font-size)}.dashboard-week-board .item-card strong{display:-webkit-box;grid-row:1;max-width:100%;max-block-size:var(--dashboard-card-title-max-block-size);min-width:0;overflow:hidden;line-height:var(--dashboard-card-title-line-height);text-overflow:ellipsis;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:var(--dashboard-card-title-lines)}.dashboard-week-board .dashboard-card-people{display:block;grid-row:3;align-self:end;max-width:100%;min-width:0;overflow:hidden;color:var(--muted);font-size:var(--dashboard-card-status-font-size);line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.dashboard-week-board .dashboard-card-script{display:-webkit-box;grid-row:2;max-width:100%;max-block-size:calc(var(--dashboard-card-preview-lines) * var(--dashboard-card-preview-line-height) * 1em);min-width:0;overflow:hidden;color:var(--muted);font-size:var(--dashboard-card-preview-font-size);line-height:var(--dashboard-card-preview-line-height);text-overflow:ellipsis;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:var(--dashboard-card-preview-lines)}.dashboard-week-board .item-card .muted{display:block;grid-row:4;max-width:100%;min-width:0;overflow:hidden;font-size:var(--dashboard-card-status-font-size);line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.login-shell{display:grid;min-height:100vh;place-items:center;padding:18px 12px}.login-panel{display:grid;width:min(420px,100%);gap:12px;padding:18px}.form-actions{justify-content:flex-end}.scenario-page{display:grid;gap:14px}.scenario-script-panel,.scenario-meta-panel{padding:14px}.scenario-script-label{height:100%}.scenario-script-textarea{min-height:56vh;font-size:var(--font-size-md);line-height:1.55}.scenario-meta-panel{display:grid;gap:12px;align-content:start;min-width:0}.scenario-meta-panel label,.scenario-meta-panel input,.scenario-meta-panel select,.scenario-meta-panel textarea{min-width:0;max-width:100%}.scenario-meta-panel input[type=date]{display:block;width:100%;min-inline-size:0;max-inline-size:100%;overflow:hidden;-moz-appearance:none;appearance:none;-webkit-appearance:none}.scenario-meta-panel input[type=date]::-webkit-date-and-time-value{min-inline-size:0;text-align:left}.scenario-meta-panel input[type=date]::-webkit-calendar-picker-indicator{margin-inline-start:auto}@media(min-width:560px){.main-container{padding:22px 18px 34px}.toolbar{grid-template-columns:minmax(220px,1fr) 180px auto;align-items:end}.filter-toolbar{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}.dashboard-filter-toolbar,.dashboard-controls .dashboard-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.people-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-panel{grid-template-columns:minmax(0,1fr) minmax(260px,420px);align-items:center}.admin-panel .success-box,.admin-panel .error-box{grid-column:1 / -1}}@media(min-width:760px){.topbar{grid-template-columns:minmax(0,1fr);align-items:center;padding:10px 22px}.nav{justify-content:start;margin-inline:auto;overflow:visible;padding:0}.page-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px;margin-bottom:18px}.actions>button,.actions>.button{flex:0 0 auto}}@media(min-width:980px){.dashboard-page-head{align-items:center;grid-template-columns:minmax(0,1fr) max-content}.dashboard-week-actions{flex-wrap:nowrap;justify-content:flex-end}.dashboard-week-actions>button,.dashboard-week-actions>.button{min-width:0;white-space:nowrap}.dashboard-controls{grid-template-columns:minmax(0,1fr) minmax(460px,.9fr);align-items:stretch}.dashboard-controls .dashboard-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);height:100%}.dashboard-controls .dashboard-stats-grid .summary-filter-card:first-child{grid-column:auto}.dashboard-filter-toolbar,.dashboard-filter-toolbar label,.dashboard-filter-toolbar button{font-size:inherit}.dashboard-filter-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.dashboard-filter-toolbar input,.dashboard-filter-toolbar select,.dashboard-filter-toolbar button{min-height:44px;padding:10px 12px}.dashboard-stats-grid{gap:8px}.dashboard-stats-grid .stat-card{--dashboard-stat-label-font-size: calc(var(--font-base) * .68);--dashboard-stat-value-font-size: calc(var(--font-base) * .86);min-height:0;padding:7px 10px}.dashboard-stats-grid .stat-card strong{margin-top:0}.stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.table-wrap{overflow:hidden}table{display:table;width:100%;border-collapse:collapse;table-layout:fixed}thead{position:static;display:table-header-group;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}tbody{display:table-row-group;padding:0}tr{display:table-row;border:0;border-radius:0;padding:0;background:transparent}th,td{display:table-cell;padding:16px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:var(--muted);background:var(--surface-soft);font-size:var(--font-size-sm);font-weight:800}td:before{content:none}tr:last-child td{border-bottom:0}.people-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.people-stat-card{--people-stat-label-font-size: var(--font-size-sm);--people-stat-value-font-size: var(--font-size-lg);min-height:58px;padding:10px 12px}.people-table tbody{display:table-row-group;padding:0}.people-table .people-row,.people-table .people-empty-row{display:table-row;border:0;border-radius:0;padding:0;background:transparent}.people-table .people-row td,.people-table .people-empty-cell{display:table-cell;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.people-table .people-row td:before,.people-table .people-empty-cell:before{content:none}.people-table tr:last-child td{border-bottom:0}.people-id-cell,.people-status-cell{justify-self:auto}.people-name,.people-role,.people-id{display:inline;white-space:normal}.people-name{font-size:inherit;font-weight:inherit}.people-role,.people-id{color:inherit;font-size:inherit}.scenario-page{grid-template-columns:minmax(0,1fr) minmax(320px,380px);align-items:start}.scenario-script-panel{min-height:calc(100vh - 190px)}.scenario-script-textarea{min-height:calc(100vh - 260px)}}@media(min-width:1120px){.week-board{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.day-column{min-height:380px}.day-column.collapsed .day-items{display:grid}.day-head-button{cursor:default;font-size:calc(var(--font-base) * .75);line-height:1.2}.day-head-button:hover{background:transparent}.day-head-button>span:first-child:before{content:none}}
