:root{color:#1c1a17;background:#f4f2ee;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{display:flex;min-height:100vh}.auth-loading,.login-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.auth-loading{color:#625d55;font-weight:700}.login-panel{display:grid;width:min(100%,380px);gap:18px;padding:30px;border:1px solid #e3ded5;border-radius:8px;background:#fff;box-shadow:0 18px 50px #241f1814}.login-brand{color:#1a1815;font-size:24px;font-weight:750;letter-spacing:0}.login-brand span{color:#0f6e56}.login-panel h1{margin:8px 0 0;font-size:22px;line-height:1.2}.login-submit{width:100%;min-height:42px}.sidebar{width:230px;flex:0 0 auto;padding:22px 0;background:#1a1815;color:#cfc9bf}.brand{padding:0 24px 20px;color:#fff;font-size:22px;font-weight:750;letter-spacing:0}.brand span{color:#0f6e56}.sidebar-user{display:grid;gap:5px;margin:0 16px 10px;padding:12px;border:1px solid #302c27;border-radius:8px;background:#211f1b;color:#fff;font-size:13px}.sidebar-user span{color:#9f988d;font-size:12px}.sidebar-logout{justify-self:start;margin-top:4px;padding:0;border:0;background:transparent;color:#cfc9bf;font-size:12px;font-weight:700}.sidebar-logout:hover{color:#fff}.nav-group{margin-top:16px}.nav-label{padding:6px 24px;color:#777167;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.12em}.nav-item{display:block;width:100%;padding:10px 24px;border:0;border-left:3px solid transparent;background:transparent;color:inherit;text-align:left}.nav-item:hover,.nav-item.active{background:#262320;color:#fff}.nav-item.active{border-left-color:#0f6e56;font-weight:700}.workspace{flex:1;width:calc(100vw - 230px);max-width:1180px;padding:30px}.page-head{margin-bottom:18px}.page-head h1{margin:0;font-size:25px;line-height:1.2}.page-head p{margin:6px 0 0;color:#7b746a}.panel{margin-bottom:18px;padding:22px;border:1px solid #e3ded5;border-radius:8px;background:#fff}.form-grid,.modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}label{display:grid;gap:7px;color:#625d55;font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid #d7d1c7;border-radius:8px;background:#fff;color:#1c1a17;font-size:14px}input,select{min-height:40px;padding:8px 10px}textarea{min-height:94px;padding:10px 12px;resize:vertical}input[type=checkbox]{width:18px;min-height:18px}.wide{grid-column:1 / -1}.form-actions{display:flex;align-items:center;gap:12px}.primary,.ghost,.danger,.icon-button{border-radius:8px;min-height:36px;padding:8px 14px;border:1px solid transparent;font-weight:700}.primary{background:#0f6e56;color:#fff}.primary:hover{background:#0b5945}.ghost{border-color:#d7d1c7;background:#fff;color:#5f5a52}.ghost:hover{border-color:#0f6e56;color:#0f6e56}.danger{border-color:#e9c3bb;background:#fff7f5;color:#9d3427}.icon-button{min-width:36px;padding:0;background:#f4f2ee;color:#625d55}.muted{color:#8a8378;font-size:13px}.alert{margin:0 0 14px;padding:10px 12px;border-radius:8px;font-size:13px}.alert.error{border:1px solid #e8bbb6;background:#fff0ee;color:#8d2d2a}.alert.success{border:1px solid #b8d8c9;background:#edf8f2;color:#0f6e56}.status-panel{display:flex;align-items:center;gap:24px}.generation-history{align-items:end;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) auto}.generation-history label{display:grid;gap:8px}.generation-history select{width:100%}.status-panel>div{display:grid;gap:4px}.eyebrow{color:#8a8378;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.08em}.summary-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.summary-strip span{padding:5px 10px;border:1px solid #e3ded5;border-radius:8px;background:#fff;color:#625d55;font-size:13px}.candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.candidate-card{display:flex;min-width:0;flex-direction:column;gap:12px;padding:18px;border:1px solid #e3ded5;border-radius:8px;background:#fff}.candidate-card header,.candidate-card footer,.config-panel header,.data-panel header,.modal header,.modal footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.header-actions{display:flex;flex-wrap:wrap;gap:8px}.candidate-card header span{color:#8a8378;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.candidate-card header strong{color:#0f6e56;font-size:13px}.candidate-card h2{margin:0;font-size:17px;line-height:1.3}.blocks{display:grid;gap:10px}.block{overflow:hidden;border:1px solid #ece7df;border-radius:8px}.block h3{margin:0;padding:7px 10px;border-bottom:1px solid #ece7df;background:#fbfaf8;color:#726c62;font-size:12px}.block p{margin:0;padding:10px;color:#37332e;font-size:14px;white-space:pre-wrap}.empty{color:#7b746a}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 12px;border-bottom:1px solid #eee8df;text-align:left;vertical-align:top}th{color:#8a8378;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:600;letter-spacing:.06em}td{color:#38342f}.actions{display:flex;flex-wrap:wrap;gap:8px;white-space:nowrap}.tag{display:inline-block;margin:0 6px 6px 0;padding:3px 7px;border:1px solid #d7d1c7;border-radius:8px;background:#fbfaf8;color:#4f4942;font-size:12px}.empty-cell{color:#8a8378;text-align:center}.data-panel{display:grid;gap:18px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.metric-empty{grid-column:1 / -1}.metric-chip{display:inline-grid;grid-template-columns:auto auto auto;align-items:center;gap:6px;margin:0 8px 6px 0;padding:5px 8px;border:1px solid #e3ded5;border-radius:8px;background:#fbfaf8;color:#4f4942;white-space:nowrap}.metric-chip strong,.metric-chip span,.metric-chip em{font-size:12px;font-style:normal}.metric-chip em{color:#8a8378}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:24px;background:#14120f7a}.modal{width:min(780px,100%);max-height:88vh;overflow:auto;padding:22px;border-radius:10px;background:#fff}.final-modal{width:min(1120px,100%)}.edit-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.edit-col{min-width:0}.edit-col h3{margin:0 0 10px;color:#4f4942;font-size:14px}.locked-block{display:grid;gap:8px;margin-bottom:12px;padding:12px;border:1px solid #ece7df;border-radius:8px;background:#fbfaf8}.locked-block .block-head{color:#686158;font-size:12px;font-weight:750}.locked-block p{margin:0;color:#312d28;font-size:14px;white-space:pre-wrap}.locked-block textarea{min-height:124px;background:#fff}.modal h2,.config-panel h2{margin:0;font-size:18px}.modal footer{justify-content:flex-start;margin-top:18px;padding-top:16px;border-top:1px solid #eee8df}.inline-check{display:flex;align-items:center;gap:8px;min-height:32px}.inline-check input{flex:0 0 auto}.inline-check em{color:#8a8378;font-style:normal;font-weight:500}.check-list,.permission-list{display:grid;gap:10px;padding:12px;border:1px solid #eee8df;border-radius:8px;background:#fbfaf8}.check-list h3,.permission-group h3{margin:0;color:#4f4942;font-size:13px}.permission-list{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-group{display:grid;align-content:start;gap:8px;min-width:0}@media(max-width:860px){.app-shell{display:block}.sidebar{width:100%}.workspace{width:100%;padding:20px}.form-grid,.modal-grid,.candidate-grid,.edit-cols,.metric-grid,.permission-list{grid-template-columns:1fr}}
