:root{--text-color-light:#333333;--text-color-dark:#ffffff;--table-border-light:#333333;--table-border-dark:#ffffff;--chart-grid-light:#cccccc;--chart-grid-dark:#666666;--chart-title-light:#333333;--chart-title-dark:#aaaaaa;--chart-label-light:#333333;--chart-label-light:#333333;--chart-label-dark:#aaaaaa;--scrollbar-track-light:#f5f5f5;--scrollbar-track-dark:#2d2d2d;--scrollbar-thumb-light:#cccccc;--scrollbar-thumb-dark:#555555;--scrollbar-thumb-hover-light:#aaaaaa;--scrollbar-thumb-hover-dark:#777777}#drive-section::-webkit-scrollbar{width:6px;height:6px}#drive-section::-webkit-scrollbar-track{background:0 0}#drive-section::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-light);border-radius:10px}#drive-section::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-light)}body.dark #drive-section::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-dark)}body.dark #drive-section::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover-dark)}body{font-family:Arial,sans-serif;margin:20px;display:flex;justify-content:center}.container{width:100%;margin:0 auto;padding:10px;box-sizing:border-box;display:flex;flex-direction:column;min-height:95vh}.section{margin-bottom:20px;max-width:100%!important}.hidden{display:none!important}.okapi-line{display:flex;align-items:center;white-space:nowrap}.okapi-img{height:30px;width:30px;margin-left:3px}#base-dir-label,#save-dir-label{display:flex;align-items:center;width:100%;gap:8px}input#base-dir,input#save-dir{flex:1;min-width:0}body.light{background-color:#fff;color:#333}body.light button:not(.swal2-confirm):not(.swal2-deny):not(.swal2-styled){background-color:#e0e0e0;color:#333;border:1px solid #ccc;cursor:pointer;transition:background-color .2s,transform .1s}body.light button:not(.swal2-confirm):not(.swal2-deny):not(.swal2-styled):hover:enabled{background-color:#d0d0d0;transform:scale(1.05)}body.light button:not(.swal2-confirm):not(.swal2-deny):not(.swal2-styled):enabled{opacity:1}body.light button:not(.swal2-confirm):not(.swal2-deny):not(.swal2-styled):disabled{background-color:#f0f0f0;color:#999;border:1px solid #ddd;cursor:not-allowed;opacity:.6}body.light input[type=text]{background-color:#fff;color:#333;border:1px solid #ccc;transition:border-color .2s}body.light input[type=text]:hover:enabled{border-color:#999}body.light input[type=text]:enabled{opacity:1}body.light input[type=text]:disabled{background-color:#f0f0f0;color:#999;border:1px solid #ddd;cursor:not-allowed;opacity:.6}body.light input[type=checkbox]{accent-color:#333333;border:1px solid #ccc;cursor:pointer}body.light input[type=checkbox]:hover:enabled{border-color:#999}body.light input[type=checkbox]:disabled{opacity:.6;cursor:not-allowed}body.light input[type=radio]{accent-color:#333333;border:1px solid #ccc;cursor:pointer}body.light input[type=radio]:hover:enabled{border-color:#999}body.light input[type=radio]:disabled{opacity:.6;cursor:not-allowed}body.light select{background-color:#fff;color:#333;border:1px solid #ccc;cursor:pointer;transition:border-color .2s}body.light select:hover:enabled{border-color:#999}body.light select:enabled{opacity:1}body.light select:disabled{background-color:#f0f0f0;color:#999;border:1px solid #ddd;cursor:not-allowed;opacity:.6}body.light .button-group{display:flex;gap:5px}body.light .button-group button{padding:5px 10px;border:1px solid #333;border-radius:4px;cursor:pointer}body.light .button-group button:hover:not(.selected){background-color:#aaa;color:var(--text-color-light)}body.light .button-group button:disabled{cursor:not-allowed;opacity:.6;background-color:#aaa;color:var(--text-color-light)}body.light .button-group button.selected{font-weight:700;background-color:#ec0808ef!important;color:var(--text-color-dark)!important}body.light option{background-color:#fff;color:#333}body.dark{background-color:#333;color:#eee}body.dark button:not(.swal2-confirm):not(.swal2-deny):not(.swal2-styled){background-color:#555;color:#eee;border:1px solid #aaa;cursor:pointer;transition:background-color .2s,transform .1s}body.dark button:not(.swal2-confirm):not(.swal2-deny):not(.swal2-styled):hover:enabled{background-color:#666;transform:scale(1.05)}body.dark button:not(.swal2-confirm):not(.swal2-deny):not(.swal2-styled):enabled{opacity:1}body.dark button:not(.swal2-confirm):not(.swal2-deny):not(.swal2-styled):disabled{background-color:#3a3a3a;color:#777;border:1px solid #555;cursor:not-allowed;opacity:.6}body.dark input[type=text]{background-color:#444;color:#eee;border:1px solid #666;transition:border-color .2s}body.dark input[type=text]:hover:enabled{border-color:#888}body.dark input[type=text]:enabled{opacity:1}body.dark input[type=text]:disabled{background-color:#3a3a3a;color:#777;border:1px solid #555;cursor:not-allowed;opacity:.6}body.dark input[type=number]{background-color:#444;color:#eee;border:1px solid #666;transition:border-color .2s}body.dark input[type=number]:hover:enabled{border-color:#888}body.dark input[type=number]:enabled{opacity:1}body.dark input[type=number]:disabled{background-color:#3a3a3a;color:#777;border:1px solid #555;cursor:not-allowed;opacity:.6}body.dark input[type=checkbox]{accent-color:#eeeeee;border:1px solid #666;cursor:pointer}body.dark input[type=checkbox]:hover:enabled{border-color:#888}body.dark input[type=checkbox]:disabled{opacity:.6;cursor:not-allowed}body.dark input[type=radio]{accent-color:#eeeeee;border:1px solid #666;cursor:pointer}body.dark input[type=radio]:hover:enabled{border-color:#888}body.dark input[type=radio]:disabled{opacity:.6;cursor:not-allowed}body.dark select{background-color:#444;color:#eee;border:1px solid #aaa;cursor:pointer;transition:border-color .2s}body.dark select:hover:enabled{border-color:#888}body.dark select:enabled{opacity:1}body.dark select:disabled{background-color:#3a3a3a;color:#777;border:1px solid #555;cursor:not-allowed;opacity:.6}body.dark option{background-color:#444;color:#eee}body.dark .button-group{display:flex;gap:5px}body.dark .button-group button{padding:5px 10px;border:1px solid #333;border-radius:4px;cursor:pointer}body.dark .button-group button:hover:not(.selected){background-color:#555;color:var(--text-color-dark)}body.dark .button-group button:disabled{cursor:not-allowed;opacity:.6;background-color:#555;color:var(--text-color-dark)}body.dark .button-group button.selected{font-weight:700;background-color:#e2e382!important;color:var(--text-color-light)!important}.top-left{display:block;position:fixed;top:20px;left:1.3vw;max-width:23.5vw;box-sizing:border-box}body.dark #drive-section{scrollbar-color:var(--scrollbar-thumb-dark) transparent}.top-left .flex-group{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.top-left>:not(.flex-group){margin-left:10px}.top-right{display:block;position:fixed;top:var(--dynamic-top,0);right:1vw;max-width:23.5vw!important;box-sizing:border-box}.title-place{position:static;display:flex;flex-direction:column;align-items:flex-start}.title-place h1{margin:0;font-family:Arial,sans-serif;line-height:1.2;font-size:1.1rem}#htbio{font-size:1.95rem!important}.light .title-place{color:var(--text-color-light)}.dark .title-place{color:var(--text-color-dark)}.toggle-container{width:60px;height:30px;background-color:#ccc;border-radius:15px;margin-left:20px;position:static;cursor:pointer;box-shadow:inset 0 2px 4px rgba(0,0,0,.2)}.toggle-button{width:27px;height:27px;background-color:#fff;border-radius:50%;position:static;transition:transform .3s,background-color .3s;display:flex;justify-content:center;align-items:center;box-shadow:0 2px 4px rgba(0,0,0,.3)}.toggle-button::before{content:'☀️';font-size:20px}.dark .toggle-button::before{content:'🌙'}.dark .toggle-button{background-color:#1e3a8a}.toggle-button.active{transform:translateX(30px)}#init-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;max-width:50vw;width:100%;text-align:center}#init-prompt.hidden{display:none}#init-prompt button{padding:10px 20px;font-size:16px;cursor:pointer}#init-button:hover{background:#2980b9;transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.15)}#prompt-message{color:#34495e!important;font-size:1rem!important;margin-bottom:1.5rem!important}#main-content.hidden{display:none}#main-content{max-width:50vw;width:100%;margin:0 auto;box-sizing:border-box;flex:1 0 auto}#cal-json-exp-section,#cal-json-sel-section,#data-display-section,#derived-concentration-section,#export-analysis,#export-coef,#full-display-section,#kinetics-lines,#log-hid-data,#point-json-exp-section,#range-display,#select-quantity-section,#select-regress-algo,#select-time-point,#set-exp-point-section,#window-size-section,[id^=concentration-reader-section]{display:block}table{border-collapse:collapse;width:100%}td,th{border:1px solid #ddd;padding:8px;text-align:left}th{background-color:#f2f2f2}#file-table button,#json-table button{cursor:pointer}.table{border-collapse:collapse;margin-top:10px}.table td,.table th{padding:10px;border:1px solid;text-align:left}.light .table{border-color:var(--table-border-light)}.dark .table{border-color:var(--table-border-dark)}.light .table .selected{background-color:#e0f7fa}.dark .table .selected{background-color:#566283}.table th{background-color:#f0f0f0}.dark .table th{background-color:#555}.table td{color:var(--text-color-light)}.dark .table td{color:var(--text-color-dark)}body.light #swal-edit-table tr.selected{background-color:#e6f2ff!important}body.dark #swal-edit-table tr.selected{background-color:#566283!important}body.light #swal-edit-table tr.selected td{background-color:#e6f2ff!important}body.dark #swal-edit-table tr.selected td{background-color:#566283!important}#swal-edit-table td{word-break:break-word;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#swal-edit-table th{min-width:80px}.analysis-cell{border:1px solid #ddd;padding:8px;text-align:left}.dir-blocks,.display{max-height:300px;overflow-y:auto;width:100%;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}#file-table-container{overflow-y:auto;max-height:120px;width:100%;margin:20px auto;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.dir-blocks{max-height:200px}#directory{width:70%}#dir-suggestions,#dir-suggestions-top{margin-top:5px}.dir-blocks h3{margin:0;font-size:1em;font-weight:700}.dir-blocks div{padding:5px;cursor:pointer}.dir-blocks div:hover{background-color:#f0f0f0;color:var(--text-color-light);max-width:100%;overflow-wrap:anywhere}.scrollbar-style::-webkit-scrollbar{width:2px;height:2px}.scrollbar-style::-webkit-scrollbar-track{background:var(--scrollbar-track)}.scrollbar-style::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:4px;opacity:.7}.light .scrollbar-style{--scrollbar-track:#f0f0f0;--scrollbar-thumb:rgba(0, 0, 0, 0.3)}.dark .scrollbar-style{--scrollbar-track:#2a2a2a;--scrollbar-thumb:rgba(255, 255, 255, 0.4)}.utility-btn{margin-top:5px;padding:5px 10px}#mode-toggle{margin-bottom:10px}.script-controls{margin-top:10px}#plot-canvas{width:100%;height:280px}#chart-container{overflow-y:auto;height:40%;position:relative;max-height:600px;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}body.light .display{border:1px solid #ddd;padding:10px;background-color:#f9f9f9;white-space:pre-wrap}body.dark .display{border:1px solid #555;padding:10px;background-color:#222;color:#eee;white-space:pre-wrap}body.light #plot-analysis{margin-top:10px;font-size:.9em;color:#333}body.dark #plot-analysis{color:var(--text-color-dark)}.swal2-input-group{margin-bottom:10px;text-align:left}.swal2-input-group label{display:block;margin-bottom:5px;font-weight:700}.swal2-input{width:50%;box-sizing:border-box;font-size:16px;padding:10px 14px;border:2px solid #ccc;border-radius:8px;outline:0;transition:border-color .3s,box-shadow .3s;box-shadow:none}.swal2-input:focus{border-color:#3085d6;box-shadow:0 0 0 4px rgba(48,133,214,.2)}.swal2-input::placeholder{color:#aaa}.invalid{border:2px solid red}.valid{border:2px solid green}.sel-quantity{font-weight:700}.light .sel-quantity{color:#9400d3}.dark .sel-quantity{color:orchid}.der-con-value{font-weight:700}#error-message,#wd-size-error{color:red;display:none}.error{color:red;margin-top:5px;animation:.3s fadeIn}@keyframes blink{0%,100%{border-color:var(--blink-color,transparent)}50%{border-color:transparent}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}#run-script-btn.blinking,#terminate-script-btn.blinking{border:2px solid red;--blink-color:#ff0000;animation:1s infinite blink}#cal-mode-select.blinking,#chart-container.blinking,#file-selection.blinking,#go-to-btn.blinking,#log-display.blinking,#measurement-mode.blinking,[id^=con-value-read].blinking{border:2px solid #0f0;--blink-color:#00ff00;animation:1s infinite blink}body.light .der-con-value.blinking{border:2px solid #9400d3;--blink-color:darkviolet;animation:1s infinite blink}body.dark .der-con-value.blinking{border:2px solid orchid;--blink-color:#DA70D6;animation:1s infinite blink}body.light #swal-input-content,body.light #swal-input-filename{background-color:#fff;color:#333;border:1px solid #ccc}body.dark #swal-input-content,body.dark #swal-input-filename{background-color:#444;color:#eee;border:1px solid #666}.light .metadata-box{background:#f9f9f9;border:1px solid #ddd;padding:8px;border-radius:8px;margin-bottom:15px}.light .metadata-box h4{margin:0 0 8px;font-size:1em;color:#333}.light #swal-edit-table thead th,.light #swal-metadata-table thead th{background:#f0f0f0;color:#333}.light #swal-edit-table tbody td,.light #swal-metadata-table tbody td{background:#fff;color:#000}.json-input{box-sizing:border-box;width:90%;padding:4px 8px 4px 4px;margin:0;font-family:monospace;line-height:1.4;border-radius:2px}.light #swal-metadata-table tbody td.noneditable{background:#f5f5f5;color:#777;font-style:italic;pointer-events:none;user-select:none}.dark .metadata-box{background:#2b2b2b;border:1px solid #555;padding:8px;border-radius:8px;margin-bottom:15px}.dark .metadata-box h4{margin:0 0 8px;font-size:1em;color:#e0e0e0}.dark #swal-edit-table thead th,.dark #swal-metadata-table thead th{background:#3a3a3a;color:#e0e0e0}.dark #swal-edit-table tbody td,.dark #swal-metadata-table tbody td{background:#1e1e1e;color:#ddd}.dark #swal-metadata-table tbody td.noneditable{background:#252525;color:#999;font-style:italic;pointer-events:none;user-select:none}#swal-edit-table{border-collapse:collapse;width:100%;font-family:Arial,sans-serif;font-size:.82em}body.light #swal-edit-table{background-color:#fff;color:#333}body.dark #swal-edit-table{background-color:#1e1e1e;color:#e5e5e5}body.light #swal-edit-table th{background-color:#f9f9f9;border:1px solid #ccc;color:#333}body.dark #swal-edit-table th{background-color:#2b2b2b;border:1px solid #444;color:#e5e5e5}body.light #swal-edit-table td{border:1px solid #ccc;color:#333}body.dark #swal-edit-table td{border:1px solid #444;color:#e5e5e5}#swal-edit-table td.non-editable{cursor:not-allowed}body.light #swal-edit-table td.non-editable{background-color:#f8f8f8;color:#999}body.dark #swal-edit-table td.non-editable{background-color:#333!important;color:#999}#swal-edit-table+p{font-size:.8em;margin-top:5px}body.light #swal-edit-table+p{color:#666}body.dark #swal-edit-table+p{color:#aaa}body.light .swal2-popup{background:#fff!important;color:#333!important;border:1px solid #ccc;box-shadow:0 4px 15px rgba(0,0,0,.1)}body.dark .swal2-popup{background:#1e1e1e!important;color:#eee!important;border:1px solid #444;box-shadow:0 4px 15px rgba(0,0,0,.6)}body.light .swal2-title{color:#222!important}body.dark .swal2-title{color:#eee!important}body.light .swal2-html-container{color:#333!important}body.dark .swal2-html-container{color:#ccc!important}body.light .swal2-container.swal2-backdrop-show{background:rgba(0,0,0,.4)!important}body.dark .swal2-container.swal2-backdrop-show{background:rgba(0,0,0,.7)!important}@media (max-width:768px){.top-left{position:relative;top:auto;left:auto;max-width:100%;margin-bottom:0;order:1;max-height:none;overflow-y:visible}.top-left>:not(.flex-group){margin-left:0}.top-right{display:block;position:relative;top:auto;left:auto;max-width:100%!important;margin-bottom:0}#right-deselect-btn{display:none!important}#init-prompt,#main-content{max-width:100%;width:100%;order:2}footer{order:3}}#drive-section{max-height:40vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb-light) transparent;background:linear-gradient(135deg,#667eea 0,#764ba2 100%);color:#fff;padding:15px;border-radius:8px;margin-bottom:20px;margin-right:20px}#drive-section h3{margin-top:0;color:#fff}#drive-section h4{color:#fff;font-size:1em}.badge-guest{background-color:#95a5a6;color:#fff}.badge-connected{background-color:#27ae60;color:#fff}.primary-btn{background-color:#3498db!important;color:#fff!important;border:none!important;border-radius:4px;cursor:pointer;transition:background-color .2s}.primary-btn:hover{background-color:#2980b9!important}#drive-sync-section{width:100%}.sync-buttons{display:flex;flex-wrap:wrap;gap:8px;width:100%}.danger-btn{background-color:#e74c3c!important;color:#fff!important;border:none!important;border-radius:4px;cursor:pointer;transition:background-color .2s}.danger-btn:hover{background-color:#c0392b!important}.sync-btn{background-color:#2ecc71!important;color:#fff!important;border:none!important;border-radius:4px;cursor:pointer;transition:background-color .2s;flex:1;display:flex;align-items:center;justify-content:center;white-space:nowrap;min-width:120px}.sync-btn:hover{background-color:#27ae60!important}.icon-btn{background-color:#ecf0f1!important;color:#2c3e50!important;border:1px solid #bdc3c7!important;border-radius:4px;cursor:pointer;transition:background-color .2s}.icon-btn:hover{background-color:#bdc3c7!important}.folder-selection-group{display:flex;gap:10px;margin-bottom:10px}.folder-selection-group label{color:#fff;cursor:pointer}#drive-folder-dropdown{padding:6px;border-radius:4px}#new-folder-name{padding:6px;border-radius:4px;border:1px solid #bdc3c7}.sync-info{padding:8px;background-color:rgba(255,255,255,.1);border-radius:4px;margin-top:10px}.checkbox-label{color:#fff;cursor:pointer}.checkbox-label input[type=checkbox]{margin-right:6px}