:root{color-scheme:light dark;--bg:#FAFAF9;--panel:#fff;--line:#E3E3E0;--text:#1A1A1A;--muted:#666660;--accent:#E2701E;--notice:#F2F2F0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}aside{position:fixed;width:248px;height:100dvh;background:var(--panel);border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column}.brand{font-weight:750;font-size:21px}.brand span{display:block;font-size:13px;font-weight:400;color:var(--muted)}nav{display:grid;gap:5px;margin-top:34px}nav a{padding:12px 14px;border-radius:14px}nav a[aria-current]{color:var(--accent);background:var(--bg);font-weight:650}.identity{margin-top:auto;border-top:1px solid var(--line);padding-top:15px}main{max-width:1330px;margin-left:248px;padding:32px 44px}h1{font-size:clamp(30px,4vw,44px);line-height:1.15;letter-spacing:-1px;margin:12px 0 18px}h2{font-size:22px;line-height:1.25;margin:12px 0}p{max-width:66ch}.eyebrow{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:32px}.lead{font-size:18px;color:var(--muted);margin-bottom:30px}.notice{padding:14px 18px;background:var(--notice);border:1px solid var(--line);border-radius:14px;font-size:14px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px}.card{display:flex;flex-direction:column;min-height:205px}.card:hover{border-color:var(--muted)}.card p{margin:0 0 20px;max-width:40ch}.card-end{margin-top:auto;font-size:14px}.muted,footer,small{color:var(--muted);font-size:13px}.panel{margin-top:24px}button,.button,select{font:inherit;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);padding:12px 16px;min-height:48px;cursor:pointer}.button{display:inline-block}.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.back{display:inline-block;margin-top:24px}.steps{padding-left:24px}.steps li{padding:10px 0;border-bottom:1px solid var(--line)}small{display:block}footer{margin-top:40px}.login{margin:6vh auto;width:min(520px,100%);padding:28px}.login form{display:grid;gap:12px;margin-top:26px}.login .eyebrow{margin-top:0}.login select{width:100%}@media(prefers-color-scheme:dark){:root{--bg:#121211;--panel:#1C1C1B;--line:#34342F;--text:#F5F5F3;--muted:#AEAEA8;--accent:#F08B3C;--notice:#292926}}@media(max-width:760px){aside{position:static;width:100%;height:auto;padding:20px;border-right:0;border-bottom:1px solid var(--line)}nav{display:flex;overflow-x:auto;margin-top:18px;gap:5px}nav a{white-space:nowrap;flex-shrink:0}.identity{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;margin-top:12px}.identity p{font-size:14px}.identity button{font-size:13px;padding:9px}main{margin:0;padding:20px}.cards{grid-template-columns:1fr}.card{min-height:180px}.panel{padding:20px}.login{margin:3vh auto}}
.scenario,.filters,.module-tabs{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:20px 0}.scenario label{align-self:center}.filters label{display:grid;gap:6px}.module-tabs a{padding:10px 14px;border:1px solid var(--line);border-radius:14px}.order-list{display:grid;gap:12px}.order-row{display:flex;justify-content:space-between;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:20px}.order-row p{margin:10px 0}.state-label{align-self:center;font-size:14px;font-weight:650}.problem{border-left:4px solid #B14A15}.problem h2,.problem .state-label{color:#B14A15}.stock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.stock-grid div{display:grid;gap:6px}.stock-grid strong{font-size:24px}.days{margin-top:28px}.day-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.production-item{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.production-item p{font-size:14px}.order-link{text-decoration:underline;font-weight:650}dl{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:12px}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}@media(max-width:760px){.scenario select,.filters select{max-width:100%}.scenario>*{width:100%}.filters label{width:100%}.stock-grid{grid-template-columns:1fr}.order-row{flex-direction:column}.state-label{align-self:start}dl{grid-template-columns:1fr;gap:4px}dd{margin-bottom:12px}}
@media(prefers-color-scheme:dark){.problem{border-left-color:#FFB08A}.problem h2,.problem .state-label{color:#FFB08A}}
.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:24px}.metric-grid .panel{margin:0;display:block}.metric-number{display:flex;align-items:baseline;gap:8px;margin-top:12px;font-variant-numeric:tabular-nums}.metric-number strong{font-size:38px;line-height:1.2;letter-spacing:-1px}.metric-number span{font-size:14px;color:var(--muted)}.metric p{font-size:13px;margin:12px 0;min-height:40px}.demo-caption{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.chart-grid-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.chart-panel{min-width:0}.chart-panel>svg{display:block;width:100%;height:auto;max-height:230px;overflow:visible}.chart-panel svg text{fill:var(--muted);font:11px system-ui}.chart-grid{stroke:var(--line);stroke-width:1;fill:none}.chart-line{stroke:var(--folk-blue);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;animation:chart-draw 1.6s ease both}.chart-dot{fill:var(--folk-blue);animation:dot-appear 1.4s ease both}.chart-bar{fill:var(--accent);transform-box:fill-box;transform-origin:center bottom;animation:bar-rise 1.1s cubic-bezier(.16,1,.3,1) both}.chart-bar.paid{fill:var(--folk-blue)}.chart-bars:nth-child(3) .chart-bar{animation-delay:.1s}.chart-bars:nth-child(4) .chart-bar{animation-delay:.2s}.chart-bars:nth-child(5) .chart-bar{animation-delay:.3s}.chart-legend{display:flex;gap:20px;font-size:12px}.chart-legend span:before{content:'';display:inline-block;width:9px;height:9px;margin-right:7px;background:var(--accent);border-radius:2px}.chart-legend .paid:before{background:var(--folk-blue)}.stock-rings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;text-align:center;margin:18px 0}.stock-rings svg{width:100%;max-width:120px}.stock-rings strong{font-size:13px}.ring-track,.ring-fill{fill:none;stroke-width:7}.ring-track{stroke:var(--line)}.ring-fill{stroke:var(--folk-gold);transform:rotate(-90deg);transform-origin:55px 55px;stroke-linecap:round;animation:ring-reveal 1.4s ease both}.chart-panel svg .ring-value{font-size:23px;font-weight:750;fill:var(--text)}.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:24px 0}.pipeline div{display:grid;gap:5px;border-top:2px solid var(--line);padding-top:14px}.pipeline strong{font-size:30px;font-variant-numeric:tabular-nums}.pipeline span{font-size:13px}.welcome-action{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.welcome-action p{margin-bottom:0}@keyframes chart-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}@keyframes bar-rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes dot-appear{from{opacity:0}to{opacity:1}}@keyframes ring-reveal{from{opacity:0;stroke-width:0}to{opacity:1;stroke-width:7}}.motion-off .chart-line,.motion-off .chart-dot,.motion-off .chart-bar,.motion-off .ring-fill{animation:none}@media(prefers-reduced-motion:reduce){.chart-line,.chart-dot,.chart-bar,.ring-fill{animation:none!important}}@media(max-width:760px){.chart-grid-layout{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid .panel{padding:38px 14px 18px}.metric-number{flex-wrap:wrap;gap:3px}.metric-number strong{font-size:29px}.pipeline{grid-template-columns:repeat(2,1fr)}.chart-panel{padding:42px 16px 20px}}
.order-timeline{list-style:none;padding:0;display:grid;gap:14px}.order-timeline li{border-left:3px solid var(--line);padding:8px 0 8px 16px}.order-timeline summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;min-height:44px;align-items:center}.order-timeline summary span{font-size:12px;color:var(--muted)}.order-timeline .timeline-ok{border-color:#2F6B4F}.order-timeline .timeline-late{border-color:#B14A15}.order-timeline .timeline-our{border-color:var(--accent)}.order-timeline .timeline-wait{border-color:var(--folk-blue)}@media(max-width:760px){.order-timeline summary{flex-wrap:wrap}}
input{font:inherit;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);padding:12px 16px;min-height:48px;max-width:100%}input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.lamp{padding:14px 8px;border-bottom:1px solid var(--line)}.lamp summary{cursor:pointer;min-height:44px}.metric-number strong{overflow-wrap:anywhere}
.booking-form{display:grid;gap:16px}.booking-form label{display:grid;gap:6px}.booking-form select{width:100%}
.gantt-panel{padding:24px 0}.gantt-panel>.day-title,.gantt-panel>.filters,.gantt-panel>p{margin-left:24px;margin-right:24px}.gantt-scroll{max-width:100%;overflow:auto;border-block:1px solid var(--line)}.gantt-grid{display:grid;width:max-content}.g-7{grid-template-columns:210px repeat(7,54px)}.g-14{grid-template-columns:210px repeat(14,54px)}.g-28{grid-template-columns:210px repeat(28,54px)}.gantt-header>span{padding:12px 5px;text-align:center;font-size:12px;border-left:1px solid var(--line)}.gantt-header>strong{padding:12px 16px;position:sticky;left:0;background:var(--panel);z-index:3}.g-today{color:var(--accent);font-weight:700}.gantt-row{height:88px;border-top:1px solid var(--line)}.gantt-name{grid-column:1;grid-row:1;position:sticky;left:0;background:var(--panel);z-index:4;padding:14px;align-content:center}.gantt-risk .gantt-name{border-left:4px solid #B14A15}.gantt-cell{grid-row:1;border-left:1px solid var(--line);min-height:88px}.gantt-bar{grid-row:1;align-self:center;min-height:28px;border-radius:8px;text-align:center;align-content:center;font-size:12px;white-space:nowrap;overflow:hidden;z-index:1;margin:0 3px}.g-contract{height:54px;background:var(--notice);border:1px solid var(--accent);padding-top:30px;color:var(--accent)}.g-feasible{height:24px;background:#2F6B4F;color:white;margin-top:-16px}.g-shipping{color:var(--accent);font-size:23px;width:30px;background:var(--panel);border:1px solid var(--line)}.gantt-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:13px}.gantt-dialog{width:min(640px,calc(100vw - 28px));max-height:85vh;overflow:auto;padding:28px;border:1px solid var(--line);border-radius:24px;background:var(--panel);color:var(--text);box-shadow:0 28px 90px #0006}.gantt-dialog::backdrop{background:#0007;backdrop-filter:blur(5px)}.dialog-close{float:right;font-size:22px}.gantt-dialog[open]{animation:dialog-in .22s ease-out}@keyframes dialog-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.gantt-dialog[open]{animation:none}}
.g-col-2{grid-column-start:2}
.g-col-3{grid-column-start:3}
.g-col-4{grid-column-start:4}
.g-col-5{grid-column-start:5}
.g-col-6{grid-column-start:6}
.g-col-7{grid-column-start:7}
.g-col-8{grid-column-start:8}
.g-col-9{grid-column-start:9}
.g-col-10{grid-column-start:10}
.g-col-11{grid-column-start:11}
.g-col-12{grid-column-start:12}
.g-col-13{grid-column-start:13}
.g-col-14{grid-column-start:14}
.g-col-15{grid-column-start:15}
.g-col-16{grid-column-start:16}
.g-col-17{grid-column-start:17}
.g-col-18{grid-column-start:18}
.g-col-19{grid-column-start:19}
.g-col-20{grid-column-start:20}
.g-col-21{grid-column-start:21}
.g-col-22{grid-column-start:22}
.g-col-23{grid-column-start:23}
.g-col-24{grid-column-start:24}
.g-col-25{grid-column-start:25}
.g-col-26{grid-column-start:26}
.g-col-27{grid-column-start:27}
.g-col-28{grid-column-start:28}
.g-col-29{grid-column-start:29}
.g-span-1{grid-column-end:span 1}
.g-span-2{grid-column-end:span 2}
.g-span-3{grid-column-end:span 3}
.g-span-4{grid-column-end:span 4}
.g-span-5{grid-column-end:span 5}
.g-span-6{grid-column-end:span 6}
.g-span-7{grid-column-end:span 7}
.g-span-8{grid-column-end:span 8}
.g-span-9{grid-column-end:span 9}
.g-span-10{grid-column-end:span 10}
.g-span-11{grid-column-end:span 11}
.g-span-12{grid-column-end:span 12}
.g-span-13{grid-column-end:span 13}
.g-span-14{grid-column-end:span 14}
.g-span-15{grid-column-end:span 15}
.g-span-16{grid-column-end:span 16}
.g-span-17{grid-column-end:span 17}
.g-span-18{grid-column-end:span 18}
.g-span-19{grid-column-end:span 19}
.g-span-20{grid-column-end:span 20}
.g-span-21{grid-column-end:span 21}
.g-span-22{grid-column-end:span 22}
.g-span-23{grid-column-end:span 23}
.g-span-24{grid-column-end:span 24}
.g-span-25{grid-column-end:span 25}
.g-span-26{grid-column-end:span 26}
.g-span-27{grid-column-end:span 27}
.g-span-28{grid-column-end:span 28}

/* Свет и глубина фона без движения и изменения цветов сигналов. */
body{min-height:100dvh;background-color:var(--bg);background-image:radial-gradient(ellipse at 90% 0%,#c89b4930 0%,transparent 48%),radial-gradient(ellipse at 18% 55%,#647d9520 0%,transparent 55%),radial-gradient(ellipse at 95% 100%,#bd765b20 0%,transparent 50%),linear-gradient(135deg,#faf8f1,#f0f3f4 55%,#f6eee5);background-attachment:fixed}
aside{background:linear-gradient(155deg,#fffdf8f5,#f0f1edf5);box-shadow:8px 0 32px #60513b08}
.card,.panel,.order-row{box-shadow:0 8px 28px #60513b08}
@media(prefers-color-scheme:dark){body{background-image:radial-gradient(ellipse at 90% 0%,#bd8c3f38 0%,transparent 48%),radial-gradient(ellipse at 18% 55%,#466d8c24 0%,transparent 55%),radial-gradient(ellipse at 95% 100%,#9b533124 0%,transparent 50%),linear-gradient(135deg,#191a1e,#121b22 55%,#201b18)}aside{background:linear-gradient(155deg,#25231ff7,#161c22f7);box-shadow:8px 0 32px #0002}.card,.panel,.order-row{box-shadow:0 10px 30px #0002}}
@media(max-width:760px){body{background-attachment:scroll}}

/* Рабочая область центрируется в свободном пространстве справа от меню. */
@media(min-width:761px){main:not(.login){width:min(1600px,calc(100% - 248px));max-width:1600px;margin-left:max(248px,calc(248px + (100% - 248px - 1600px)/2));margin-right:auto;padding:40px clamp(24px,3vw,56px)}main:not(.login)>h1{font-size:clamp(40px,3.2vw,56px)}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.chart-grid-layout{gap:24px}}
@media(min-width:1700px){.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.metric-number strong{font-size:36px}}
@media(max-width:760px){main:not(.login){width:100%;max-width:none;margin:0;padding:24px 16px 32px}.metric-grid{gap:12px}.chart-grid-layout{gap:16px}.welcome-action{align-items:flex-start}.gantt-panel>.day-title,.gantt-panel>.filters,.gantt-panel>p{margin-left:16px;margin-right:16px}aside{padding:18px 16px}h1{font-size:32px}}
@media(max-width:380px){.metric-grid{grid-template-columns:1fr}}

/* План — золото и синий; подтверждения — цвет рамки и подпись состояния. */
.gantt-scroll{max-height:620px}.gantt-header{position:sticky;top:0;z-index:6;background:var(--panel)}.gantt-row{height:100px}.gantt-cell{min-height:100px}.g-7{width:100%;grid-template-columns:210px repeat(7,minmax(54px,1fr))}.g-14{width:100%;grid-template-columns:210px repeat(14,minmax(54px,1fr))}.g-feasible{background:linear-gradient(110deg,#786139,#485e74);border:1px solid #c4a778;color:#fff;box-shadow:0 4px 14px #0002;animation:gantt-reveal .55s ease-out both}.g-contract{border-color:var(--folk-gold);background:var(--notice)}.gantt-work .gantt-name{border-left:3px solid #c99b47}.gantt-done .gantt-name{border-left:3px solid #61ac8a}.gantt-risk .gantt-name{border-left:3px solid #df7468;animation:risk-glow 2.8s ease-in-out infinite}.gantt-bar:hover{filter:brightness(1.18);box-shadow:0 4px 18px #c4a77840}.gantt-bar{transition:filter .2s ease,box-shadow .2s ease}.gantt-name:after{display:block;margin-top:5px;font-size:11px;color:var(--muted)}.gantt-work .gantt-name:after{content:'Ожидается действие'}.gantt-risk .gantt-name:after{content:'Требуется решение'}.gantt-done .gantt-name:after{content:'Подтверждено источником'}
@keyframes gantt-reveal{from{opacity:0;transform:scaleX(.85)}to{opacity:1;transform:none}}@keyframes risk-glow{0%,100%{box-shadow:inset 4px 0 12px #df746810}50%{box-shadow:inset 4px 0 24px #df746838}}
.motion-off .g-feasible,.motion-off .gantt-risk .gantt-name{animation:none}@media(prefers-reduced-motion:reduce){.g-feasible,.gantt-risk .gantt-name{animation:none}}
@media(max-width:760px){.gantt-scroll{max-height:480px}.g-7,.g-14{grid-template-columns:150px repeat(7,54px);width:max-content}.g-14{grid-template-columns:150px repeat(14,54px)}.g-28{grid-template-columns:150px repeat(28,54px)}.gantt-name{padding:10px;font-size:13px}}
.gantt-name small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.supply-gantt-row{height:112px;border-top:1px solid var(--line)}.supply-day{grid-row:1;border-left:1px solid var(--line);text-align:center;padding-top:14px;font-size:12px}.supply-demand{display:block;margin:0 4px;padding:5px 2px;border-radius:5px;background:#56799455;border:1px solid #86a6c377}.supply-order,.supply-arrival,.supply-shortage{margin-top:42px;align-self:center;font-size:22px;width:34px;justify-self:center;background:var(--panel);border:1px solid var(--line)}.supply-order{color:#d8b66d}.supply-arrival{color:#96bcd9}.supply-shortage{color:#ff998b;border-color:#e47366;transform:translateY(27px)}.procurement-gantt .gantt-name small{display:block;font-size:11px;margin-top:7px;color:var(--muted)}
.supply-lead{margin-top:26px;background:linear-gradient(100deg,#74604988,#4b688d88);border:1px solid #bca07a88;color:var(--text);font-size:11px;height:24px}.supply-gantt-row .supply-order,.supply-gantt-row .supply-arrival{margin-top:78px;font-size:20px;z-index:2}.supply-gantt-row .supply-shortage{margin-top:78px;transform:none;z-index:3}
.screen-locked{background:linear-gradient(145deg,#17282bd9,#111b27ed);border:1px solid #b99c6855;border-radius:30px;padding:34px;box-shadow:0 30px 110px #0008;backdrop-filter:blur(16px)}.screen-clock{display:block;font-size:clamp(44px,8vw,74px);letter-spacing:-3px;color:#dbbf86;font-variant-numeric:tabular-nums}.screen-locked h1{font-size:clamp(24px,4vw,34px)}.screen-locked input[name="pin"]{text-align:center;letter-spacing:12px;font-size:28px}.screen-locked .folk-band{margin-top:16px}
