:root{--bg: #f8fafc;--panel: #ffffff;--panel2: #f1f5f9;--search-panel-bg: #e2e8f0;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--accent: #2563eb;--accent2: #16a34a;--danger: #dc2626;--warn: #d97706;--login-bg: linear-gradient(180deg, #e0e7ff 0%, var(--bg) 45%);--login-shadow: 0 4px 24px rgba(15, 23, 42, .06);--tab-active-bg: #eff6ff;--tab-active-color: var(--accent);--badge-ok-color: #15803d;--badge-ok-bg: #f0fdf4;--badge-warn-color: #b45309;--badge-warn-bg: #fffbeb;--badge-bad-color: #b91c1c;--badge-bad-bg: #fef2f2}[data-theme=dark]{--bg: #0b1220;--panel: #111827;--panel2: #1f2937;--search-panel-bg: #374151;--border: #374151;--text: #f3f4f6;--muted: #9ca3af;--accent: #3b82f6;--accent2: #22c55e;--danger: #ef4444;--warn: #f59e0b;--login-bg: radial-gradient(circle at top, #1e3a5f, var(--bg));--login-shadow: none;--tab-active-bg: #1e3a8a;--tab-active-color: #fff;--badge-ok-color: #86efac;--badge-ok-bg: var(--panel2);--badge-warn-color: #fcd34d;--badge-warn-bg: var(--panel2);--badge-bad-color: #fca5a5;--badge-bad-bg: var(--panel2)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text)}.layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--panel);border-right:1px solid var(--border);padding:1.25rem 1rem;flex-shrink:0;align-self:stretch;display:flex;flex-direction:column}.sidebar .logo{font-weight:700;font-size:1.1rem;margin-bottom:.25rem}.sidebar .sub{color:var(--muted);font-size:.75rem;margin-bottom:.65rem}.sidebar-scope{margin-bottom:1.25rem;padding:.55rem .65rem;border-radius:8px;background:var(--panel2);border:1px solid var(--border)}.sidebar-scope-title{font-size:.95rem;font-weight:700;line-height:1.3;color:var(--text);word-break:keep-all}.sidebar-scope-sub{margin-top:.2rem;font-size:.72rem;color:var(--muted)}.nav-item{display:block;width:100%;text-align:left;padding:.55rem .75rem;margin-bottom:4px;border:none;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;font-size:.9rem}.nav-item:hover{background:var(--panel2)}.nav-item.active{background:var(--accent);color:#fff}.nav-item small{color:inherit;opacity:.85;margin-left:6px}.panel table{width:100%;min-width:720px}.panel{overflow-x:auto}.toolbar-scope-label{font-size:.9rem;font-weight:600;padding:.45rem .65rem;background:var(--panel2);border-radius:8px;border:1px solid var(--border);white-space:nowrap}.content{flex:1;padding:1.5rem 2rem;overflow:auto}.page-title{margin:0 0 .25rem;font-size:1.35rem}.page-desc{color:var(--muted);margin:0 0 1.25rem;font-size:.9rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:1.5rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem}.card .label{color:var(--muted);font-size:.8rem}.card .value{font-size:1.6rem;font-weight:700;margin-top:4px}.dash-analytics{display:flex;flex-direction:column;gap:1.75rem}.dash-analytics--compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:.65rem;align-items:stretch}.dash-analytics--compact>.dash-analytics__bar{grid-column:1 / -1}.dash-analytics--compact>.dash-ops{grid-column:1 / -1}.dash-analytics__bar{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;margin-bottom:.15rem}.dash-analytics__title{margin:0;font-size:1.05rem;font-weight:700}.dash-analytics__period{margin:0;font-size:.72rem;color:var(--muted);display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem}.dash-analytics__scope{font-weight:600;color:var(--text);padding:.12rem .45rem;border-radius:4px;background:var(--panel2);border:1px solid var(--border)}.dash-analytics__period-dates{color:var(--muted)}.content:has(.dash-analytics--compact){padding:.85rem 1.1rem 1rem}.dash-block{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.35rem 1.5rem}.dash-analytics--compact .dash-block{padding:.55rem .65rem .6rem;min-width:0;height:100%;display:flex;flex-direction:column;box-sizing:border-box}.dash-block__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem .5rem;margin-bottom:1rem}.dash-analytics--compact .dash-block__head{margin-bottom:.4rem;flex-shrink:0;min-height:1.65rem}.dash-block__title{margin:0 0 .35rem;font-size:1.15rem;font-weight:700}.dash-analytics--compact .dash-block__title{font-size:.82rem;margin:0;font-weight:700}.dash-block__period{margin:0;font-size:.82rem;color:var(--muted)}.dash-block__period-sub{margin-left:.35rem;color:var(--muted);opacity:.85}.dash-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:1.25rem}.dash-kpi-row--compact{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));margin-bottom:.45rem;border-radius:6px;flex-shrink:0;min-height:6.35rem}.dash-kpi{padding:.85rem 1rem;border-right:1px solid var(--border);background:var(--panel2)}.dash-kpi-row--compact .dash-kpi{padding:.35rem .45rem;display:flex;flex-direction:column;justify-content:flex-start;min-height:0}.dash-kpi-row--compact .dash-kpi:nth-child(2){border-right:0}.dash-kpi-row--compact .dash-kpi:nth-child(1),.dash-kpi-row--compact .dash-kpi:nth-child(2){border-bottom:1px solid var(--border)}.dash-kpi-row--compact .dash-kpi:nth-child(3){border-right:1px solid var(--border)}.dash-kpi:last-child{border-right:0}.dash-kpi__label{font-size:.78rem;color:var(--muted);line-height:1.35;min-height:2.2em}.dash-kpi-row--compact .dash-kpi__label{font-size:.65rem;line-height:1.25;min-height:2.5em}.dash-kpi__value{font-size:1.35rem;font-weight:800;margin:.35rem 0 .25rem;letter-spacing:-.02em}.dash-kpi-row--compact .dash-kpi__value{font-size:.95rem;margin:.12rem 0 .08rem}.dash-kpi__change{font-size:.78rem;font-weight:600}.dash-kpi-row--compact .dash-kpi__change{font-size:.62rem;min-height:.95em}.dash-kpi__change--placeholder{visibility:hidden}.dash-kpi__change--up{color:#16a34a}.dash-kpi__change--down{color:#dc2626}.dash-kpi__change--na{color:var(--muted);font-weight:500}.dash-chart-wrap{overflow-x:auto}.dash-analytics--compact .dash-chart-wrap{overflow-x:hidden;flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end;min-height:7.5rem}.dash-analytics--compact .dash-chart--compact{flex:1 1 auto;width:100%;height:100%;min-height:7.5rem;max-height:8.5rem}.dash-chart{width:100%;min-width:520px;height:auto;display:block}.dash-chart--compact{min-width:0}.dash-chart--compact .dash-chart__line--earn-count,.dash-chart--compact .dash-chart__line--redeem,.dash-chart--compact .dash-chart__line--muted,.dash-chart--compact .dash-chart__line--new{stroke-width:2}.dash-chart--compact .dash-chart__line--muted{stroke-width:1.5}.dash-chart__grid{stroke:var(--border);stroke-width:1}.dash-chart__axis{fill:var(--muted);font-size:10px}.dash-chart--compact .dash-chart__axis{font-size:8px}.dash-chart__axis--right{fill:#94a3b8}.dash-chart__bar{fill:#94a3b8;fill-opacity:.35;stroke:#64748b;stroke-width:.5}.dash-chart__line{fill:none;stroke-linejoin:round;stroke-linecap:round}.dash-chart__line--earn-count{stroke:#059669;stroke-width:2.5}.dash-chart__line--redeem{stroke:#dc2626;stroke-width:2.5;stroke-dasharray:6 4}.dash-chart__line--muted{stroke:#94a3b8;stroke-width:2}.dash-chart__line--new{stroke:#2563eb;stroke-width:2.5}.dash-chart__dot--earn-count{fill:#059669}.dash-chart__dot--redeem{fill:#fff;stroke:#dc2626;stroke-width:2}.dash-chart__dot--muted{fill:#fff;stroke:#94a3b8;stroke-width:2}.dash-chart__dot{fill:#2563eb}.dash-chart__point-label{font-size:9px;font-weight:700}.dash-chart__point-label--earn-count{fill:#059669}.dash-chart-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.78rem;color:var(--muted);margin-bottom:.5rem}.dash-chart-legend--inline{margin-bottom:0;gap:.5rem;font-size:.65rem}.dash-chart-legend span{display:inline-flex;align-items:center;gap:.35rem}.dash-legend-swatch{display:inline-block;width:14px;height:3px;border-radius:2px;flex-shrink:0}.dash-chart-legend--inline .dash-legend-swatch{width:12px}.dash-legend-swatch--bar{height:8px;background:#94a3b873;border:1px solid #64748b;box-sizing:border-box}.dash-chart-legend--inline .dash-legend-swatch--bar{height:7px}.dash-legend-swatch--earn-count{background:#059669;height:3px}.dash-legend-swatch--redeem{height:0;border-top:3px dashed #dc2626;border-radius:0}.dash-chart-legend--inline .dash-legend-swatch--redeem{border-top-width:2px}.dash-legend-swatch--visit{background:#94a3b8}.dash-legend-swatch--new{background:#2563eb}.dash-legend-bar{display:inline-block;width:14px;height:10px;background:#e2e8f0;border-radius:2px}.dash-legend-line{display:inline-block;width:18px;height:0;border-top:2.5px solid #2563eb}.dash-legend-line--muted{border-top-color:#94a3b8;border-top-width:2px}.dash-ops{margin-top:.5rem}.dash-analytics--compact .dash-ops{margin-top:0;padding:.5rem .65rem;margin-bottom:0}.dash-analytics--compact .dash-ops summary{font-size:.82rem}.dash-ops summary{cursor:pointer;font-weight:600;padding:.25rem 0}.dash-ops-cards{margin-top:1rem}@media (max-width: 1100px){.dash-analytics--compact{grid-template-columns:1fr}}@media (max-width: 960px){.dash-kpi-row:not(.dash-kpi-row--compact){grid-template-columns:repeat(2,1fr)}.dash-kpi-row:not(.dash-kpi-row--compact) .dash-kpi:nth-child(2){border-right:0}.dash-kpi-row:not(.dash-kpi-row--compact) .dash-kpi:nth-child(1),.dash-kpi-row:not(.dash-kpi-row--compact) .dash-kpi:nth-child(2){border-bottom:1px solid var(--border)}}@media (max-width: 520px){.dash-kpi-row:not(.dash-kpi-row--compact){grid-template-columns:1fr}.dash-kpi-row:not(.dash-kpi-row--compact) .dash-kpi{border-right:0;border-bottom:1px solid var(--border)}.dash-kpi-row:not(.dash-kpi-row--compact) .dash-kpi:last-child{border-bottom:0}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1rem}.panel h3{margin:0 0 1rem;font-size:1rem}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:1rem;align-items:center}.toolbar-spacer{margin-left:auto}.panel.search-panel{margin-bottom:1rem;background:var(--search-panel-bg);border-color:var(--border)}.search-panel-row{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:10px}.search-panel-title{flex-shrink:0;margin:0;padding-bottom:6px;font-size:.9rem;font-weight:600;white-space:nowrap}.search-field label{display:block;font-size:.72rem;color:var(--muted);margin-bottom:4px;white-space:nowrap}.search-field input,.search-field select{width:100%;box-sizing:border-box;min-height:34px}.search-field-grow{flex:1 1 200px;min-width:140px}.search-field-narrow{flex:0 0 108px;min-width:96px}.search-panel-actions{flex-shrink:0;display:flex;align-items:center;gap:6px;padding-bottom:1px}.search-panel-actions .btn{box-sizing:border-box;min-height:34px;padding-top:6px;padding-bottom:6px;line-height:1.2;white-space:nowrap}.muted-inline{font-weight:400;color:var(--muted);font-size:.85rem}.device-add-toolbar{display:flex;flex-wrap:nowrap;gap:10px;align-items:flex-end;margin-top:12px}.device-add-field{flex:1 1 auto;min-width:0;max-width:320px}.device-add-field--type{flex:0 0 140px;max-width:160px}.device-add-field label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:4px}.device-add-field input,.device-add-field select{width:100%;box-sizing:border-box}.device-add-submit{flex-shrink:0;white-space:nowrap}.device-register-row{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;margin-top:10px}.device-register-field{flex:0 0 auto;min-width:0}.device-register-field--store{flex:1 1 160px;max-width:220px}.device-register-field--code{flex:1 1 140px;max-width:200px}.device-register-field--type{flex:0 0 120px}.device-register-field label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:4px}.device-register-field input,.device-register-field select{width:100%;box-sizing:border-box}.device-register-submit{flex-shrink:0;white-space:nowrap;align-self:flex-end;margin-bottom:1px}.store-terminal-config-editor{flex:1 1 320px;min-width:min(100%,280px);padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel2)}.store-terminal-config-editor--compact .store-terminal-config-editor__title{font-size:.72rem;margin-bottom:4px}.store-terminal-config-editor__title{display:block;font-size:.75rem;font-weight:600;color:var(--muted);margin-bottom:6px}.store-terminal-config-editor__row{margin:0;gap:8px 14px}.store-terminal-config-editor__row label{font-size:.78rem;white-space:nowrap;cursor:pointer}.input-with-btn{display:flex;gap:8px;align-items:center}.input-with-btn input{flex:1;min-width:0}.input-with-btn .btn{flex-shrink:0;white-space:nowrap}input,select,textarea{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:8px;font-size:.9rem}input{min-width:140px}button.btn{padding:8px 14px;border-radius:8px;border:none;cursor:pointer;font-size:.9rem;background:var(--accent);color:#fff}button.btn.secondary{background:var(--panel2);border:1px solid var(--border);color:var(--text)}button.btn.danger{background:var(--danger);color:#fff}button.btn:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{border-bottom:1px solid var(--border);padding:10px 8px;text-align:left}th{color:var(--muted);font-weight:600}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;background:var(--panel2);border:1px solid var(--border);color:var(--text)}.badge.ok{border-color:var(--accent2);color:var(--badge-ok-color);background:var(--badge-ok-bg)}.badge.warn{border-color:var(--warn);color:var(--badge-warn-color);background:var(--badge-warn-bg)}.badge.bad{border-color:var(--danger);color:var(--badge-bad-color);background:var(--badge-bad-bg)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.form-grid label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:4px}.form-grid .form-span-all{grid-column:1 / -1}.field-hint{font-size:.8rem;color:var(--muted);margin:6px 0 0}.form-field-label{display:block;margin-bottom:4px}.form-field-label .label-ko{display:block;font-size:.85rem;color:var(--text);font-weight:600}.form-field-label .label-ko.required:after{content:" *";color:var(--danger);font-weight:700}.form-field-label .label-en{display:block;font-size:.72rem;color:var(--muted);font-weight:400;margin-top:2px}.company-basic-table{width:100%;font-size:.85rem}.company-basic-table th{text-align:left;white-space:nowrap}.company-basic-table td.muted{color:var(--muted);font-size:.8rem}.company-logo-preview{margin:0 0 12px}.company-logo-preview img{max-height:56px;max-width:160px;object-fit:contain;border-radius:6px;border:1px solid var(--border)}.company-logo-preview.inline{margin-top:8px}.table-scroll{overflow-x:auto}.panel.company-profile-required{border-color:var(--warn);background:var(--badge-warn-bg);margin-bottom:1rem}.panel.company-profile-required h3{margin-top:0}.org-hierarchy-hint{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 12px;border-radius:8px;background:var(--panel2);border:1px solid var(--border);font-size:.85rem;margin-bottom:.75rem}.org-hierarchy-arrow{color:var(--muted);margin:0 4px}.org-hierarchy-label{color:var(--muted);margin-right:4px}.org-hierarchy-value{color:var(--text)}.org-tree{list-style:none;padding:0;margin:0}.org-tree-brand{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.org-tree-brand-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}.org-tree-stores{list-style:disc;margin:0 0 0 1.25rem;padding:0}.org-tree-empty{margin:4px 0 0 1rem}.store-form-brand select{width:100%;max-width:480px}table.meta-table th{width:7rem;color:var(--text);font-weight:600;font-size:.8rem}table.meta-table td{color:var(--muted);font-size:.85rem}tr.row-clickable{cursor:pointer}tr.row-clickable:hover td{background:var(--panel2)}tr.row-selected td{background:var(--tab-active-bg)}td.row-actions{white-space:nowrap}td.row-actions .btn-sm+.btn-sm{margin-left:6px}button.btn.btn-sm{padding:4px 10px;font-size:.8rem}.panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:.75rem}.panel-head h3{margin:0}.subheading{margin:1rem 0 .5rem;font-size:.95rem}.flow-choice-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:.75rem 0}.flow-choice-btn{flex:1 1 180px;min-height:44px}.flow-choice-hint{flex:1 1 220px;margin:0}.breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:.5rem;font-size:.85rem;color:var(--muted)}.breadcrumb .link-btn{border:none;background:none;padding:0;color:var(--accent);cursor:pointer;font-size:inherit}.tabs.subnav{flex-wrap:wrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-backdrop-alert{z-index:1100;background:#0f172a8c}.alert-dialog-message{margin:0;font-size:.95rem;line-height:1.5;white-space:pre-wrap}.modal-box{width:100%;max-width:520px;max-height:min(90vh,720px);overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 48px #0f172a2e}.modal-box-wide{max-width:min(720px,96vw);max-height:min(92vh,860px)}.form-grid.modal-form{grid-template-columns:1fr 1fr}.form-grid.modal-form textarea{width:100%;min-height:72px;resize:vertical}.form-grid.modal-form .form-span-all>input,.form-grid.modal-form .form-span-all>select,.form-grid .form-span-all .address-full-width,.form-grid .form-span-all .address-search-row{width:100%;box-sizing:border-box}.form-grid .form-span-all .address-search-row input{flex:1;min-width:0;width:auto}.form-grid .address-fields-block{min-width:0}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:1rem}.modal-close{border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--muted);padding:0 4px}.modal-close:hover{color:var(--text)}.modal-body{padding:1.25rem}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:1.25rem}.form-section{margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.form-section:last-of-type{border-bottom:none;margin-bottom:.75rem}.form-section h4{margin:0 0 .65rem;font-size:.9rem;font-weight:600;color:var(--text)}.checkbox-row label{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer;margin-right:16px}.checkbox-row input{min-width:auto;width:auto}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--login-bg)}.login-box{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:2rem;box-shadow:var(--login-shadow)}.login-box h1{margin:0 0 .5rem}.login-box .page-desc{margin-bottom:1.25rem}.login-field{display:block;margin-bottom:14px}.login-field label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:6px}.login-field input{display:block;width:100%;min-width:0;box-sizing:border-box}.login-dodo{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fff;padding:2rem 1.25rem 3rem}[data-theme=dark] .login-dodo{background:var(--bg)}.login-dodo-inner{width:100%;max-width:420px;text-align:center}.login-dodo-logo{font-size:2.75rem;font-weight:800;color:#4361ee;letter-spacing:-.03em;margin-bottom:2.75rem;line-height:1.1}.login-dodo-form{display:flex;flex-direction:column;align-items:stretch;gap:0}.login-dodo-field-box{border:1px solid #e5e7eb;border-radius:3px;overflow:hidden;margin-bottom:10px;background:#fff}[data-theme=dark] .login-dodo-field-box{background:var(--panel);border-color:var(--border)}.login-dodo-field-box .login-dodo-input--in-box{margin-bottom:0;border:none;border-radius:0}.login-dodo-field-box .login-dodo-input--in-box:focus{position:relative;z-index:1;outline:none;box-shadow:inset 0 0 0 1px #4361ee}.login-dodo-field-box .login-dodo-input--in-box+.login-dodo-input--in-box{border-top:1px solid #e5e7eb}[data-theme=dark] .login-dodo-field-box .login-dodo-input--in-box+.login-dodo-input--in-box{border-top-color:var(--border)}.login-dodo-input{width:100%;padding:15px 14px;margin-bottom:10px;border:1px solid #e5e7eb;border-radius:2px;font-size:.95rem;color:var(--text);background:#fff;box-sizing:border-box}[data-theme=dark] .login-dodo-input{background:var(--panel);border-color:var(--border)}.login-dodo-input::placeholder{color:#9ca3af}.login-dodo-input:focus{outline:none;border-color:#4361ee;box-shadow:0 0 0 2px #4361ee26}.login-dodo-submit{width:100%;margin-top:6px;padding:16px;border:0;border-radius:2px;background:#4361ee;color:#fff;font-size:1rem;font-weight:600;cursor:pointer}.login-dodo-submit:hover:not(:disabled){background:#3651d4}.login-dodo-submit:disabled{opacity:.65;cursor:wait}.login-dodo-error{color:var(--danger);font-size:.85rem;margin:10px 0 0;text-align:left}.login-dodo-links{margin:1.25rem 0 0;font-size:.8rem;color:#6b7280;display:flex;align-items:center;justify-content:center;gap:6px}.login-dodo-link{border:0;background:none;padding:0;font-size:inherit;color:inherit;cursor:not-allowed;opacity:.7}.login-dodo-dot{opacity:.6}.login-dodo-hint{margin:1.5rem 0 0;font-size:.78rem;color:#9ca3af;line-height:1.45}.login-dodo-footer{margin:2.5rem 0 0;font-size:.8rem;color:#9ca3af;line-height:1.5}.login-dodo-footer a{color:#4361ee;text-decoration:none}.login-dodo-footer a:hover{text-decoration:underline}.error{color:var(--danger);font-size:.85rem;margin-top:8px}.success{color:var(--ok, #0a7);font-size:.85rem;margin-top:8px}.tabs{display:flex;gap:8px;margin-bottom:1rem}.tab{padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);cursor:pointer;color:var(--text)}.tab.active{border-color:var(--accent);background:var(--tab-active-bg);color:var(--tab-active-color);font-weight:600}.sidebar-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.theme-label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:4px}.theme-select{width:100%;margin-bottom:10px}.sidebar-footer .btn{width:100%}
