*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0a0a1a;--bg-secondary: #111128;--bg-card: rgba(255, 255, 255, .04);--bg-card-hover: rgba(255, 255, 255, .07);--bg-glass: rgba(255, 255, 255, .06);--border-glass: rgba(255, 255, 255, .1);--text-primary: #f0f0f5;--text-secondary: #8888aa;--text-muted: #555577;--accent: #06b6d4;--accent-glow: rgba(6, 182, 212, .3);--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--radius: 12px;--radius-sm: 8px;--shadow: 0 8px 32px rgba(0, 0, 0, .4);--transition: .3s ease;--font: "Inter", sans-serif;--nav-height: 64px}body.light-theme{--bg-primary: #f1f5f9;--bg-secondary: #ffffff;--bg-card: rgba(255, 255, 255, .85);--bg-card-hover: rgba(255, 255, 255, .98);--bg-glass: rgba(0, 0, 0, .04);--border-glass: rgba(0, 0, 0, .1);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--accent: #0284c7;--accent-glow: rgba(2, 132, 199, .25);--shadow: 0 8px 32px rgba(0, 0, 0, .08)}html{font-size:14px}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden}a{color:var(--accent);text-decoration:none;transition:opacity var(--transition)}a:hover{opacity:.8}button{font-family:var(--font);cursor:pointer;border:none;outline:none;transition:all var(--transition)}input,select,textarea{font-family:var(--font);background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-primary);border-radius:var(--radius-sm);padding:10px 14px;font-size:.95rem;outline:none;transition:border var(--transition)}input:focus,select:focus,textarea:focus{border-color:var(--accent)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='%238888aa'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}select option{background:var(--bg-secondary);color:var(--text-primary)}table{width:100%;border-collapse:collapse}body.light-theme .navbar{background:#ffffffe0}body.light-theme ::-webkit-scrollbar-thumb{background:#0003}html{scroll-behavior:smooth}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.navbar{position:fixed;top:0;left:0;right:0;height:var(--nav-height);background:#0a0a1ad9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-glass);display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:100}.navbar .logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.2rem}.navbar .logo .icon{font-size:28px;color:var(--accent)}.navbar .logo span{background:linear-gradient(135deg,var(--accent),#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.nav-links{display:flex;gap:4px}.nav-links a{padding:8px 16px;border-radius:var(--radius-sm);color:var(--text-secondary);font-weight:500;font-size:.9rem;transition:all var(--transition);display:flex;align-items:center;gap:6px}.nav-links a:hover,.nav-links a.active{color:var(--text-primary);background:var(--bg-glass)}.nav-links a.active{color:var(--accent)}#main-content{padding-top:calc(var(--nav-height) + 24px);padding-bottom:40px;min-height:100vh;max-width:1400px;margin:0 auto;padding-left:24px;padding-right:24px}.card{background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius);padding:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition)}.card:hover{background:var(--bg-card-hover)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-header h2{font-size:1.1rem;font-weight:600}.card-header h3{font-size:1rem;font-weight:600}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius-sm);font-weight:500;font-size:.9rem}.btn-primary{background:linear-gradient(135deg,var(--accent),#0891b2);color:#000}.btn-primary:hover{box-shadow:0 0 20px var(--accent-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-card-hover)}.btn-danger{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:var(--danger)}.btn-danger:hover{background:#ef444440}.btn-sm{padding:6px 12px;font-size:.8rem}.btn-icon{padding:8px;border-radius:var(--radius-sm);background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-secondary)}.btn-icon:hover{color:var(--text-primary);background:var(--bg-card-hover)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{padding:20px;position:relative;overflow:hidden}.stat-card .stat-icon{font-size:40px;opacity:.15;position:absolute;right:16px;top:50%;transform:translateY(-50%)}.stat-card .stat-value{font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--accent),#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.stat-card .stat-label{color:var(--text-secondary);font-size:.85rem;margin-top:4px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.page-header h1{font-size:1.8rem;font-weight:700}.page-header .subtitle{color:var(--text-secondary);font-size:.95rem}.filter-bar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filter-bar input,.filter-bar select{min-width:180px}.search-input{position:relative}.search-input input{padding-left:36px;width:280px}.search-input .material-icons-round{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:18px;color:var(--text-muted)}.jc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}@media(min-width:1024px){.jc-grid{grid-template-columns:repeat(3,1fr)}}.jc-card{cursor:pointer;position:relative}.jc-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.jc-card .jc-name{font-size:1.15rem;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:8px}.jc-card .jc-type-badge{background:linear-gradient(135deg,var(--accent),#0891b2);color:#000;padding:2px 10px;border-radius:20px;font-size:.75rem;font-weight:700}.jc-card .jc-meta{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font-size:.85rem}.jc-card .jc-meta-row{display:flex;align-items:center;gap:6px}.jc-card .jc-meta-row .material-icons-round{font-size:16px;color:var(--text-muted)}.jc-card .jc-actions{display:flex;gap:8px;margin-top:12px}.detail-header{margin-bottom:24px}.detail-header .back-btn{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary);font-size:.9rem;margin-bottom:12px}.detail-header .back-btn:hover{color:var(--text-primary)}.detail-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:24px}.detail-info .info-item{display:flex;flex-direction:column;gap:4px}.detail-info .info-label{color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.detail-info .info-value{font-weight:500}.legend-section{margin-bottom:24px}.legend-table{width:100%}.legend-table th{background:var(--bg-glass);padding:10px 14px;text-align:left;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--border-glass)}.legend-table td{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.04);font-size:.9rem}.legend-table .cable-label{font-weight:700;font-size:1rem;width:50px;text-align:center}.tray-section{margin-bottom:20px}.tray-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,#06b6d41a,#a855f70d);border:1px solid var(--border-glass);border-radius:var(--radius) var(--radius) 0 0;cursor:pointer}.tray-header h3{font-size:.95rem;font-weight:600;display:flex;align-items:center;gap:8px}.tray-header .tray-count{font-size:.8rem;color:var(--text-secondary);font-weight:400}.tray-body{border:1px solid var(--border-glass);border-top:none;border-radius:0 0 var(--radius) var(--radius);overflow-x:auto}.splice-table{width:100%;border-collapse:collapse}.splice-table thead{background:#04cece08}.splice-table th{padding:12px 14px;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-weight:600;white-space:nowrap;text-align:center}.splice-table .side-a-header{background:#ffffff0a;text-align:center}.splice-table .bridge-header{background:#ffffff0a;text-align:center;width:60px}.splice-table .side-b-header{background:#ffffff0a;text-align:center}.splice-table td{padding:2px 14px;border-bottom:1px solid rgba(255,255,255,.03);font-size:.9rem;vertical-align:middle;text-align:center}.splice-table .cable-cell{font-weight:700;text-align:center}.splice-table .tube-cell,.splice-table .core-cell{text-align:center;font-weight:700;padding:2px 4px}.splice-table .color-badge{display:inline-block;width:100%;padding:4px 10px;border-radius:6px;font-weight:700;border:1px solid rgba(0,0,0,.2);box-shadow:inset 0 1px #ffffff40}.splice-table .bridge-cell{text-align:center;color:var(--text-muted);font-weight:700;font-size:1.1rem}.splice-table .ket-cell{color:var(--text-secondary);font-size:.85rem;text-align:center}.splice-table .status-cell .status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.splice-table .status-active{background:var(--success)}.splice-table .status-unused{background:var(--text-muted)}.splice-table .status-damaged{background:var(--danger)}.splice-table tr:hover td{background:#ffffff05}.splice-table .actions-cell{white-space:nowrap;text-align:center;width:90px}body.light-theme .splice-table td{border-bottom:1px solid rgba(0,0,0,.1)}body.light-theme .splice-table th{border-bottom:2px solid rgba(0,0,0,.15)}body.light-theme .splice-table thead,body.light-theme .splice-table tr:hover td{background:#00000008}body.light-theme .legend-table td{border-bottom:1px solid rgba(0,0,0,.08)}body.light-theme .legend-table th{border-bottom:2px solid rgba(0,0,0,.12)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.form-group input,.form-group select,.form-group textarea{width:100%}.form-actions{display:flex;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border-glass)}.cable-editor{margin-top:24px}.cable-row{display:grid;grid-template-columns:60px 1fr 80px 80px 1fr 40px;gap:10px;align-items:end;margin-bottom:10px}.cable-row .form-group{margin-bottom:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s ease}.modal{position:relative;background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius);padding:28px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;animation:slideUp .3s ease}.modal-close-btn{position:absolute;top:16px;right:16px;background:#ffffff0f;border:1px solid var(--border-glass);color:var(--text-secondary);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10}.modal-close-btn:hover{background:#ef444433;color:var(--danger);border-color:#ef444466}.modal h2{font-size:1.2rem;margin-bottom:20px;padding-right:32px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#toast-container{position:fixed;bottom:24px;right:24px;z-index:300;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 20px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;animation:slideIn .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-glass)}.toast-success{background:#22c55e26;color:var(--success);border-color:#22c55e4d}.toast-error{background:#ef444426;color:var(--danger);border-color:#ef44444d}.toast-info{background:#06b6d426;color:var(--accent);border-color:#06b6d44d}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:16px;color:var(--text-secondary)}.spinner{width:36px;height:36px;border:3px solid var(--border-glass);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state .material-icons-round{font-size:64px;opacity:.2;margin-bottom:16px}.empty-state p{margin-bottom:20px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}.settings-list{list-style:none}.settings-list li{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(12,211,211,.04)}.settings-list li:last-child{border-bottom:none}.add-item-row{display:flex;gap:8px;margin-top:12px}.add-item-row input{flex:1}.navbar-clock{display:flex;align-items:center;gap:10px;background:var(--bg-glass);border:1px solid var(--border-glass);padding:6px 16px;border-radius:20px;font-size:.85rem;color:var(--text-secondary);box-shadow:inset 0 1px 1px #ffffff0d}.navbar-clock .time-icon{display:flex;align-items:center;justify-content:center}@keyframes pulse-slow{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}@media(max-width:768px){.navbar{padding:0 12px}.nav-links a span.nav-text{display:none}.navbar-clock{padding:4px 10px;font-size:.8rem;gap:6px}.navbar-clock .date-text,.navbar-clock .clock-divider{display:none}#main-content{padding-left:12px;padding-right:12px}.page-header h1{font-size:1.4rem}.cable-row{grid-template-columns:1fr 1fr}.filter-bar input,.filter-bar select{min-width:140px}.search-input input{width:100%}}.form-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:24px}@media(min-width:600px){.form-grid{grid-template-columns:1fr 1fr}}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.form-actions{display:flex;align-items:center;gap:12px;margin-top:24px}.print-only-legend{display:none}@media print{.navbar,.filter-bar,#pagination-controls,.btn,.btn-icon,.form-actions,.jc-actions,.empty-state a.btn,#rekap-log-section,.actions-cell,.splice-actions-header,.splice-actions-cell,#bg-canvas{display:none!important}body{background:#fff!important}.print-only-legend{display:block!important;margin-bottom:24px;page-break-inside:avoid}body{background:#fff!important;color:#000!important;margin:0;padding:0}.card,.jc-card{background:#fff!important;border:1px solid #dddddd!important;color:#000!important;page-break-inside:avoid;box-shadow:none!important;margin-bottom:12px}#main-content{padding:0!important;margin:0!important;width:100%!important;max-width:100%!important}.jc-grid{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:16px!important}.jc-card img{object-fit:cover!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}table,.legend-table,.splice-table{border-collapse:collapse!important;width:100%!important;margin-bottom:16px!important}th,td{border:1px solid #cccccc!important;color:#000!important;background:#fff!important;padding:8px!important;font-size:10pt!important}.page-header h1,.stat-card .stat-value,.navbar .logo span{-webkit-text-fill-color:#000000!important;background:none!important;color:#000!important}.jc-type-badge{border:1px solid #000!important;background:none!important;color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.tray-section{page-break-before:always!important;page-break-inside:avoid!important}.tray-body{display:block!important}.color-badge{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.text-secondary,.jc-meta{color:#333!important}@page{size:auto;margin:15mm}}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:.78rem;font-weight:600;white-space:nowrap}.badge-success{background:#22c55e26;color:#4ade80;border:1px solid rgba(34,197,94,.3)}.badge-danger{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.badge-info{background:#06b6d426;color:#38bdf8;border:1px solid rgba(6,182,212,.3)}.badge-warning{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.core-status-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:12px}.cable-status-card{background:#00000040;border:1px solid var(--border-glass);border-radius:var(--radius-sm);padding:16px;display:flex;flex-direction:column;gap:12px}.cable-status-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--border-glass)}.tube-group-container{display:flex;flex-direction:column;gap:12px}.tube-status-box{background:#ffffff05;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:10px}.tube-status-title{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;margin-bottom:8px}.core-pill-grid{display:flex;flex-wrap:wrap;gap:6px}.core-pill-item{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:4px;font-size:.78rem;font-weight:600;border:1px solid rgba(0,0,0,.25);box-shadow:0 1px 3px #0003;transition:transform .15s ease}.core-pill-item:hover{transform:translateY(-1px)}.core-pill-item.is-connected{opacity:.6;filter:grayscale(35%);position:relative;text-decoration:line-through;text-decoration-color:#fffc}.core-pill-item.is-available{border:1.5px solid #22c55e;box-shadow:0 0 6px #22c55e4d}.core-pill-tag{font-size:.68rem;padding:1px 4px;border-radius:3px;background:#0006;font-weight:500;text-decoration:none;display:inline-block}.splice-side-info{margin-top:8px;font-size:.8rem;padding:6px 10px;border-radius:6px;background:#00000040;border:1px solid var(--border-glass)}
