:root{--bg:#d3ebf7;--card:#fff;--card-2:#e3edf5;--text:#0f172a;--muted:#475569;--accent:#00c2ed;--accent-hover:#03aace;--accent-text:#0f172a;--error:#dc2626;--ok:#16a34a;--border:#d1dae5}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;font-family:Segoe UI,system-ui,sans-serif}.view{flex-direction:column;min-height:100vh;display:flex}.auth-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-screen .card{width:100%;max-width:380px}#login-view{justify-content:center;align-items:center}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin:16px;padding:24px;box-shadow:0 1px 3px #0f172a0f}#login-view,#forgot-view{justify-content:center;align-items:center}#login-view .card,#forgot-view .card{width:100%;max-width:380px}.report-body{flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow:hidden}.report-body>.card{margin:0}.form-card{flex-shrink:0;align-self:flex-start;width:360px}.report-body .output-card{flex:1;min-height:0}.workspace{flex-direction:column;flex:1;min-height:0;display:flex}.workspace .report-body{flex:1}.tabbar{flex-wrap:wrap;gap:4px;padding:12px 16px 0;display:flex}.tab{background:var(--card-2);color:var(--muted);border:1px solid var(--border);cursor:pointer;border-bottom:none;border-radius:8px 8px 0 0;padding:9px 16px;font-weight:600}.tab:hover{background:var(--card);color:var(--text)}.tab.active{background:var(--card);color:var(--accent-text);box-shadow:inset 0 -2px 0 var(--accent)}.view-body{flex:1;width:100%;max-width:1100px;min-height:0;margin:0 auto;padding:16px;overflow:auto}.view-body.narrow{max-width:600px}.view-body>.card{margin:0 0 16px}.view-body>.card:last-child{margin-bottom:0}.view-body .users-card{flex:none;overflow:visible}.branches-body{flex:1;gap:16px;min-height:0;padding:16px;display:flex;overflow:hidden}.branches-body>.card{margin:0}.branches-body .users-card{flex:1;min-height:0;overflow:auto}@media (max-width:900px){.report-body,.branches-body{flex-direction:column;overflow:auto}.form-card{align-self:stretch;width:auto}.report-body .output-card{min-height:360px}.branches-body .users-card{overflow:visible}}h1{margin:0 0 4px;font-size:20px}.subtitle{color:var(--muted);margin:0 0 20px}form{flex-direction:column;gap:14px;display:flex}label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}input,select{background:var(--card-2);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;padding:10px 12px;font-size:14px}input:focus,select:focus{border-color:var(--accent)}.pw-field{display:flex;position:relative}.pw-field input{flex:1;width:100%;padding-right:40px}.pw-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;margin:0;padding:6px;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--text);background:0 0}.pw-toggle svg{display:block}#forgot-link{text-align:right;margin:-4px 0 0}#forgot-link a{color:var(--muted);font-size:12px;text-decoration:none}#forgot-link a:hover{color:var(--text);text-decoration:underline}button{background:var(--accent);color:var(--accent-text);cursor:pointer;border:none;border-radius:8px;padding:11px 16px;font-size:14px;font-weight:600}button:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}.link{color:var(--muted);background:0 0;padding:4px 8px;font-weight:500}.link:hover{color:var(--text);background:0 0;text-decoration:underline}.error{color:var(--error);margin:0;font-size:13px}.success{color:var(--ok);margin:0;font-size:13px}.muted{color:var(--muted)}.small{font-size:12px}.pw-reqs{margin:6px 0 14px;padding:0;list-style:none}.pw-reqs li{color:var(--muted);align-items:center;gap:6px;font-size:12px;line-height:1.7;display:flex}.pw-reqs li span{text-align:center;width:14px}.pw-reqs li.ok{color:var(--ok)}.topbar-actions{align-items:center;gap:6px;display:flex}.date-row{gap:12px;display:flex}.date-row label{flex:1}.ms-dropdown{position:relative}.ms-toggle{background:var(--card-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-weight:400;display:flex}.ms-toggle:hover{background:var(--card-2)}.ms-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ms-label.placeholder{color:var(--muted)}.ms-caret{color:var(--muted);flex-shrink:0}.ms-panel{z-index:20;background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;max-height:220px;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0f172a1f}.ms-panel label{color:var(--text);cursor:pointer;flex-direction:row;align-items:center;gap:8px;font-size:14px}.ms-panel input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.branch-set{border:1px solid var(--border);border-radius:8px;margin:0;padding:12px 14px}.branch-set legend{color:var(--muted);padding:0 6px;font-size:12px}.branch-set label,.checkbox-row{color:var(--text);cursor:pointer;flex-direction:row;align-items:center;gap:8px;font-size:14px}.branch-set input[type=checkbox],.checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.topbar #who{margin-left:10px;font-size:13px}.brand{align-items:center;gap:12px;display:flex}.brand-logo{width:auto;height:22px;display:block}.brand>strong{border-left:1px solid var(--border);padding-left:12px}.login-logo{height:28px;margin:0 0 18px}.page-back{width:100%;max-width:1100px;margin:0 auto;padding:14px 16px 0}.back-btn{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.back-btn:hover{background:var(--card-2);border-color:var(--accent);color:var(--text)}.output-card{flex-direction:column;flex:1;min-height:0;display:flex}.output-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.output-actions{gap:6px;margin-left:auto;display:flex}.result-area{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex;overflow:auto}.result-empty{margin:auto}.result-head{color:var(--ok);margin:0;font-weight:600}.run-progress{background:var(--card-2);border:1px solid var(--border);border-radius:10px;margin-bottom:12px;padding:12px 14px}.run-progress-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.run-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite run-spin}@keyframes run-spin{to{transform:rotate(360deg)}}.run-steps{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex}.run-step{align-items:center;gap:8px;font-size:13px;display:flex}.run-step-icon{text-align:center;flex-shrink:0;width:16px}.run-step-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.run-step-dur{flex-shrink:0}.run-step.done .run-step-icon{color:var(--ok)}.run-step.error .run-step-icon,.run-step.error .run-step-label{color:var(--error)}.run-step.running .run-step-label{font-weight:600}.save-all-row{flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 10px;display:flex}.save-archive-row{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 10px;display:flex}.file-chips{flex-wrap:wrap;gap:8px;display:flex}.file-chip{background:var(--card-2);color:var(--text);border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;display:flex}.file-chip:hover{border-color:var(--accent);background:var(--card-2)}.file-chip.active{border-color:var(--accent);color:var(--text);background:#e7f6ff}.preview-pane{border:1px solid var(--border);background:var(--card);border-radius:8px;flex:1;min-height:0;padding:12px;overflow:auto}.open-file-btn{color:var(--accent);margin-bottom:10px}.preview-image{border-radius:6px;max-width:100%;height:auto;display:block}.preview-text{white-space:pre-wrap;word-break:break-word;margin:0;font-family:Cascadia Code,Consolas,monospace;font-size:12.5px;line-height:1.5}.sheet-tabs{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.sheet-tab{color:var(--muted);border:1px solid var(--border);background:0 0;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:700}.sheet-tab.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.table-holder{overflow:auto}.preview-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:12.5px}.preview-table th,.preview-table td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:5px 9px}.preview-table th{background:var(--card-2);font-weight:600;position:sticky;top:0}.preview-table tr:nth-child(2n) td{background:#f8fafc}.log{background:var(--card-2);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:8px;flex:1;margin:0;padding:12px;font-family:Cascadia Code,Consolas,monospace;font-size:12.5px;line-height:1.45;overflow:auto}.log-popup-wrap{position:relative}.progress-btn{white-space:nowrap}.log-popup{z-index:60;background:var(--card);border:1px solid var(--border);border-radius:10px;width:min(620px,88vw);position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 14px 34px #0f172a33}.log-popup-head{background:var(--card-2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.log-popup-head strong{font-size:13px}.log-popup-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px;line-height:1}.log-popup-close:hover{color:var(--text);background:0 0}.log-popup .log{border:none;border-radius:0;flex:none;max-height:380px}.users-card{flex:1;overflow:auto}.search-input{width:100%;margin-bottom:14px}.users-list{flex-direction:column;gap:12px;display:flex}.user-row{border:1px solid var(--border);background:var(--card-2);border-radius:10px;padding:14px}.user-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.user-head .uname{font-size:15px;font-weight:600}.user-head .uemail{color:var(--muted);margin-left:6px;font-size:12px}.role-badges{flex-wrap:wrap;gap:6px;display:flex}.user-branches,.user-roles{flex-wrap:wrap;gap:12px;margin-bottom:10px;display:flex}.user-branches label,.user-roles label{color:var(--text);cursor:pointer;flex-direction:row;align-items:center;gap:6px;font-size:13px}.user-branches input[type=checkbox],.user-roles input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.user-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.user-actions .save-btn{padding:7px 14px;font-size:13px}.resetpw-box{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.resetpw-box input{flex:1;min-width:140px}.resetpw-box button{padding:8px 12px;font-size:13px}.danger{color:var(--error)}.danger:hover{color:#fff;background:var(--error)}.report-set{flex-direction:column;gap:8px;display:flex}.report-set label{color:var(--text);cursor:pointer;flex-flow:wrap;align-items:baseline;gap:8px;font-size:14px}.report-set input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;align-self:center}.report-warn{color:#b45309;flex-basis:100%;padding-left:24px;font-size:12px}.report-edit{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;margin-top:10px;padding:12px;display:flex}.branch-reports{margin:4px 0 0}.row-msg{margin:8px 0 0;font-size:12px}.row-msg.ok{color:var(--ok)}.row-msg.err{color:var(--error)}.badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.badge.role{color:#475569;border:1px solid var(--border);background:#eef2f7}.badge.role.admin{color:#075985;background:#cdeffb;border:none}.badge.role.super{color:#6b21a8;background:#ede9fe;border:none}.badge.role.danger{color:#991b1b;background:#fee2e2;border:none}.badge.reset{color:#92400e;background:#fef3c7}.user-row.needs-reset{border-color:#f59e0b;box-shadow:inset 0 0 0 1px #f59e0b}.user-row.inactive{opacity:.62;background:#f8fafc}.user-row.inactive .uname{text-decoration:line-through}.reset-note{color:#92400e;background:#fef3c7;border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:13px}.notice{color:#92400e;text-align:center;background:#fef3c7;border-radius:8px;margin:0 0 14px;padding:10px 12px;font-size:13px}.badge.running{color:#075985;background:#cdeffb}.badge.ok{color:#166534;background:#dcfce7}.badge.fail{color:#991b1b;background:#fee2e2}.logs-tabs{border-bottom:1px solid var(--border);gap:6px;margin-bottom:4px;display:flex}.logs-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:8px 14px;font-size:14px;font-weight:600}.logs-tab:hover{color:var(--text)}.logs-tab.active{color:var(--accent-hover);border-bottom-color:var(--accent)}#logs-tab-hint{margin:8px 0 12px}.logs-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.logs-toolbar .search-input{flex:240px;margin-bottom:0}.logs-dates{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.logs-dates input[type=date]{padding:7px 9px;font-size:13px}.logs-toolbar select{flex:none}.logs-table-wrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.logs-table{border-collapse:collapse;width:100%;font-size:13px}.logs-table th,.logs-table td{text-align:left;border:1px solid var(--border);vertical-align:top;padding:9px 12px}.logs-table th{background:var(--card-2);font-weight:600;position:sticky;top:0}.logs-table tr:hover td{background:#f8fafc}.log-when{white-space:nowrap;color:var(--muted)}.log-who{white-space:nowrap;font-weight:600}.log-action{white-space:nowrap}.log-action .badge{white-space:nowrap;display:inline-block}.log-details{color:var(--text)}.modal-overlay{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:440px;padding:18px 20px 16px;animation:.12s ease-out modal-pop;box-shadow:0 18px 50px #0f172a4d}@keyframes modal-pop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}.modal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.modal-head strong{font-size:16px}.modal-x{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.modal-x:hover{color:var(--text)}.modal-message{color:var(--text);margin:0 0 18px;font-size:14px;line-height:1.5}.modal-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.danger-btn{background:var(--error);color:#fff;border-color:var(--error)}.danger-btn:hover{background:#b91c1c}.smtp-card{margin-bottom:14px}.smtp-head{align-items:center;gap:10px;margin-bottom:6px;display:flex}.smtp-test{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.smtp-test input{flex:240px}.smtp-test button{flex:none}.card-2-box{background:var(--card-2);border:1px solid var(--border);border-radius:8px;margin-top:12px;padding:12px 14px}.temp-pass{border:1px solid var(--border);letter-spacing:.5px;-webkit-user-select:all;user-select:all;background:#fff;border-radius:4px;padding:3px 10px;font-size:15px;font-weight:700}
