:root{color:#1d2520;background:#f5f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}input:disabled{color:#637063;cursor:not-allowed;opacity:.72}button{cursor:pointer}.boot-screen,.auth-page{align-items:center;display:flex;min-height:100vh;justify-content:center;padding:24px}.auth-panel{background:#fff;border:1px solid #dde5dd;border-radius:8px;box-shadow:0 18px 50px #1d252014;max-width:420px;padding:32px;width:100%}.auth-heading{align-items:center;display:flex;gap:14px;margin-bottom:28px}.brand-mark{align-items:center;background:#0f6b57;border-radius:6px;color:#fff;display:inline-flex;font-size:14px;font-weight:800;height:36px;justify-content:center;text-transform:uppercase;width:36px}.eyebrow{color:#637063;font-size:12px;font-weight:700;letter-spacing:0;margin:0 0 6px;text-transform:uppercase}h1{font-size:28px;line-height:1.15;margin:0}.form-stack{display:grid;gap:18px}label{color:#38433b;display:grid;font-size:14px;font-weight:700;gap:8px}input{background:#fbfcfb;border:1px solid #cbd6cc;border-radius:6px;color:#1d2520;min-height:44px;padding:10px 12px;width:100%}input:focus{border-color:#0f6b57;outline:3px solid rgba(15,107,87,.16)}.primary-button,.secondary-button,.link-button,.nav-item,.brand{border:0}.primary-button{background:#0f6b57;border-radius:6px;color:#fff;font-weight:800;min-height:44px;padding:10px 14px}.primary-button:disabled{cursor:not-allowed;opacity:.66}.secondary-button{background:#e6eee8;border-radius:6px;color:#1d2520;font-weight:700;min-height:40px;padding:9px 12px}.link-button{background:transparent;color:#0f6b57;font-weight:800;margin-top:18px;padding:0}.text-button{background:transparent;border:0;color:#0f6b57;font-weight:800;padding:8px 0}.form-error{background:#fff3ef;border:1px solid #f0b7a3;border-radius:6px;color:#8d3218;font-size:14px;margin:0;padding:10px 12px}.notice{background:#eef8f2;border:1px solid #b8d9c4;border-radius:6px;color:#21432d;display:grid;gap:6px;padding:12px}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid #dde5dd;display:grid;grid-template-rows:auto 1fr auto;gap:28px;padding:20px}.brand{align-items:center;background:transparent;color:#1d2520;display:flex;gap:12px;padding:0;text-align:left}.brand strong,.brand small{display:block}.brand small{color:#637063;margin-top:2px}.nav-list{display:grid;align-content:start;gap:8px}.nav-item{background:transparent;border-radius:6px;color:#38433b;font-weight:800;min-height:42px;padding:10px 12px;text-align:left}.nav-item:hover,.nav-item.active{background:#e6eee8;color:#0f4f40}.sidebar-footer{display:grid;gap:12px}.user-chip{border-top:1px solid #dde5dd;display:grid;gap:4px;padding-top:14px}.user-chip span{font-weight:800;overflow-wrap:anywhere}.user-chip small{color:#637063;text-transform:capitalize}.content-shell{min-width:0;padding:36px}.page-section{max-width:900px}.page-header{display:grid;gap:12px}.page-header p:last-child{color:#526056;font-size:16px;line-height:1.55;margin:0;max-width:620px}.dashboard-page{display:grid;gap:24px;max-width:1040px}.dashboard-header{border-bottom:1px solid #dde5dd;padding-bottom:20px}.status-summary{align-items:center;background:#fff;border:1px solid #dde5dd;border-radius:8px;display:flex;gap:12px;justify-content:space-between;min-height:56px;padding:14px 16px}.status-summary span{color:#637063;font-size:13px;font-weight:800;text-transform:uppercase}.status-summary strong{color:#1d2520;font-size:14px;text-align:right}.status-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.status-card{background:#fff;border:1px solid #dde5dd;border-radius:8px;display:grid;gap:14px;min-height:160px;padding:18px}.status-card:last-child:nth-child(odd){grid-column:1 / -1}.status-card-heading{align-items:center;display:flex;gap:10px}.status-card h2{font-size:15px;line-height:1.25;margin:0}.status-priority{align-items:center;display:flex;min-height:24px}.status-dot{border-radius:999px;display:inline-flex;height:10px;width:10px}.status-dot.ready{background:#1b7f4c}.status-dot.pending,.status-dot.unknown{background:#8d9288}.status-dot.blocked{background:#b34a24}.status-value{color:#1d2520;font-size:20px;font-weight:800;line-height:1.25;margin:0}.status-detail{color:#526056;font-size:14px;line-height:1.5;margin:0}.dashboard-message{background:#fff;border:1px solid #dde5dd;border-radius:8px;color:#38433b;display:grid;gap:6px;padding:18px}.dashboard-message.error{background:#fff3ef;border-color:#f0b7a3;color:#8d3218}.skeleton-card span,.skeleton-card strong,.skeleton-card p{background:#e8eee8;border-radius:6px;display:block}.skeleton-card span{height:16px;width:42%}.skeleton-card strong{height:28px;width:70%}.skeleton-card p{height:44px;margin:0;width:100%}.reports-page{display:grid;gap:22px;max-width:1040px}.reports-header{border-bottom:1px solid #dde5dd;padding-bottom:20px}.reports-list{display:grid;gap:12px}.report-row{align-items:center;background:#fff;border:1px solid #dde5dd;border-radius:8px;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) auto;min-height:116px;padding:18px}.report-row h2{font-size:18px;line-height:1.25;margin:0}.report-day{color:#637063;font-size:13px;font-weight:800;margin:0 0 6px;text-transform:uppercase}.report-meta{color:#526056;font-size:14px;line-height:1.45;margin:8px 0 0}.report-priority{margin:12px 0 0}.report-priority-none{color:#637063;font-size:13px;font-weight:700}.report-row-actions{align-items:end;display:grid;gap:12px;justify-items:end}.delivery-badge{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;line-height:1;padding:7px 10px;text-transform:uppercase;white-space:nowrap}.delivery-badge.sent{background:#e1f2e8;color:#1b5d38}.delivery-badge.pending,.delivery-badge.not_sent,.delivery-badge.unknown{background:#eef0ec;color:#4f584f}.delivery-badge.failed{background:#fff0e8;color:#8d3218}.report-skeleton span,.report-skeleton strong,.report-skeleton p,.report-skeleton em,.report-detail-skeleton span,.report-detail-skeleton strong,.report-detail-skeleton p{background:#e8eee8;border-radius:6px;display:block}.report-skeleton span{height:14px;width:140px}.report-skeleton strong{height:24px;margin-top:10px;width:220px}.report-skeleton p{height:16px;margin:12px 0 0;width:320px}.report-skeleton em{height:34px;width:96px}.back-link{justify-self:start;margin-top:0}.report-detail-meta{align-items:center;background:#fff;border:1px solid #dde5dd;border-radius:8px;color:#526056;display:flex;flex-wrap:wrap;gap:12px;padding:14px 16px}.report-body{background:#fff;border:1px solid #dde5dd;border-radius:8px;padding:20px}.report-body pre{color:#1d2520;font-family:inherit;font-size:15px;line-height:1.6;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.report-detail-skeleton{background:#fff;border:1px solid #dde5dd;border-radius:8px;display:grid;gap:14px;padding:20px}.report-detail-skeleton span{height:16px;width:160px}.report-detail-skeleton strong{height:32px;width:280px}.report-detail-skeleton p{height:80px;margin:0;width:100%}.settings-page{display:grid;gap:22px;max-width:1040px}.settings-header{border-bottom:1px solid #dde5dd;padding-bottom:20px}.settings-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-panel{background:#fff;border:1px solid #dde5dd;border-radius:8px;display:grid;gap:16px;min-height:220px;padding:18px}.settings-panel h2{font-size:18px;line-height:1.25;margin:0}.settings-panel-label{color:#637063;font-size:12px;font-weight:800;margin:0;text-transform:uppercase}.settings-list{display:grid;gap:12px;margin:0}.settings-list div{border-top:1px solid #eef2ee;display:grid;gap:4px;padding-top:12px}.settings-list dt{color:#637063;font-size:13px;font-weight:800}.settings-list dd{color:#1d2520;font-size:15px;font-weight:700;margin:0;overflow-wrap:anywhere}.settings-form{display:grid;gap:14px}.settings-actions{display:flex;justify-content:flex-start}.telegram-panel{grid-column:1 / -1}.telegram-heading{align-items:start;display:flex;gap:16px;justify-content:space-between}.telegram-status{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;line-height:1;padding:8px 10px;text-transform:uppercase;white-space:nowrap}.telegram-status.connected{background:#e1f2e8;color:#1b5d38}.telegram-status.not_connected{background:#fff0e8;color:#8d3218}.telegram-status.incomplete{background:#eef0ec;color:#4f584f}.telegram-guidance{border-radius:8px;display:grid;gap:6px;padding:14px}.telegram-guidance.connected{background:#eef8f2;color:#21432d}.telegram-guidance.not_connected{background:#fff3ef;color:#8d3218}.telegram-guidance.incomplete{background:#f4f6f1;color:#38433b}.telegram-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.telegram-link-box{background:#f7faf7;border:1px solid #d9e3da;border-radius:8px;display:grid;gap:10px;padding:14px}.telegram-link-box code{background:#1d2520;border-radius:6px;color:#fff;display:block;font-size:13px;overflow-wrap:anywhere;padding:10px 12px}.telegram-link-box small{color:#637063;font-weight:700}.telegram-link-box .secondary-button{justify-self:start;text-decoration:none}.settings-skeleton span,.settings-skeleton strong,.settings-skeleton p{background:#e8eee8;border-radius:6px;display:block}.settings-skeleton span{height:14px;width:120px}.settings-skeleton strong{height:26px;width:190px}.settings-skeleton p{height:32px;margin:0;width:100%}.admin-page{display:grid;gap:22px;max-width:1180px}.admin-header{border-bottom:1px solid #dde5dd;padding-bottom:20px}.admin-run-summary{align-items:center;background:#fff;border:1px solid #dde5dd;border-radius:8px;display:flex;gap:12px;justify-content:space-between;min-height:56px;padding:14px 16px}.admin-run-summary span{color:#1d2520;font-weight:800}.admin-run-summary strong{color:#637063;font-size:14px}.admin-counter-grid{display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr))}.admin-counter{background:#fff;border:1px solid #dde5dd;border-radius:8px;display:grid;gap:8px;min-height:84px;padding:14px}.admin-counter span{color:#637063;font-size:12px;font-weight:800;text-transform:uppercase}.admin-counter strong{color:#1d2520;font-size:28px;line-height:1}.admin-table-wrap{background:#fff;border:1px solid #dde5dd;border-radius:8px;overflow-x:auto}.admin-table{border-collapse:collapse;min-width:880px;width:100%}.admin-table th,.admin-table td{border-bottom:1px solid #eef2ee;padding:14px;text-align:left;vertical-align:top}.admin-table th{color:#637063;font-size:12px;font-weight:800;text-transform:uppercase}.admin-table td strong,.admin-table td span{display:block}.admin-table td strong{color:#1d2520;font-size:14px}.admin-table td span{color:#526056;font-size:13px;margin-top:3px}.admin-table tr:last-child td{border-bottom:0}.admin-badge{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;line-height:1;margin-top:0;padding:7px 10px;text-transform:uppercase}.admin-badge.yes{background:#e1f2e8;color:#1b5d38}.admin-badge.no{background:#fff0e8;color:#8d3218}.admin-badge.priority-review{background:#ffe7cc;color:#8a4b00}.admin-badge.priority-watch{background:#e7eefc;color:#234d88}.admin-blocker{color:#8d3218;font-weight:800}.admin-muted{color:#637063}.admin-loading{display:grid;gap:16px}.admin-skeleton span,.admin-skeleton strong,.admin-table-skeleton{background:#e8eee8;border-radius:6px;display:block}.admin-skeleton span{height:14px;width:80%}.admin-skeleton strong{height:28px;width:48px}.admin-table-skeleton{border-radius:8px;height:260px}@media (max-width: 760px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #dde5dd;border-right:0;gap:18px}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}.nav-item{text-align:center}.content-shell{padding:24px}.status-grid{grid-template-columns:1fr}.status-summary{align-items:flex-start;display:grid}.status-summary strong{text-align:left}.report-row{align-items:start;grid-template-columns:1fr}.report-row-actions{align-items:start;justify-items:start}.settings-grid{grid-template-columns:1fr}.telegram-heading{display:grid}.admin-run-summary{align-items:start;display:grid}.admin-counter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
