*,*:before,*:after{box-sizing:border-box}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color-scheme:light}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#ecfdf5,#fff 40%);color:#111827}#root{min-height:100vh}.app-root{max-width:1200px;margin:0 auto;padding:24px 16px 40px}.top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 20px;border-radius:16px;background:linear-gradient(135deg,#22c55e,#bbf7d0 40%,#fff);box-shadow:0 12px 30px #16a34a2e,0 0 0 1px #16a34a14}.top-bar-left{display:flex;flex-direction:column;gap:4px}.top-title-main{font-size:22px;font-weight:700;letter-spacing:.02em}.top-title-sub{font-size:14px;color:#064e3b}.top-bar-right{display:flex;align-items:center;gap:12px}.pill-group{display:flex;gap:8px}.pill{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500;background:#1f29370d;color:#111827;border:1px solid transparent}.pill-green{background:#ecfdf5;color:#166534;border-color:#16a34a40}.pill-gray{background:#f9fafb;color:#374151;border-color:#94a3b866}.pill-red{background:#fef2f2;color:#b91c1c;border-color:#ef444459}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border-radius:999px;border:none;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 10px 20px #16a34a4d,0 0 0 1px #16a34a1f;transition:transform .08s ease,box-shadow .12s ease,filter .12s ease}.btn:hover{transform:translateY(-1px);filter:brightness(1.02);box-shadow:0 14px 24px #16a34a59,0 0 0 1px #16a34a33}.btn:active{transform:translateY(0);box-shadow:0 6px 14px #16a34a33,0 0 0 1px #16a34a33}.btn:disabled{cursor:default;opacity:.6;transform:none;box-shadow:0 0 0 1px #94a3b84d,0 0 #0000;background:#9ca3af}.btn-secondary{background:#f9fafb;color:#065f46;box-shadow:0 0 0 1px #94a3b880,0 4px 8px #94a3b826}.btn-secondary:hover{background:#fff;box-shadow:0 0 0 1px #94a3b899,0 6px 12px #94a3b833}.btn-small{padding:6px 14px;font-size:13px}section{margin-bottom:18px}.card{background:#fff;border-radius:18px;padding:18px 20px 20px;box-shadow:0 16px 35px #0f766e14,0 0 0 1px #94a3b840}.card.card-collapsed>:not(.card-header){display:none}.card.card-collapsed .card-header{margin-bottom:0}.card-compact{padding:12px 16px}.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.card-title{font-size:17px;font-weight:700;color:#022c22}.card-subtitle{font-size:13px;color:#6b7280;margin-top:2px}.card-subheading{margin:8px 0 6px;font-size:14px;font-weight:600;color:#111827}.form-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.form-row label{min-width:120px;font-size:13px;color:#374151}.form-row input,.form-row select,.form-row textarea{flex:1 1 0;min-width:0;padding:7px 10px;border-radius:10px;border:1px solid #d1d5db;font-size:14px;color:#111827;background:#fff;outline:none;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.form-row textarea{min-height:80px;resize:vertical}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:#22c55e;box-shadow:0 0 0 1px #22c55e66,0 0 0 4px #bbf7d0cc;background:#f9fffb}.form-row-inline{justify-content:flex-start}.form-row-inline label{min-width:auto}.table-wrapper{margin-top:10px;border-radius:12px;overflow:hidden;border:1px solid #e5e7eb}.table-caption{padding:8px 12px;font-size:13px;color:#4b5563;background:#f9fafb;border-bottom:1px solid #e5e7eb}table{width:100%;border-collapse:collapse;font-size:13px}thead{background:#f3f4f6}th,td{padding:8px 10px;border-bottom:1px solid #e5e7eb;text-align:left}th{font-weight:600;color:#4b5563}tbody tr:nth-child(2n){background:#f9fafb}body.modal-open{overflow:hidden}.modal-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a73;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:auto}.modal-card{width:min(960px,100%);max-height:88vh;overflow:auto}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.modal-actions{justify-content:flex-start;gap:10px}.table-subtext{font-size:11px;color:#6b7280;margin-top:2px}.checklist-table input{width:140px;padding:6px 8px;border-radius:8px;border:1px solid #d1d5db;font-size:13px;color:#111827;background:#fff}.checklist-table input:focus{outline:none;border-color:#22c55e;box-shadow:0 0 0 1px #22c55e59,0 0 0 3px #bbf7d099}.checkbox-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#374151;min-width:0}.checkbox-label input{width:16px;height:16px}.result-box{margin-top:8px;padding:8px 10px;border-radius:10px;background:#ecfdf5;border:1px solid rgba(34,197,94,.4);color:#065f46;font-size:13px}.result-box-small{font-size:12px;padding:6px 8px}.result-box-error{background:#fef2f2;border-color:#ef444480;color:#b91c1c}.hint-text{margin-top:4px;font-size:12px;color:#6b7280}.card-separator{border:none;border-top:1px solid #e5e7eb;margin:16px 0}.role-bar{display:flex;justify-content:space-between;align-items:center;gap:16px}.role-bar-left{display:flex;align-items:baseline;gap:6px}.role-bar-label{font-size:13px;color:#6b7280}.role-bar-value{font-size:14px;font-weight:600;color:#111827}.role-bar-right{display:flex;align-items:center;gap:10px}.role-switcher{display:flex;align-items:center;gap:8px}.role-switcher-label{font-size:13px;color:#6b7280}.role-tabs{display:inline-flex;padding:3px;border-radius:999px;background:#f3f4f6}.role-tab{border:none;background:transparent;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer;color:#4b5563}.role-tab-active{background:#fff;color:#065f46;box-shadow:0 0 0 1px #94a3b8b3,0 3px 6px #94a3b840}.machine-comments-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;align-items:flex-start;margin-top:6px}.machine-comments-right-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.machine-comments-right-title{font-weight:600;font-size:14px;color:#111827}.machine-list{max-height:320px;overflow:auto}.machine-list table{font-size:12px}.app-root.app-mode-desktop{max-width:none;width:min(1880px,calc(100vw - 28px));padding:14px 14px 28px}.app-root.app-mode-desktop .top-bar{border-radius:18px;padding:16px 20px;margin-bottom:14px;background:radial-gradient(circle at 22% 18%,#ffffff8f,#fff0 48%),linear-gradient(112deg,#0f766e,#14b8a6 44%,#bbf7d0);box-shadow:0 16px 36px #0d948847,0 0 0 1px #0f766e38}.app-root.app-mode-desktop .top-title-main{font-size:24px;letter-spacing:.03em;color:#ecfeff}.app-root.app-mode-desktop .top-title-sub{color:#ccfbf1}.app-root.app-mode-desktop .top-bar-right{gap:10px;flex-wrap:wrap;justify-content:flex-end}.app-root.app-mode-desktop .pill-group{gap:6px}.app-root.app-mode-desktop .pill{background:#ffffffbd}.app-root.app-mode-desktop .desktop-shell{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}.app-root.app-mode-desktop .desktop-main{min-width:0}.app-root.app-mode-desktop .desktop-side{position:sticky;top:10px;display:flex;flex-direction:column;gap:12px}.app-root.app-mode-desktop .card{border-radius:14px;padding:14px 16px 16px;box-shadow:0 14px 26px #022c2214,0 0 0 1px #86efac33}.app-root.app-mode-desktop .desktop-mini{border:1px solid rgba(148,163,184,.22);background:linear-gradient(150deg,#fff,#f0fdfaeb)}.app-root.app-mode-desktop .desktop-mini-title{font-size:14px;font-weight:700;color:#064e3b;margin-bottom:3px}.app-root.app-mode-desktop .desktop-mini-subtitle{font-size:12px;color:#4b5563;margin-bottom:8px}.app-root.app-mode-desktop .desktop-kv{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;margin-bottom:6px;border-radius:10px;background:#f8fafc}.app-root.app-mode-desktop .desktop-kv span{font-size:12px;color:#6b7280}.app-root.app-mode-desktop .desktop-kv b{font-size:12px;color:#0f172a}.app-root.app-mode-desktop .desktop-kv-status{color:#334155}.app-root.app-mode-desktop .desktop-kv-status-ok{color:#166534}.app-root.app-mode-desktop .desktop-kv-status-error{color:#b91c1c}.app-root.app-mode-desktop .desktop-side-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0}.app-root.app-mode-desktop .desktop-side-actions .btn{width:100%}.app-root.app-mode-desktop .desktop-side-actions .btn:only-child{grid-column:1 / -1}.app-root.app-mode-desktop .desktop-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.app-root.app-mode-desktop .desktop-role-btn{border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;font-size:12px;font-weight:600;padding:8px 10px;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .08s ease}.app-root.app-mode-desktop .desktop-role-btn:hover{border-color:#22c55e;box-shadow:0 0 0 1px #22c55e59,0 8px 14px #22c55e24;transform:translateY(-1px)}.app-root.app-mode-desktop .desktop-role-btn-active{border-color:#14b8a6;background:#ecfeff;color:#115e59;box-shadow:0 0 0 1px #14b8a661,0 8px 12px #14b8a633}.app-root.app-mode-desktop section{margin-bottom:12px}.app-root.app-mode-desktop .btn{border-radius:10px;padding:8px 12px;font-size:13px}.app-root.app-mode-desktop .btn-small{border-radius:9px;padding:6px 10px;font-size:12px}.app-root.app-mode-desktop .form-row{gap:10px;margin-bottom:8px}.app-root.app-mode-desktop .form-row label{min-width:140px;font-size:12px;font-weight:500;color:#1f2937}.app-root.app-mode-desktop table{font-size:12px}@media(max-width:1380px){.app-root.app-mode-desktop .desktop-shell{grid-template-columns:minmax(0,1fr)}.app-root.app-mode-desktop .desktop-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.app-root.app-mode-desktop .desktop-mini{margin:0}}@media(max-width:900px){.top-bar{flex-direction:column;align-items:flex-start;gap:12px}.machine-comments-layout{grid-template-columns:minmax(0,1fr)}.role-bar{flex-direction:column;align-items:stretch}.role-bar-right{justify-content:space-between}.card-header{flex-direction:column;align-items:flex-start;gap:10px}.card-header>div:last-child{width:100%;justify-content:flex-start;flex-wrap:wrap}.form-row{flex-direction:column;align-items:stretch;gap:8px}.form-row label{min-width:0}.form-row input,.form-row select,.form-row textarea{width:100%}.table-wrapper{overflow-x:auto}table{min-width:560px}th,td{padding:6px 8px;font-size:12px}.btn{padding:8px 12px}.btn-small{padding:6px 10px;font-size:12px}}
