*{box-sizing:border-box}
:root{
    --bg:#f4f6f9;
    --card:#ffffff;
    --text:#182233;
    --muted:#6e7888;
    --line:#e3e7ed;
    --line-strong:#d5dae2;
    --nav:#152033;
    --nav-soft:#1c2a43;
    --primary:#2f66f6;
    --primary-dark:#2354d8;
    --primary-soft:#edf3ff;
    --success:#137a50;
    --success-soft:#eaf8f1;
    --warning:#936513;
    --warning-soft:#fff7e7;
    --danger:#b42318;
    --danger-soft:#fff0ef;
    --shadow:0 8px 24px rgba(20,32,51,.06);
}
html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
body{font-size:14px}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button{cursor:pointer}
input,select{
    width:100%;
    min-height:44px;
    border:1px solid var(--line-strong);
    border-radius:9px;
    background:#fff;
    color:var(--text);
    padding:10px 12px;
    outline:none;
    transition:.18s ease;
}
input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(47,102,246,.11)}
input[type=checkbox],input[type=radio]{width:auto;min-height:auto;accent-color:var(--primary)}
button:disabled{opacity:.6;cursor:not-allowed}
.mono{font-family:Consolas,Monaco,monospace}
.subdued{color:var(--muted)}
.hidden{display:none!important}
.app-shell{min-height:100vh}
.sidebar{
    position:fixed;inset:0 auto 0 0;width:245px;
    background:linear-gradient(180deg,var(--nav),#111a2a);
    color:#fff;padding:20px 16px;display:flex;flex-direction:column;z-index:50;
}
.brand{display:flex;align-items:center;gap:11px;padding:3px 7px 22px}
.brand-mark{
    width:38px;height:38px;display:grid;place-items:center;border-radius:10px;
    background:var(--primary);font-weight:900;letter-spacing:.5px;box-shadow:0 6px 18px rgba(47,102,246,.3)
}
.brand-mark.large{width:46px;height:46px}
.brand-text{display:flex;flex-direction:column;gap:2px}
.brand-text strong{font-size:14px;letter-spacing:1.4px}
.brand-text span{font-size:11px;color:#aeb9ca}
.main-nav{display:flex;flex-direction:column;gap:4px}
.main-nav a{
    min-height:43px;padding:0 11px;border-radius:9px;display:flex;align-items:center;gap:10px;
    color:#cdd5e1;font-weight:650;transition:.16s ease
}
.main-nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.main-nav a.active{background:var(--nav-soft);color:#fff;box-shadow:inset 3px 0 0 var(--primary)}
.nav-icon{width:20px;text-align:center;font-size:17px;color:#8da9ff}
.sidebar-user{margin-top:auto;padding:14px 8px 2px;border-top:1px solid rgba(255,255,255,.1)}
.user-label{font-size:11px;color:#8f9bae}
.user-name{margin-top:3px;font-weight:750}
.logout-link{display:inline-block;margin-top:10px;color:#cfd7e4;font-size:13px}
.logout-link:hover{color:#fff}
.main{margin-left:245px;min-height:100vh}
.topbar{
    height:72px;padding:0 30px;background:#fff;border-bottom:1px solid var(--line);
    display:flex;align-items:center;gap:15px;position:sticky;top:0;z-index:30
}
.topbar h1{margin:0;font-size:23px;line-height:1.2}
.top-user{margin-left:auto;color:var(--muted);font-weight:650}
.menu-btn{display:none;border:0;background:transparent;font-size:24px;padding:5px}
.content{max-width:1450px;margin:0 auto;padding:26px 30px 40px}
.card{
    background:var(--card);border:1px solid var(--line);border-radius:13px;
    padding:20px;box-shadow:var(--shadow)
}
.card+.card{margin-top:16px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.card-head h2,.card h2{margin:0;font-size:17px}
.eyebrow{display:block;font-size:10px;font-weight:800;letter-spacing:1.2px;color:var(--muted);margin-bottom:5px}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:16px;margin-bottom:16px}
.dashboard-grid{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:16px}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}
.stat-card{
    display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);
    border-radius:12px;padding:18px 19px;box-shadow:var(--shadow);transition:.18s ease
}
a.stat-card:hover{transform:translateY(-1px);border-color:#ced7e7}
.stat-card.static:hover{transform:none}
.stat-value{font-size:27px;font-weight:850;letter-spacing:-.7px}
.stat-value.small-value{font-size:18px}
.stat-label{font-size:12px;color:var(--muted)}
.compact-stats{margin-top:16px}
.quick-card{display:flex;flex-direction:column;gap:10px}
.action-tile{
    display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);
    border-radius:10px;transition:.16s ease
}
.action-tile:hover{background:#fafbfc;border-color:#ccd5e4}
.action-tile.primary-tile{background:var(--primary-soft);border-color:#d8e5ff}
.action-icon{width:37px;height:37px;border-radius:9px;display:grid;place-items:center;background:#f0f3f8;font-size:19px}
.primary-tile .action-icon{background:#fff;color:var(--primary)}
.action-tile span:last-child{display:flex;flex-direction:column;gap:3px}
.action-tile small{color:var(--muted)}
.activity-list{display:flex;flex-direction:column}
.activity-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.activity-row:last-child{border-bottom:0}
.activity-row>div:first-child{display:flex;flex-direction:column;gap:3px}
.activity-row span{color:var(--muted);font-size:12px}
.activity-meta{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.activity-meta small{color:var(--muted)}
.btn{
    min-height:40px;border:0;border-radius:9px;padding:0 15px;font-weight:750;
    display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.16s ease
}
.btn.primary{background:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary-dark)}
.btn.secondary{background:#eef1f5;color:#263246}
.btn.secondary:hover{background:#e5e9ef}
.btn.danger{background:var(--danger);color:#fff}
.btn.small{min-height:34px;padding:0 12px;font-size:12px}
.btn.wide{width:100%}
.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.text-link{color:var(--primary);font-size:12px;font-weight:750}
.form-stack{display:flex;flex-direction:column;gap:14px}
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-size:12px;font-weight:750;color:#344054}
.field-note{color:var(--muted);font-size:11px}
.flash{padding:12px 14px;border-radius:9px;margin-bottom:15px;border:1px solid}
.flash.error{background:var(--danger-soft);border-color:#f4c4c0;color:var(--danger)}
.flash.success{background:var(--success-soft);border-color:#bfe4d3;color:var(--success)}
.info-card{box-shadow:none;background:#fafbfc}
.compact-info{display:flex;flex-direction:column}
.check-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.check-row:last-child{border-bottom:0}
.check-row span{color:var(--muted)}
.check-row strong{font-size:12px;text-align:right}
.details-box{margin-bottom:14px;border:1px solid var(--line);border-radius:9px;padding:10px;background:#fafbfc}
.details-box summary{cursor:pointer;font-weight:700}
.details-box pre{white-space:pre-wrap;word-break:break-word;font:12px/1.5 Consolas,monospace}
.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:12px}
.project-card{border:1px solid var(--line);border-radius:11px;padding:15px;background:#fff}
.project-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.project-card-head>div{display:flex;flex-direction:column;gap:3px}
.project-card-head small{color:var(--muted)}
.status-dot{width:9px;height:9px;background:#24a36a;border-radius:50%;margin-top:5px}
.project-path{margin:13px 0;color:#566174;font-size:11px;word-break:break-all;background:#f7f8fa;border-radius:7px;padding:9px}
.project-actions{display:flex;justify-content:flex-end}
.count-badge{
    min-width:26px;height:26px;padding:0 8px;border-radius:999px;background:#eef1f5;
    display:inline-grid;place-items:center;font-size:11px;font-weight:800;color:#465166
}
.repository-title{display:flex;align-items:center;justify-content:space-between;gap:16px}
.repository-title h2{font-size:20px;margin:0 0 6px}
.table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px}
table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}
th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:#737d8d;background:#fafbfc;white-space:nowrap}
td{font-size:12px}
tr:last-child td{border-bottom:0}
.hash-cell{max-width:310px;word-break:break-all;font-size:11px}
.mode-pill,.status-pill{
    display:inline-flex;align-items:center;min-height:25px;padding:0 8px;border-radius:999px;
    background:#eef1f5;font-size:10px;font-weight:800;white-space:nowrap
}
.status-pill.success{background:var(--success-soft);color:var(--success)}
.status-pill.warning{background:var(--warning-soft);color:var(--warning)}
.choice-list{display:flex;flex-direction:column;gap:7px}
.choice-item{
    display:flex!important;align-items:center;gap:9px!important;padding:10px 11px;border:1px solid var(--line);
    border-radius:9px;background:#fff;cursor:pointer;margin:0!important
}
.choice-item:hover{background:#fafbfc}
.simple-list{display:flex;flex-direction:column}
.simple-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.simple-row:last-child{border-bottom:0}
.simple-row>div{display:flex;flex-direction:column;gap:3px}
.simple-row small{color:var(--muted)}
.empty-state{padding:18px;border:1px dashed var(--line-strong);border-radius:10px;text-align:center;color:var(--muted);background:#fafbfc}
.empty-state.compact{padding:12px}
.update-layout{display:grid;grid-template-columns:minmax(290px,.78fr) minmax(0,1.22fr);gap:16px;align-items:start}
.step-title{display:flex;align-items:center;gap:11px;margin-bottom:17px}
.step-title h2{margin:0 0 2px}
.step-title small{color:var(--muted)}
.step-number{
    width:30px;height:30px;border-radius:9px;background:var(--primary-soft);color:var(--primary);
    display:grid;place-items:center;font-weight:850
}
.upload-box{display:flex;align-items:center;gap:9px}
.upload-box input[type=file]{padding:7px;background:#fafbfc}
.upload-status{margin-top:12px;border-radius:9px;padding:11px 12px;border:1px solid var(--line);word-break:break-word}
.muted-status{background:#fafbfc;color:var(--muted)}
.active-status{background:var(--primary-soft);border-color:#d7e4ff;color:#31549d}
.ready-status{background:var(--success-soft);border-color:#bfe4d3;color:#155f43}
.error-status{background:var(--danger-soft);border-color:#f4c4c0;color:var(--danger)}
.ready-line{display:flex;justify-content:space-between;gap:10px;align-items:center}
.ready-meta{display:flex;flex-direction:column;gap:4px;margin-top:7px;font-size:11px}
.progress{height:6px;border-radius:999px;background:#e8ebf0;overflow:hidden;margin-top:8px}
.progress>div{height:100%;width:0;background:var(--primary);transition:width .16s ease}
.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.segmented,.scope-switch{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;background:#f0f2f5;border-radius:10px}
.seg-option{
    min-height:37px;border-radius:7px;display:flex!important;align-items:center;justify-content:center;
    margin:0!important;font-size:11px!important;font-weight:750!important;color:#677284!important;
    cursor:pointer;padding:0 8px;transition:.15s ease
}
.seg-option input{position:absolute;opacity:0;pointer-events:none}
.seg-option.active{background:#fff;color:var(--text)!important;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.scope-panel{margin-top:9px}
.preview-card{margin-top:16px}
.preview-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:15px}
.preview-summary>div{padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}
.preview-summary small{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}
.preview-summary strong{display:block;word-break:break-word;font-size:12px}
.preview-summary .summary-wide{grid-column:1/-1}
.publish-box{max-width:520px;margin:17px 0 0 auto}
.confirm-row{display:flex!important;gap:9px!important;align-items:flex-start;margin:0 0 10px!important;font-size:12px!important;font-weight:650!important}
.confirm-row input{margin-top:2px}
.result-card{text-align:center;padding:35px 20px;border-radius:14px;margin-bottom:16px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}
.result-card h2{margin:10px 0 6px;font-size:21px}
.result-card p{margin:0 0 16px;color:var(--muted)}
.result-icon{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;margin:0 auto;font-size:25px;font-weight:900}
.success-result .result-icon{background:var(--success-soft);color:var(--success)}
.error-result .result-icon{background:var(--danger-soft);color:var(--danger)}
.auth-body{
    min-height:100vh;display:grid;place-items:center;padding:24px;
    background:radial-gradient(circle at 20% 10%,#23395d 0,#152033 35%,#101827 100%)
}
.auth-card{width:min(430px,100%);background:#fff;border-radius:15px;padding:30px;box-shadow:0 25px 70px rgba(0,0,0,.25)}
.auth-logo{display:flex;align-items:center;gap:11px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.auth-logo>div:last-child{display:flex;flex-direction:column;gap:2px}
.auth-logo strong{font-size:14px;letter-spacing:1.4px}
.auth-logo span{font-size:11px;color:var(--muted)}
.auth-heading{margin:22px 0 18px}
.auth-heading h1{margin:0 0 5px;font-size:24px}
.auth-heading p{margin:0;color:var(--muted)}
.sidebar-backdrop{display:none}
@media(max-width:1100px){
    .dashboard-grid,.update-layout{grid-template-columns:1fr}
}
@media(max-width:980px){
    .sidebar{transform:translateX(-100%);transition:transform .2s ease}
    .sidebar.open{transform:translateX(0)}
    .main{margin-left:0}
    .menu-btn{display:block}
    .topbar{padding:0 18px}
    .content{padding:20px 18px 32px}
    .sidebar-backdrop.show{display:block;position:fixed;inset:0;background:rgba(7,12,20,.45);z-index:40}
    body.menu-open{overflow:hidden}
}
@media(max-width:760px){
    .two-col,.stats-grid,.option-grid{grid-template-columns:1fr}
    .preview-summary{grid-template-columns:1fr 1fr}
    .top-user{display:none}
    .topbar h1{font-size:20px}
}
@media(max-width:560px){
    .content{padding:14px 12px 26px}
    .topbar{height:64px;padding:0 12px}
    .card{padding:15px;border-radius:11px}
    .preview-summary{grid-template-columns:1fr}
    .preview-summary .summary-wide{grid-column:auto}
    .scope-switch{grid-auto-flow:row}
    .segmented{grid-auto-flow:row}
    .upload-box{flex-direction:column;align-items:stretch}
    .repository-title{align-items:flex-start;flex-direction:column}
}
