:root{--kh-blue: #2754a0;--kh-blue-dark: #1d3f7a;--kh-orange: #ff6600;--kh-gray: #898989;--kh-gray-dark: #4a4a4a;--kh-white: #fefefe;--bg: #f2f3f5;--card: #fefefe;--line: #e3e5e8;--radius: 8px}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:600;background:var(--bg);color:var(--kh-gray-dark)}h1,h2,h3{font-weight:800;text-transform:uppercase;letter-spacing:.02em;color:var(--kh-blue)}.page{max-width:1100px;margin:0 auto;padding:16px}.header{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;background:var(--card);margin:-16px -16px 20px;padding:10px 20px 0;border-bottom:3px solid var(--kh-blue);box-shadow:0 3px 0 0 var(--kh-orange)}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand img{height:40px;display:block}.brand .brand-sub{font-size:.7rem;color:var(--kh-gray);text-transform:uppercase;letter-spacing:.06em}.nav{display:flex;gap:6px;order:3;flex-basis:100%;border-top:1px solid var(--line);padding:6px 0;overflow-x:auto}.nav button{border:none;background:none;padding:8px 14px;cursor:pointer;font:inherit;font-weight:700;color:var(--kh-gray);border-radius:var(--radius);text-transform:uppercase;font-size:.85rem;white-space:nowrap}.nav button:hover{color:var(--kh-blue);background:var(--bg)}.nav button.active{color:var(--kh-white);background:var(--kh-blue)}.header-right{display:flex;align-items:center;gap:14px;margin-left:auto}.lang-switch{display:flex}.lang-switch button{border:1px solid var(--line);background:var(--card);padding:4px 10px;cursor:pointer;font:inherit;font-weight:700;font-size:.8rem;color:var(--kh-gray)}.lang-switch button:first-child{border-radius:6px 0 0 6px}.lang-switch button:last-child{border-radius:0 6px 6px 0}.lang-switch button.active{background:var(--kh-blue);border-color:var(--kh-blue);color:var(--kh-white)}.user-box{display:flex;align-items:center;gap:10px;font-size:.85rem}.user-box span{color:var(--kh-gray);max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-box button{border:1px solid var(--kh-orange);color:var(--kh-orange);background:none;padding:5px 12px;border-radius:6px;cursor:pointer;font:inherit;font-weight:700;font-size:.8rem}.user-box button:hover{background:var(--kh-orange);color:var(--kh-white)}.subtitle{color:var(--kh-gray)}.server-status{font-weight:700}.server-status.online{color:var(--kh-blue)}.server-status.offline{color:var(--kh-orange)}.note{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--kh-orange);padding:12px 16px;border-radius:var(--radius);color:var(--kh-gray)}button{font-family:inherit}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.page-head button,.inline-form button{border:none;background:var(--kh-blue);color:var(--kh-white);padding:9px 16px;border-radius:var(--radius);cursor:pointer;font:inherit;font-weight:700}.page-head button:hover,.inline-form button:hover{background:var(--kh-blue-dark)}.login-card{max-width:380px;margin:48px auto;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--kh-blue);box-shadow:0 -4px 0 0 var(--kh-orange) inset,0 4px 16px #2754a014;border-radius:var(--radius);padding:28px 24px 32px}.login-card h2{margin-top:0}.login-card form{display:flex;flex-direction:column;gap:12px}.login-card label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:var(--kh-gray)}.login-card input{padding:10px;border:1px solid var(--line);border-radius:6px;font:inherit}.login-card input:focus{outline:2px solid var(--kh-blue);border-color:var(--kh-blue)}.login-card button[type=submit]{background:var(--kh-blue);border:none;color:var(--kh-white);font-weight:800;text-transform:uppercase;padding:12px;border-radius:var(--radius);cursor:pointer}.login-card button[type=submit]:hover{background:var(--kh-blue-dark)}.login-telegram{display:flex;flex-direction:column;align-items:center;gap:8px}.login-divider{color:var(--kh-gray);font-size:.85rem;margin:8px 0;font-weight:600}.form-error{color:var(--kh-orange);font-size:.9rem;margin:0}.info{color:var(--kh-blue)}.card-form{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--kh-blue);border-radius:var(--radius);padding:16px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px;max-width:680px}.card-form label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--kh-gray)}.card-form input,.card-form select,.card-form textarea{padding:8px;border:1px solid var(--line);border-radius:6px;font:inherit;color:var(--kh-gray-dark)}.card-form input:focus,.card-form select:focus,.card-form textarea:focus{outline:2px solid var(--kh-blue)}.form-row{display:flex;gap:12px;flex-wrap:wrap}.form-row label{flex:1;min-width:140px}.card-form button[type=submit]{background:var(--kh-orange);border:none;color:var(--kh-white);font-weight:800;text-transform:uppercase;padding:11px;border-radius:var(--radius);cursor:pointer}.card-form button[type=submit]:hover{filter:brightness(.92)}.params-editor{display:flex;flex-direction:column;gap:4px}.param-row{display:flex;justify-content:space-between;align-items:center;background:var(--bg);padding:4px 10px;border-radius:6px}.param-row button{border:none;background:none;cursor:pointer;color:var(--kh-orange);font-weight:800}.param-add{display:flex;gap:6px}.param-add input{flex:1;padding:6px 8px;border:1px solid var(--line);border-radius:6px;font:inherit}.param-add button{border:1px solid var(--kh-blue);color:var(--kh-blue);background:none;cursor:pointer;padding:2px 12px;border-radius:6px;font-weight:800}.table-wrap{overflow-x:auto;background:var(--card);border-radius:var(--radius);border:1px solid var(--line)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:none}th{font-size:.75rem;color:var(--kh-gray);text-transform:uppercase;letter-spacing:.05em;background:var(--bg)}.row-inactive td{opacity:.45}select{padding:5px;border:1px solid var(--line);border-radius:6px;font:inherit}.actions{display:flex;gap:4px;flex-wrap:wrap}.actions button{border:1px solid var(--kh-blue);color:var(--kh-blue);background:none;cursor:pointer;padding:3px 10px;border-radius:6px;font:inherit;font-weight:700;font-size:.8rem}.actions button:hover{background:var(--kh-blue);color:var(--kh-white)}.actions button.primary{border-color:var(--kh-orange);color:var(--kh-orange)}.actions button.primary:hover{background:var(--kh-orange);color:var(--kh-white)}.badge{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:700;background:var(--bg);color:var(--kh-gray-dark)}.badge.kind-internal{background:#e8eefc;color:var(--kh-blue)}.badge.kind-commercial,.badge.clarify{background:#ffe9d9;color:#c25000}.status{padding:3px 10px;border-radius:10px;font-size:.8rem;font-weight:700;white-space:nowrap}.status-new{background:#ffe9d9;color:#c25000}.status-accepted{background:#e8eefc;color:var(--kh-blue)}.status-in_design{background:#dde6f6;color:var(--kh-blue-dark)}.status-released{background:#e2f2e4;color:#1c7a2e}.status-rejected{background:#eee;color:var(--kh-gray)}.filters{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.filters input,.filters select{padding:8px;border:1px solid var(--line);border-radius:6px;font:inherit}.filters input{flex:1;min-width:200px}.part-detail{display:flex;flex-direction:column;gap:10px;padding:8px 4px}.part-detail h4{margin:4px 0;color:var(--kh-gray-dark);text-transform:none}.part-detail ol{margin:0;padding-left:20px}.part-detail a{color:var(--kh-blue);font-weight:700}.hint{color:var(--kh-gray);font-size:.8rem}.version-uploader{display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--line);padding-top:10px;max-width:480px}.version-uploader input[type=text],.version-uploader input:not([type]){padding:8px;border:1px solid var(--line);border-radius:6px;font:inherit}.version-uploader button{background:var(--kh-orange);border:none;color:var(--kh-white);font-weight:700;padding:9px;border-radius:6px;cursor:pointer}.version-uploader button:disabled{opacity:.5;cursor:default}.keep-files{display:flex;flex-direction:column;gap:4px}.keep-file{display:flex;gap:6px;align-items:center;font-size:.85rem}.status.node-draft{background:#ffe9d9;color:#c25000}.status.node-approved{background:#e2f2e4;color:#1c7a2e}.status-designed{background:#eee;color:var(--kh-gray-dark)}.status-prelim_list{background:#fff3cd;color:#8a6d00}.status-in_production{background:#e2d9f3;color:#4b2d83}.status-ready{background:#e2f2e4;color:#1c7a2e}.status-packed{background:#d9f0f4;color:#0b6470}.status-shipped{background:#e8eefc;color:var(--kh-blue)}.btn-like{border:1px solid var(--kh-blue);color:var(--kh-blue);padding:3px 10px;border-radius:6px;font-weight:700;font-size:.8rem;text-decoration:none}.btn-like:hover{background:var(--kh-blue);color:var(--kh-white)}.public-page{max-width:560px}.public-card{display:flex;flex-direction:column;gap:12px}.public-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.public-head h2{margin:0}.public-name{font-size:1.1rem;margin:0}.public-props{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.public-props>div{display:flex;flex-direction:column;gap:2px}.terminal{max-width:640px;margin:0 auto}.terminal-scanline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.scan-input{flex:1;min-width:240px;padding:14px;font-size:1.1rem;border:2px solid var(--kh-blue);border-radius:var(--radius)}.scan-input:focus{outline:3px solid var(--kh-orange)}.badge-indicator{padding:8px 14px;border-radius:20px;background:#eee;color:var(--kh-gray);font-size:.85rem}.badge-indicator.on{background:#e2f2e4;color:#1c7a2e}.terminal-card{margin-top:16px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--kh-blue);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}.terminal-card select{padding:12px;font-size:1rem;border:1px solid var(--line);border-radius:var(--radius)}.big-action{padding:16px;font-size:1.05rem;font-weight:800;text-transform:uppercase;border:none;border-radius:var(--radius);background:var(--kh-blue);color:var(--kh-white);cursor:pointer}.big-action:disabled{opacity:.4;cursor:default}.big-action.ready{background:#1c7a2e}.start-box{display:flex;flex-direction:column;gap:8px}.finish-box{display:flex;flex-direction:column;gap:8px;border-top:2px dashed var(--kh-orange);padding-top:10px}.finish-box input:not([type=checkbox]):not([type=file]){padding:10px;border:1px solid var(--line);border-radius:6px;font:inherit}.finish-btn{border:none;background:var(--kh-orange);color:var(--kh-white);font-weight:700;padding:8px 16px;border-radius:6px;cursor:pointer}.terminal-hint{margin-top:24px;text-align:center}.badge.defect{background:#f8d7da;color:#86212b}.questions-block{border-top:1px dashed var(--line);padding-top:10px}.questions-head{display:flex;align-items:center;justify-content:space-between}.questions-head h4{margin:4px 0;text-transform:none;color:var(--kh-gray-dark)}.questions-head button{border:1px solid var(--kh-orange);color:var(--kh-orange);background:none;padding:4px 12px;border-radius:6px;cursor:pointer;font:inherit;font-weight:700;font-size:.85rem}.question-form{display:flex;flex-direction:column;gap:8px;margin:8px 0}.question-form textarea{padding:8px;border:1px solid var(--line);border-radius:6px;font:inherit}.question-item{background:var(--bg);border-left:3px solid var(--kh-orange);border-radius:6px;padding:8px 12px;margin:6px 0}.question-item.answered{border-left-color:#1c7a2e}.question-item p{margin:4px 0}.question-item .answer{color:#1c7a2e}.file-actions{display:flex;align-items:center;gap:8px}.btn-like.as-button{background:none;cursor:pointer;font:inherit;font-weight:700;font-size:.8rem}.file-link{border:none;background:none;padding:0;cursor:pointer;font:inherit;color:var(--kh-blue);font-weight:700;text-decoration:underline}.viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e32bf;z-index:200;display:flex;align-items:center;justify-content:center;padding:12px}.viewer-modal{background:var(--card);border-radius:var(--radius);width:min(960px,100%);height:min(720px,100%);display:flex;flex-direction:column;overflow:hidden;border-top:4px solid var(--kh-blue);box-shadow:0 -3px 0 0 var(--kh-orange) inset}.viewer-head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--line)}.viewer-head button{border:none;background:none;font-size:1.3rem;cursor:pointer;color:var(--kh-gray)}.three-viewer{flex:1;position:relative;min-height:0}.three-viewer canvas{display:block}.viewer-status{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;margin:0;color:var(--kh-gray)}.viewer-status.error{color:var(--kh-orange)}.pdf-viewer{flex:1;display:flex;flex-direction:column;min-height:0;position:relative}.pdf-toolbar{display:flex;align-items:center;justify-content:center;gap:10px;padding:6px;border-bottom:1px solid var(--line)}.pdf-toolbar button{border:1px solid var(--line);background:var(--card);padding:4px 12px;border-radius:6px;cursor:pointer;font:inherit;font-weight:700}.pdf-toolbar button:disabled{opacity:.35}.pdf-canvas-wrap{flex:1;overflow:auto;text-align:center;background:var(--bg)}.pdf-canvas-wrap canvas{max-width:none;margin:8px auto;box-shadow:0 2px 8px #00000026}.stat-cards{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0 20px}.stat-card{flex:1;min-width:140px;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--kh-blue);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:4px}.stat-card strong{font-size:1.8rem;color:var(--kh-blue)}.stat-card span{color:var(--kh-gray);font-size:.85rem}.stat-card.accent{border-top-color:var(--kh-orange)}.stat-card.accent strong{color:var(--kh-orange)}.stats-section{margin:24px 0}.stats-section h3{margin-bottom:8px}.bar{position:relative;background:var(--bg);border-radius:10px;height:20px;min-width:140px;overflow:hidden}.bar-fill{height:100%;background:var(--kh-blue);border-radius:10px}.bar-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--kh-gray-dark)}.board{min-height:100vh;background:var(--kh-blue-dark);color:var(--kh-white);padding:24px;font-size:1.1rem}.board-head{display:flex;align-items:center;gap:20px;margin-bottom:20px}.board-head img{height:48px;background:var(--kh-white);border-radius:8px;padding:4px 10px}.board-head h1{color:var(--kh-white);margin:0;flex:1}.board-clock{font-size:2.4rem;font-weight:800}.board-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.board-columns h2{color:var(--kh-orange);border-bottom:2px solid var(--kh-orange);padding-bottom:6px}.board-item{background:#ffffff14;border-radius:8px;padding:10px 14px;margin:8px 0;display:flex;flex-direction:column}.board-item strong{font-size:1.2rem}.board-item.done{background:#1c7a2e59}.board-sub{color:#bcd0f0;font-size:.95rem}.board-empty{color:#bcd0f0}.demo-banner{background:var(--kh-orange);color:var(--kh-white);text-align:center;font-weight:800;text-transform:uppercase;padding:6px;margin:-16px -16px 0}.inline-form{display:flex;gap:6px}.inline-form input{padding:8px;border:1px solid var(--line);border-radius:6px;font:inherit}.objects-box{margin-top:6px;min-width:220px}@media (max-width: 767px){.page{padding:12px 12px 76px}.header{margin:-12px -12px 16px;padding:8px 12px;gap:10px;flex-wrap:wrap}.brand img{height:30px}.brand .brand-sub,.header h1{display:none}.nav{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:3px solid var(--kh-blue);box-shadow:0 -3px 0 0 var(--kh-orange),0 -4px 14px #00000014;display:flex;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:100}.nav button{padding:8px 10px;font-size:.72rem}.header-right{margin-left:auto}.user-box span{display:none}.table-wrap{background:none;border:none;overflow:visible}table,tbody,tr,td{display:block;width:100%}thead{display:none}tr{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--kh-blue);border-radius:var(--radius);margin-bottom:10px;padding:6px 0}td{border:none;padding:6px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px}td[data-label]:before{content:attr(data-label);font-size:.7rem;color:var(--kh-gray);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}td:empty{display:none}.actions{justify-content:flex-end}.form-row{flex-direction:column}.card-form{max-width:none}.login-card{margin:24px auto}.page-head{flex-direction:column;align-items:stretch}.page-head button{width:100%}.inline-form{flex-direction:column}}.page-head-actions{display:flex;gap:12px;align-items:center}.inline-check{display:inline-flex;gap:6px;align-items:center;font-size:14px}.form-warning{background:#fff4e8;border-left:4px solid var(--kh-orange);color:var(--kh-gray-dark);padding:10px 12px;border-radius:var(--radius)}.form-note{color:var(--kh-blue)}.field-section h3{margin:20px 0 8px}.row-inactive td{opacity:.5}.badge.required-hard{background:var(--kh-orange);color:var(--kh-white)}.badge.required-soft{background:var(--kh-blue);color:var(--kh-white)}.badge.required-off{background:var(--line);color:var(--kh-gray-dark)}.applies-to{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.applies-to legend{font-size:14px;color:var(--kh-gray);padding:0 6px}.applies-to .inline-check{margin-right:14px}.form-actions{display:flex;gap:10px}.param-section{border:1px solid var(--line);border-radius:var(--radius);margin:12px 0}.param-section legend{color:var(--kh-blue);font-size:14px;padding:0 8px}.param-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 16px;padding:6px 4px 10px}.dyn-field{display:flex;flex-direction:column;gap:4px;font-size:14px}.dyn-field>span{color:var(--kh-gray-dark)}.dyn-field .field-help{color:var(--kh-gray);font-weight:400}.dyn-bool{flex-direction:row;align-items:center;gap:8px}.multi-check{display:flex;flex-direction:column;gap:4px}.request-detail{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;background:var(--bg);border-radius:var(--radius);padding:14px}.detail-row>td{background:var(--bg)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:8px 0}.photo-card{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.photo-card img{width:100%;height:90px;object-fit:cover;display:block}.photo-placeholder{height:90px;display:flex;align-items:center;justify-content:center;color:var(--kh-gray)}.photo-card figcaption{font-size:12px;padding:6px 8px;display:flex;justify-content:space-between;gap:6px;align-items:center}.upload-row{display:flex;gap:10px;align-items:center;margin-top:8px}.upload-row input[type=text],.upload-row input:not([type]){flex:1}.upload-btn{background:var(--kh-blue);color:var(--kh-white);padding:8px 14px;border-radius:var(--radius);cursor:pointer;font-size:14px;white-space:nowrap}.upload-btn:hover{background:var(--kh-blue-dark)}.approvals-block{margin-top:18px}.approvals-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:6px}.approvals-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px}.approvals-list li.signed{border-left:4px solid var(--kh-blue)}.approvals-list li.unsigned{border-left:4px solid var(--line)}.slot-status{display:inline-flex;gap:8px;align-items:center;color:var(--kh-gray);font-size:14px}.approvals-list li.signed .slot-status{color:var(--kh-blue)}button.small{padding:3px 8px;font-size:12px}button.danger{background:#c0392b;border-color:#c0392b;color:var(--kh-white)}.launch-row{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}@media (max-width: 768px){.request-detail,.param-grid{grid-template-columns:1fr}.page-head-actions,.upload-row{flex-direction:column;align-items:stretch}.approvals-list li{flex-direction:column;align-items:flex-start}}
