.col-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--panel);z-index:1}.col-title{font-weight:600}.col-add{background:transparent;border:none;color:var(--blue);cursor:pointer;font:inherit}.col-add:hover{text-decoration:underline}.col-empty{padding:16px 12px;color:var(--muted)}.item-row{display:flex;align-items:flex-start;gap:4px}.item-main{flex:1;min-width:0}.item-name{font-weight:600;word-break:break-word}.item-sub{color:var(--muted);font-size:12px;margin-top:2px}.item-actions{display:flex;gap:2px;opacity:.35}.list-item:hover .item-actions,.list-item.selected .item-actions{opacity:1}.col-error{margin:8px 12px}.icon-btn{background:transparent;border:none;cursor:pointer;padding:2px 4px;font-size:12px;border-radius:4px}.icon-btn:hover{background:var(--gray-bg)}.inline-form{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--bg)}.inline-form input,.inline-form select{width:100%}.inline-form-actions{display:flex;gap:6px;justify-content:flex-end}.detail,.detail-empty{padding:16px}.detail-empty{color:var(--muted)}.detail-head{display:flex;align-items:center;gap:8px}.detail-head h2{flex:1;margin:0}.detail-info{display:grid;grid-template-columns:120px 1fr;gap:4px 12px;margin:12px 0}.detail-info dt{color:var(--muted)}.detail-info dd{margin:0;white-space:pre-wrap}.detail-form{display:flex;flex-direction:column;gap:8px;margin:12px 0;max-width:420px}.detail-form label{display:flex;flex-direction:column;gap:2px;color:var(--muted)}.detail-actions{display:flex;gap:8px}.rt{margin-top:16px}.rt-head{display:flex;align-items:center;justify-content:space-between}.rt-head h3{margin:0}.rt-table{width:100%;border-collapse:collapse;margin-top:8px;table-layout:fixed}.rt-table th{text-align:left;color:var(--muted);font-weight:500;padding:4px 6px;border-bottom:1px solid var(--border)}.rt-table td{padding:6px;border-bottom:1px solid var(--border);vertical-align:top}.rt-table th:nth-child(1){width:140px}.rt-table th:nth-child(2){width:80px}.rt-table th:nth-child(3){width:130px}.rt-table th:nth-child(4){width:130px}.rt-row{cursor:pointer}.rt-row:hover{background:var(--bg)}.rt-note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rt-edit{background:var(--blue-bg)}.rt-edit input,.rt-edit select,.rt-edit textarea{width:100%;font:inherit}.rt-edit textarea{resize:none}.rt-preview{font-size:12px;color:var(--muted);margin-top:2px}.rt-actions{display:flex;gap:6px;margin-top:4px}.rt-error{color:var(--red-fg);margin-top:4px}.settings-page{max-width:560px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:16px}.settings-page>a{color:var(--blue);text-decoration:none}.settings-page section{background:#fff;border:1px solid #d0d7de;border-radius:8px;padding:16px}.settings-page h2{margin:0 0 12px;font-size:18px}.settings-page form{display:flex;flex-direction:column;gap:8px}.settings-page label{font-weight:600}.settings-page .form-error{color:#cf222e}.settings-page .form-ok{color:#1a7f37;padding:6px 8px}.settings-page .tg-banner{background:#ffebe9;border:1px solid #cf222e;color:#cf222e;margin-bottom:12px}.settings-page button:not(.btn-primary){background:#f6f8fa;border:1px solid #d0d7de;border-radius:6px;padding:6px 12px;cursor:pointer;font:inherit;font-weight:600}.settings-page button:disabled{opacity:.6;cursor:default}.settings-actions{display:flex;flex-direction:row;gap:8px}.checkbox-row{display:flex;align-items:center;gap:8px}.hint{color:#666;font-size:13px;margin:6px 0 0}.settings-page.admin-page{max-width:900px}.admin-page h1{margin:0;font-size:22px}.admin-head{display:flex;align-items:center;justify-content:space-between}.admin-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.admin-stat{display:flex;flex-direction:column;gap:2px}.admin-stat-label{color:#666;font-size:13px}.admin-add{margin-bottom:12px}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th,.admin-table td{text-align:left;padding:8px;border-bottom:1px solid #d0d7de;vertical-align:top}.admin-actions{display:flex;flex-wrap:wrap;gap:4px}.admin-reset{display:flex;gap:4px;margin-top:6px}:root{--bg: #f6f8fa;--panel: #ffffff;--border: #d0d7de;--text: #1f2328;--muted: #656d76;--blue: #0969da;--blue-bg: #ddf4ff;--topbar: #24292f;--yellow-bg: #fff8c5;--yellow-fg: #7d4e00;--green-bg: #dafbe1;--green-fg: #116329;--red-bg: #ffebe9;--red-fg: #cf222e;--gray-bg: #eaeef2;--gray-fg: #57606a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:0 16px;height:48px;background:var(--topbar);color:#fff}.topbar-brand{color:#fff;font-weight:600;text-decoration:none}.topbar-spacer{flex:1}.topbar-user{color:#c9d1d9}.topbar-btn{position:relative;background:transparent;color:#fff;border:1px solid #57606a;border-radius:6px;padding:4px 10px;cursor:pointer}.topbar-btn:hover{background:#32383f}.alert-dot{position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:#f85149}.test-banner{background:var(--yellow-bg);color:var(--yellow-fg);padding:6px 16px;font-weight:600;border-bottom:1px solid #d4a72c}.columns{display:flex;flex:1;min-height:0}.col{overflow-y:auto;background:var(--panel);border-right:1px solid var(--border)}.col-projects{width:200px;flex:none}.col-releases{width:260px;flex:none}.col-detail{flex:1;border-right:none}.list-item{padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border);border-left:3px solid transparent}.list-item:hover{background:var(--bg)}.list-item.selected{background:var(--blue-bg);border-left-color:var(--blue)}.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;font-weight:600}.badge-gray{background:var(--gray-bg);color:var(--gray-fg)}.badge-yellow{background:var(--yellow-bg);color:var(--yellow-fg)}.badge-green{background:var(--green-bg);color:var(--green-fg)}.badge-red{background:var(--red-bg);color:var(--red-fg)}.center-screen{display:flex;align-items:center;justify-content:center;min-height:100%}.auth-card{width:320px;padding:24px;background:var(--panel);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:8px}.auth-card h1{margin:0 0 8px;font-size:20px;text-align:center}.auth-card label{font-weight:600}.auth-card input,input,select,textarea{padding:6px 8px;border:1px solid var(--border);border-radius:6px;font:inherit}.auth-switch{text-align:center;margin:8px 0 0;color:var(--muted)}.auth-switch a{color:var(--blue)}.form-error{color:var(--red-fg);background:var(--red-bg);padding:6px 8px;border-radius:6px}.btn-primary{background:#1f883d;color:#fff;border:1px solid #1a7f37;border-radius:6px;padding:6px 12px;cursor:pointer;font:inherit;font-weight:600}.btn-primary:disabled{opacity:.6;cursor:default}.auth-lang{position:fixed;top:12px;right:12px}
