:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#212529;background-color:#f5f5f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#e9ecef;color:#212529;cursor:pointer;transition:border-color .25s}button:hover{border-color:#adb5bd}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}*{box-sizing:border-box}.app{max-width:1280px;margin:0 auto;padding:2rem}.app-body{display:flex;gap:1.5rem;align-items:flex-start}.app-body main{flex:1;min-width:0}.activity-panel{flex-shrink:0;width:320px;border:1px solid #dee2e6;border-radius:8px;background:#f8f9fa;padding:1rem;max-height:70vh;display:flex;flex-direction:column}.activity-panel h3{margin:0 0 .75rem;font-size:.95rem;color:#212529}.activity-log{flex:1;overflow-y:auto;font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;font-size:.75rem;line-height:1.4}.activity-empty{margin:0;color:#6c757d;font-style:italic}.activity-entry{padding:.25rem 0;border-bottom:1px solid #e9ecef;display:flex;gap:.5rem;align-items:flex-start}.activity-entry:last-child{border-bottom:none}.activity-time{flex-shrink:0;color:#6c757d;font-size:.7rem}.activity-msg{word-break:break-word}.activity-entry.activity-info .activity-msg{color:#212529}.activity-entry.activity-warn .activity-msg{color:#856404}.activity-entry.activity-error .activity-msg{color:#dc3545}header{margin-bottom:2rem}header h1{margin:0;font-size:1.75rem;color:#212529}.toolbar{margin-bottom:1.5rem}.toolbar button{padding:.5rem 1rem;background:#0d6efd;color:#fff;border:none;border-radius:6px;cursor:pointer}.toolbar button:hover{background:#0b5ed7}.sites{display:flex;flex-direction:column;gap:1rem}.site-card{border:1px solid #dee2e6;border-radius:8px;padding:1rem 1.25rem;background:#fff;color:#212529}.site-card h3{margin:0 0 .25rem;font-size:1.1rem;color:#212529}.site-card .mode{margin:0;font-size:.8rem;color:#6c757d}.site-card .url{margin:.25rem 0 .75rem;font-size:.85rem;word-break:break-all}.actions{display:flex;flex-wrap:wrap;gap:.5rem}.actions button,.actions a{padding:.35rem .75rem;font-size:.875rem;border-radius:4px;cursor:pointer;text-decoration:none;border:1px solid #dee2e6;background:#f8f9fa;color:#212529}.actions button:hover:not(:disabled),.actions a:hover{background:#e9ecef}.actions button:disabled{opacity:.6;cursor:not-allowed}.actions button.danger{background:#dc3545;color:#fff;border-color:#dc3545}.actions button.danger:hover{background:#bb2d3b}.empty{color:#6c757d;text-align:center;padding:3rem}.load-error{padding:1.5rem;background:#fff3cd;border:1px solid #ffc107;border-radius:8px;color:#856404}.load-error .hint{margin:.25rem 0 1rem;font-size:.9rem}.load-error code{background:#fff;padding:.2rem .4rem;border-radius:4px;font-size:.85rem}.load-error button{padding:.5rem 1rem;background:#0d6efd;color:#fff;border:none;border-radius:6px;cursor:pointer}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;padding:1.5rem 2rem;border-radius:8px;max-width:480px;width:90%;max-height:90vh;overflow-y:auto}.modal h2{margin:0 0 1rem;color:#212529}.modal label{display:block;margin-bottom:1rem;color:#212529}.modal label input,.modal label select,.modal label textarea{display:block;width:100%;margin-top:.25rem;padding:.5rem;border:1px solid #dee2e6;border-radius:4px;background:#fff;color:#212529}.modal label input::placeholder,.modal label textarea::placeholder{color:#6c757d}.form-actions{display:flex;gap:.5rem;margin-top:1.5rem}.form-actions button{padding:.5rem 1rem;border-radius:4px;cursor:pointer}.form-actions button[type=submit]{background:#0d6efd;color:#fff;border:none}.form-actions button[type=button]{background:#f8f9fa;border:1px solid #dee2e6;color:#212529}.results-modal{max-width:800px;max-height:90vh;overflow:auto}.results-modal .close-btn{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#212529}.results-list{max-height:200px;overflow-y:auto;margin-bottom:1rem}.result-item{padding:.5rem;cursor:pointer;border-bottom:1px solid #eee;display:flex;gap:.75rem;align-items:center}.result-item .pages-count{font-size:.8rem;color:#6c757d}.result-item:hover,.result-item.active{background:#f0f0f0}.pages-log{margin:1rem 0;padding:1rem;background:#f8f9fa;border-radius:6px;max-height:200px;overflow-y:auto}.pages-log h4{margin:0 0 .5rem;font-size:.9rem;color:#212529}.pages-log ul{margin:0;padding-left:1.25rem;font-size:.85rem;color:#495057}.pages-log li{margin:.15rem 0}.page-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.compare-link{flex-shrink:0;padding:.2rem .5rem;font-size:.8rem;background:#0d6efd;color:#fff;border:none;border-radius:4px;cursor:pointer}.compare-link:hover{background:#0b5ed7}.compare-overlay{z-index:1100}.compare-modal{position:relative;max-width:95vw;width:1200px;max-height:95vh;overflow:auto}.compare-modal .close-btn{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#212529}.compare-modal h3{margin:0 0 1rem;font-size:1rem;color:#212529}.compare-slider{width:100%;min-height:400px}.compare-slider img{max-width:100%;object-fit:contain}.diffs{margin-top:1rem}.diffs>div{margin-bottom:1.5rem}.diff-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.diff-header span{font-weight:500}.accordion{margin:1rem 0;border:1px solid #dee2e6;border-radius:6px;overflow:hidden}.accordion-header{width:100%;padding:.75rem 1rem;text-align:left;background:#f8f9fa;border:none;cursor:pointer;font-size:.95rem;color:#212529}.accordion-header:hover{background:#e9ecef}.accordion-content{padding:1rem;background:#fff;border-top:1px solid #dee2e6}.accordion-content label{margin-bottom:.75rem}.accordion-content .hint{margin:0 0 1rem;font-size:.85rem;color:#6c757d}.checkbox-row{display:flex;align-items:center;gap:.5rem}.checkbox-row input[type=checkbox]{width:auto}.before-scan-block{margin-bottom:1.5rem;padding:1rem;border:1px solid #dee2e6;border-radius:6px;background:#f8f9fa}.before-scan-block h4{margin:0 0 .75rem;font-size:.95rem}.action-page-block{margin-bottom:1.5rem;padding:1rem;border:1px solid #dee2e6;border-radius:6px;background:#f8f9fa}.action-page-header{display:flex;gap:.5rem;align-items:flex-end;margin-bottom:.75rem}.action-page-header label{flex:1;margin-bottom:0}.action-page-header .danger.small{flex-shrink:0;padding:.35rem .6rem;font-size:.8rem}.action-steps{margin-top:.75rem}.action-step-row{display:flex;gap:.35rem;align-items:center;margin-bottom:.5rem}.action-step-row select{width:90px;flex-shrink:0;padding:.4rem;border:1px solid #dee2e6;border-radius:4px}.action-step-row input{flex:1;min-width:0;padding:.4rem;border:1px solid #dee2e6;border-radius:4px}.action-step-row input[type=number]{width:70px;flex:0 0 70px}.action-step-row button{padding:.3rem .5rem;font-size:.85rem;border:1px solid #dee2e6;background:#f8f9fa;border-radius:4px;cursor:pointer}.action-step-row button.danger.small{padding:.3rem .5rem;font-size:.9rem;background:#dc3545;color:#fff;border-color:#dc3545}.add-step,.add-action-page{margin-top:.5rem;padding:.4rem .75rem;font-size:.85rem;background:#e9ecef;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;color:#212529}.add-step:hover,.add-action-page:hover{background:#dee2e6}.add-action-page{margin-top:1rem;background:#0d6efd;color:#fff;border-color:#0d6efd}.add-action-page:hover{background:#0b5ed7}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f2f5}.login-card{background:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 2px 12px #00000014;width:360px}.login-card h1{margin:0 0 1.5rem;text-align:center;font-size:1.5rem;color:#212529}.login-card label{display:block;margin-bottom:1rem;color:#212529}.login-card input{display:block;width:100%;margin-top:.25rem;padding:.6rem;border:1px solid #dee2e6;border-radius:6px}.login-card button[type=submit]{width:100%;padding:.6rem;background:#0d6efd;color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer;margin-top:.5rem}.login-card button:hover:not(:disabled){background:#0b5ed7}.login-card button:disabled{opacity:.6}.login-error{background:#f8d7da;color:#842029;padding:.5rem .75rem;border-radius:6px;margin-bottom:1rem}.login-success{background:#d1e7dd;color:#0f5132;padding:.5rem .75rem;border-radius:6px;margin-bottom:1rem}.forgot-link{margin-top:1rem;text-align:center;font-size:.9em;font-size:.9rem}.navbar{display:flex;align-items:center;gap:1.5rem;padding:.75rem 0;margin-bottom:1.5rem;border-bottom:1px solid #dee2e6}.navbar-brand{font-weight:700;font-size:1.25rem;color:#212529}.navbar-links{display:flex;gap:1rem;flex:1}.navbar-links a{text-decoration:none;color:#495057;padding:.35rem .75rem;border-radius:6px}.navbar-links a:hover{background:#e9ecef}.navbar-links a.active{background:#0d6efd;color:#fff}.navbar-user{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:#495057}.navbar-user button{padding:.3rem .6rem;border:1px solid #dee2e6;background:#f8f9fa;border-radius:4px;cursor:pointer;font-size:.85rem}.navbar-user button:hover{background:#e9ecef}.users-page{padding:0}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-header h2{margin:0;color:#212529}.btn-primary{padding:.5rem 1rem;background:#0d6efd;color:#fff;border:none;border-radius:6px;cursor:pointer}.btn-primary:hover{background:#0b5ed7}.btn-secondary{padding:.4rem .8rem;background:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem}.btn-secondary:hover{background:#5c636a}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid #dee2e6}.users-table th{background:#f8f9fa;font-size:.85rem;color:#495057}.role-badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500}.role-admin{background:#cfe2ff;color:#084298}.role-operator{background:#d1e7dd;color:#0f5132}.user-actions{display:flex;gap:.4rem}.user-actions button{padding:.3rem .6rem;border:1px solid #dee2e6;background:#f8f9fa;border-radius:4px;cursor:pointer;font-size:.8rem}.user-actions button.danger{background:#dc3545;color:#fff;border-color:#dc3545}.settings-page h2{margin:0 0 1.5rem;color:#212529}.settings-section{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.settings-section h3{margin:0 0 1rem;font-size:1.1rem;color:#212529}.settings-section label{display:block;margin-bottom:1rem;color:#212529}.settings-section input{display:block;width:100%;margin-top:.25rem;padding:.5rem;border:1px solid #dee2e6;border-radius:4px}.settings-message{margin:.5rem 0 0;font-size:.9rem;color:#198754}.results-toolbar{display:flex;align-items:center;gap:.75rem;margin:.75rem 0;flex-wrap:wrap}.asana-result{font-size:.85rem;color:#495057}.asana-result a{color:#0d6efd}.result-item .duration{font-size:.8rem;color:#6c757d}.design-page-block{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;padding:.75rem;margin-bottom:.75rem}.design-page-header{display:flex;align-items:flex-end;gap:.5rem;margin-bottom:.5rem}.design-page-header label{flex:1;margin:0}.design-file-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.design-file-name{font-size:.85rem;color:#198754;word-break:break-all}.design-file-name.no-file{color:#6c757d;font-style:italic}.guide-page{max-width:900px;margin:0 auto;padding:2rem 1rem;line-height:1.7;color:#212529}.guide-page h1{font-size:1.8rem;margin-bottom:1rem;border-bottom:2px solid #dee2e6;padding-bottom:.5rem}.guide-page h2{font-size:1.4rem;margin-top:2rem;margin-bottom:.75rem;color:#0d6efd}.guide-page h3{font-size:1.1rem;margin-top:1.25rem;margin-bottom:.5rem}.guide-page hr{border:none;border-top:1px solid #dee2e6;margin:2rem 0}.guide-toc{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:1rem 1.5rem;margin-bottom:1.5rem}.guide-toc ol{margin:0;padding-left:1.2rem}.guide-toc li{margin-bottom:.25rem}.guide-toc a{color:#0d6efd;text-decoration:none}.guide-toc a:hover{text-decoration:underline}.guide-page blockquote{border-left:4px solid #0d6efd;background:#f0f4ff;margin:1rem 0;padding:.75rem 1rem;border-radius:0 6px 6px 0;color:#333}.guide-page table{width:100%;border-collapse:collapse;margin:.75rem 0}.guide-page th,.guide-page td{border:1px solid #dee2e6;padding:.5rem .75rem;text-align:left}.guide-page th{background:#f8f9fa;font-weight:600}.guide-page code{background:#f1f3f5;padding:.15rem .4rem;border-radius:4px;font-size:.9em}.guide-page ul,.guide-page ol{padding-left:1.5rem}.guide-page li{margin-bottom:.3rem}
