html,body{overflow-x:hidden;max-width:100%;scroll-behavior:smooth}.cd-overlay{position:fixed;inset:0;z-index:50;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:cdOverlayIn .18s ease}.cd-overlay--z60{z-index:60}.cd-overlay--z70{z-index:70}@keyframes cdOverlayIn{0%{opacity:0}to{opacity:1}}.cd-modal{background:#fff;border-radius:1.125rem;box-shadow:0 25px 60px #00000038,0 8px 20px #0000001f;width:100%;max-width:740px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:cdModalIn .22s cubic-bezier(.34,1.56,.64,1);position:relative}.cd-modal--sm{max-width:560px}.cd-modal--xs{max-width:400px}@keyframes cdModalIn{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.dark .cd-modal{background:#1e2330;box-shadow:0 25px 60px #0000008c,0 8px 20px #00000059}.cd-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.75rem;border-bottom:1px solid #f0f0f5;gap:1rem;flex-shrink:0}.cd-header--compact{padding:1rem 1.5rem}.dark .cd-header{border-bottom-color:#2d3148}.cd-header__left{display:flex;align-items:center;gap:1rem;min-width:0}.cd-header__right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.cd-header__title{font-size:1.2rem;font-weight:700;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;line-height:1.3}.cd-header__title--sm{font-size:1rem}.dark .cd-header__title{color:#f3f4f6}.cd-header__subtitle{font-size:.78rem;color:#8892a4;margin:0;font-family:Courier New,monospace;letter-spacing:.04em}.cd-avatar{width:52px;height:52px;border-radius:50%;flex-shrink:0;overflow:hidden;background:linear-gradient(135deg,#ede9fe,#c4b5fd);border:2.5px solid #a78bfa;display:flex;align-items:center;justify-content:center;color:#7c3aed}.cd-avatar--orange{background:linear-gradient(135deg,#fff7ed,#fed7aa);border-color:#fb923c;color:#ea580c}.cd-avatar img{width:100%;height:100%;object-fit:cover}.cd-close-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:none;background:#f3f4f6;color:#6b7280;cursor:pointer;transition:background .18s,color .18s,transform .18s}.cd-close-btn:hover{background:#ede9fe;color:#7c3aed;transform:rotate(90deg)}.dark .cd-close-btn{background:#2d3148;color:#9ca3af}.dark .cd-close-btn:hover{background:#3b1d8b;color:#a78bfa}.cd-body{padding:1.5rem 1.75rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:1.25rem}.cd-body--sm{padding:1.25rem 1.5rem}.cd-body::-webkit-scrollbar{width:5px}.cd-body::-webkit-scrollbar-track{background:transparent}.cd-body::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:99px}.cd-body::-webkit-scrollbar-thumb:hover{background:#c4b5fd}.dark .cd-body::-webkit-scrollbar-thumb{background:#2d3148}.cd-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.875rem;padding:1.125rem 1.25rem;transition:box-shadow .2s}.cd-section:hover{box-shadow:0 2px 10px #7c3aed12}.dark .cd-section{background:#ffffff08;border-color:#2d3148}.cd-section__header{display:flex;align-items:center;gap:.625rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #ede9fe}.dark .cd-section__header{border-bottom-color:#2d3148}.cd-section__icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;flex-shrink:0}.cd-section__icon--purple{background:#ede9fe;color:#7c3aed}.cd-section__icon--blue{background:#eff6ff;color:#2563eb}.cd-section__icon--teal{background:#ecfeff;color:#0891b2}.cd-section__icon--green{background:#ecfdf5;color:#059669}.dark .cd-section__icon--purple{background:#7c3aed33;color:#a78bfa}.dark .cd-section__icon--blue{background:#2563eb26;color:#60a5fa}.dark .cd-section__icon--teal{background:#0891b226;color:#22d3ee}.dark .cd-section__icon--green{background:#05966926;color:#34d399}.cd-section__title{font-size:.9rem;font-weight:700;color:#374151;margin:0}.dark .cd-section__title{color:#e5e7eb}.cd-grid{display:grid;gap:1rem 1.5rem}.cd-grid--2{grid-template-columns:repeat(2,1fr)}@media(max-width:520px){.cd-grid--2{grid-template-columns:1fr}}.cd-field{display:flex;flex-direction:column;gap:.25rem}.cd-field--full{grid-column:1/-1}.cd-field__label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#9ca3af}.dark .cd-field__label{color:#6b7280}.cd-field__value{font-size:.875rem;color:#374151;font-weight:500}.cd-field__value--large{font-size:1rem;font-weight:600;color:#111827}.cd-field__value--mono{font-family:Courier New,monospace;font-size:.825rem}.cd-field__value--purple{color:#7c3aed}.cd-field__value--tag{display:inline-block;background:#ede9fe;color:#7c3aed;padding:.2rem .6rem;border-radius:6px;font-size:.78rem;font-family:Courier New,monospace;width:fit-content}.dark .cd-field__value{color:#d1d5db}.dark .cd-field__value--large{color:#f9fafb}.dark .cd-field__value--purple{color:#a78bfa}.dark .cd-field__value--tag{background:#7c3aed33;color:#c4b5fd}.cd-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;border:1px solid}.cd-badge--pending{background:#fef9c3;color:#854d0e;border-color:#fef08a}.badge-active{background:#dcfce7;color:#166534;border-color:#bbf7d0}.badge-blocked{background:#fee2e2;color:#991b1b;border-color:#fecaca}.badge-implantation{background:#fef9c3;color:#854d0e;border-color:#fef08a}.badge-test{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}.badge-unknown{background:#f3f4f6;color:#374151;border-color:#e5e7eb}.dark .cd-badge--pending{background:#ca8a0426;color:#fbbf24;border-color:#fbbf2440}.dark .badge-active{background:#16a34a26;color:#4ade80;border-color:#4ade8040}.dark .badge-blocked{background:#dc262626;color:#f87171;border-color:#f8717140}.dark .badge-implantation{background:#ca8a0426;color:#fbbf24;border-color:#fbbf2440}.dark .badge-test{background:#2563eb26;color:#60a5fa;border-color:#60a5fa40}.cd-input{width:100%;padding:.55rem .875rem;border:1.5px solid #e5e7eb;border-radius:.625rem;background:#fff;color:#374151;font-size:.875rem;transition:border-color .18s,box-shadow .18s;outline:none;box-sizing:border-box}.cd-input:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1f}.cd-input--mono{font-family:Courier New,monospace;font-size:.78rem;padding-right:2.5rem}.cd-input--qty{width:64px;text-align:center;padding:.4rem .5rem}.cd-input--readonly{background:#f9fafb;cursor:default;color:#6b7280}.cd-input--success{color:#7c3aed;font-weight:600;background:#faf5ff;border-color:#c4b5fd}.cd-input--danger{color:#dc2626;border-color:#fca5a5}.dark .cd-input{background:#1e2330;border-color:#374151;color:#e5e7eb}.dark .cd-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf626}.dark .cd-input--readonly{background:#111827;color:#6b7280}.cd-select{width:100%;padding:.55rem .875rem;border:1.5px solid #e5e7eb;border-radius:.625rem;background:#fff;color:#374151;font-size:.875rem;outline:none;cursor:pointer;transition:border-color .18s}.cd-select:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1f}.dark .cd-select{background:#1e2330;border-color:#374151;color:#e5e7eb}.cd-form-group{display:flex;flex-direction:column;gap:.35rem}.cd-form-row{display:flex;gap:.875rem;flex-wrap:wrap}.cd-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#9ca3af}.cd-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:500;color:#374151;cursor:pointer}.cd-checkbox-label--bold{font-weight:700;color:#111827}.dark .cd-checkbox-label{color:#d1d5db}.cd-checkbox{width:15px;height:15px;accent-color:#7c3aed;cursor:pointer;flex-shrink:0}.cd-divider{height:1px;background:#e5e7eb;margin:.25rem 0}.dark .cd-divider{background:#2d3148}.cd-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.125rem;border-radius:.625rem;border:none;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .18s,transform .12s,box-shadow .18s;white-space:nowrap;flex-shrink:0}.cd-btn:active:not(:disabled){transform:scale(.97)}.cd-btn:disabled{opacity:.5;cursor:not-allowed}.cd-btn--purple{background:#7c3aed;color:#fff}.cd-btn--purple:hover:not(:disabled){background:#6d28d9;box-shadow:0 4px 14px #7c3aed59}.cd-btn--green{background:#059669;color:#fff}.cd-btn--green:hover:not(:disabled){background:#047857;box-shadow:0 4px 14px #0596694d}.cd-btn--blue{background:#2563eb;color:#fff}.cd-btn--blue:hover:not(:disabled){background:#1d4ed8}.cd-btn--red{background:#dc2626;color:#fff}.cd-btn--red:hover:not(:disabled){background:#b91c1c}.cd-btn--outline-blue{background:#eff6ff;color:#2563eb;border:1.5px solid #bfdbfe}.cd-btn--outline-blue:hover:not(:disabled){background:#dbeafe}.cd-btn--ghost{background:transparent;color:#6b7280;border:1.5px solid #e5e7eb}.cd-btn--ghost:hover:not(:disabled){background:#f9fafb;color:#374151}.dark .cd-btn--ghost{border-color:#374151;color:#9ca3af}.dark .cd-btn--ghost:hover:not(:disabled){background:#1f2937;color:#d1d5db}.dark .cd-btn--outline-blue{background:#2563eb1a;color:#60a5fa;border-color:#60a5fa4d}.cd-icon-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:7px;border:none;cursor:pointer;transition:background .18s,transform .12s}.cd-icon-btn:active{transform:scale(.9)}.cd-icon-btn--red{background:#fee2e2;color:#dc2626}.cd-icon-btn--red:hover{background:#fecaca}.dark .cd-icon-btn--red{background:#dc262626;color:#f87171}.cd-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:1rem 1.75rem;border-top:1px solid #f0f0f5;background:#fcfcfd;flex-shrink:0}.cd-actions--compact{padding:.875rem 1.5rem}.dark .cd-actions{border-top-color:#2d3148;background:#ffffff05}.cd-actions__status{display:flex;flex-wrap:wrap;gap:.5rem}.cd-actions__right{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;margin-left:auto}.cd-status-btn{padding:.35rem .875rem;font-size:.75rem;font-weight:700;border-radius:.5rem;border:none;cursor:pointer;color:#fff;transition:opacity .18s,transform .12s,box-shadow .18s;display:inline-flex;align-items:center;gap:.35rem}.cd-status-btn:hover:not(:disabled){opacity:.88;box-shadow:0 2px 8px #0003}.cd-status-btn:active:not(:disabled){transform:scale(.95)}.cd-status-btn--current{opacity:.45!important;cursor:not-allowed!important}.cd-status-btn:disabled{cursor:not-allowed}.cd-status-btn--green{background:#059669}.cd-status-btn--yellow{background:#d97706}.cd-status-btn--blue{background:#2563eb}.cd-status-btn--red{background:#dc2626}.cd-user-list,.cd-machine-list{display:flex;flex-direction:column;gap:.625rem}.cd-user-card,.cd-machine-card{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border:1.5px solid #e5e7eb;border-radius:.75rem;background:#fff;transition:border-color .18s,box-shadow .18s}.cd-user-card:hover,.cd-machine-card:hover{border-color:#c4b5fd;box-shadow:0 2px 8px #7c3aed14}.dark .cd-user-card,.dark .cd-machine-card{background:#ffffff08;border-color:#2d3148}.dark .cd-user-card:hover,.dark .cd-machine-card:hover{border-color:#7c3aed}.cd-user-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:700;flex-shrink:0}.cd-user-info{flex:1;min-width:0}.cd-user-name{font-size:.875rem;font-weight:600;color:#111827;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cd-user-login{font-size:.75rem;color:#9ca3af;margin:0;font-family:Courier New,monospace}.dark .cd-user-name{color:#f3f4f6}.cd-user-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.cd-machine-icon{width:38px;height:38px;border-radius:9px;background:linear-gradient(135deg,#eff6ff,#bfdbfe);color:#2563eb;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dark .cd-machine-icon{background:#2563eb26;color:#60a5fa}.cd-machine-info{flex:1;min-width:0}.cd-machine-name{font-size:.875rem;font-weight:600;color:#111827;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cd-machine-sub{font-size:.75rem;color:#9ca3af;margin:0}.dark .cd-machine-name{color:#f3f4f6}.cd-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:.75rem;color:#9ca3af;text-align:center}.cd-empty-state p{margin:0;font-size:.9rem}.cd-empty-state--error{color:#ef4444}.dark .cd-empty-state{color:#6b7280}.cd-confirm-icon{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:#fee2e2;color:#dc2626;margin:1.5rem auto 0}.dark .cd-confirm-icon{background:#dc262626;color:#f87171}.cd-confirm-title{font-size:1.05rem;font-weight:700;color:#111827;text-align:center;margin:.875rem 1.5rem 0}.cd-confirm-text{font-size:.85rem;color:#6b7280;text-align:center;margin:.5rem 1.5rem 1rem;line-height:1.6}.dark .cd-confirm-title{color:#f3f4f6}.cd-confirm-actions{display:flex;gap:.75rem;justify-content:center;padding:.875rem 1.5rem 1.5rem;border-top:1px solid #f3f4f6}.dark .cd-confirm-actions{border-top-color:#2d3148}.cd-toast{position:absolute;top:1rem;left:50%;transform:translate(-50%) translateY(-12px);min-width:240px;max-width:380px;padding:.65rem 1rem;border-radius:.625rem;font-size:.82rem;font-weight:600;display:flex;align-items:center;gap:.5rem;z-index:999;pointer-events:none;opacity:0;transition:opacity .25s,transform .25s;box-shadow:0 4px 20px #00000026;white-space:nowrap}.cd-toast--visible{opacity:1;transform:translate(-50%) translateY(0)}.cd-toast--success{background:#059669;color:#fff}.cd-toast--error{background:#dc2626;color:#fff}.cd-toast--warning{background:#d97706;color:#fff}.cd-toast__icon{display:flex;align-items:center;flex-shrink:0}.cd-footer-id{text-align:right;font-size:.7rem;color:#d1d5db;padding-top:.25rem}.cd-footer-id__value{font-family:Courier New,monospace}.dark .cd-footer-id{color:#4b5563}.cd-token-area{display:flex;flex-direction:column;gap:.875rem}.cd-token-row{display:flex;gap:.75rem;align-items:flex-end}.cd-token-display{position:relative;display:flex}.cd-token-copy-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#9ca3af;cursor:pointer;padding:.25rem;transition:color .18s}.cd-token-copy-btn:hover:not(:disabled){color:#7c3aed}.cd-token-copy-btn:disabled{opacity:.4;cursor:not-allowed}.cd-term-fields{margin-top:.75rem;display:flex;flex-direction:column;gap:.875rem}.cd-equip-list{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#f9fafb;border-radius:.625rem;border:1px solid #e5e7eb}.cd-equip-item{display:flex;align-items:center;justify-content:space-between;gap:1rem}.dark .cd-equip-list{background:#ffffff05;border-color:#2d3148}.cd-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#7c3aed;border-radius:50%;animation:cdSpin .7s linear infinite}.cd-spinner-sm{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:cdSpin .7s linear infinite;display:inline-block}.cd-spinner-sm--white{border-top-color:#fff}@keyframes cdSpin{to{transform:rotate(360deg)}}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:.75rem}.table-responsive::-webkit-scrollbar{height:4px}.table-responsive::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:99px}.table-responsive::-webkit-scrollbar-thumb:hover{background:#c4b5fd}@media(max-width:767px){.page-title{font-size:1.35rem!important}.page-subtitle{display:none!important}}@media(max-width:639px){.summary-grid{grid-template-columns:1fr!important;gap:.75rem!important}}@media(max-width:767px){.page-header{margin-bottom:1rem!important;flex-wrap:wrap;gap:.75rem}.page-header h1{font-size:1.35rem!important;line-height:1.3}.page-header p{font-size:.75rem!important;margin-top:.15rem}}@media(max-width:639px){.cd-modal{max-width:100%!important;max-height:95vh!important;border-radius:1.125rem 1.125rem 0 0!important;margin:0!important;align-self:flex-end}.cd-overlay{align-items:flex-end!important;padding:0!important}.cd-header,.cd-body{padding:1rem 1.25rem!important}.cd-actions{padding:.75rem 1.25rem!important;flex-direction:column}.cd-actions__right{width:100%;justify-content:stretch}.cd-actions__right .cd-btn{flex:1;justify-content:center}.cd-actions__status{width:100%;justify-content:stretch}.cd-actions__status .cd-status-btn{flex:1;justify-content:center}.cd-grid--2{grid-template-columns:1fr!important}}app-side-bar aside{transition:transform .3s cubic-bezier(.4,0,.2,1)}@media(max-width:767px){.bottom-safe{padding-bottom:env(safe-area-inset-bottom,0px)}}
