:root{--ink:#18231e;--muted:#65716a;--paper:#f5f4ee;--card:#fff;--line:#dde2dc;--green:#1f6b4f;--green-2:#e3f2eb;--gold:#d89b42;--danger:#a33f3f;--shadow:0 10px 30px rgba(31,46,38,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}.site-header{height:70px;background:#173b2f;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1500px)/2));box-shadow:0 2px 12px #0002;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:#fff;font-weight:750}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--gold);color:#173b2f;font-size:13px}.site-header nav{display:flex;gap:22px;align-items:center}.site-header nav a,.link-button{color:#e9f2ed;border:0;background:none;cursor:pointer;padding:8px 0}.inline-form{display:inline}.messages{position:fixed;right:20px;top:82px;z-index:30}.message{padding:12px 16px;background:#fff;border-left:4px solid var(--green);border-radius:8px;box-shadow:var(--shadow)}main{max-width:1500px;margin:auto;padding:30px 28px 60px}.page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.page-heading h1,.narrow-page h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.2rem);margin:.15em 0}.page-heading p{max-width:700px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800;color:var(--green);margin:0}.summary-chip{display:flex;gap:8px;align-items:center;background:var(--green-2);border-radius:999px;padding:10px 16px}.summary-chip strong{font-size:1.25rem}.workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.75fr);gap:24px}.filter-card{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px;align-items:end;background:#fff;border:1px solid var(--line);padding:16px;border-radius:16px;box-shadow:var(--shadow)}label{display:block;font-weight:700;font-size:.84rem;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid #cfd7d1;background:#fff;border-radius:9px;padding:10px 12px;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid #b8dfcd;border-color:var(--green)}.check{display:flex;gap:7px;align-items:center;margin:0}.check input{width:auto}.button{border:1px solid var(--green);border-radius:9px;padding:9px 14px;background:#fff;color:var(--green);font-weight:750;cursor:pointer;text-align:center}.button.primary{background:var(--green);color:#fff}.button.subtle{border-color:transparent;background:#eef0ec}.button.small{padding:6px 10px;font-size:.8rem}.button.full{width:100%;margin-top:16px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px}.section-title h2{margin:0;font-family:Georgia,serif}.position-list{display:grid;gap:10px}.position-card{display:grid;grid-template-columns:44px 1fr auto;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px;transition:.15s}.position-card:hover{border-color:#9cbbaa;transform:translateY(-1px);box-shadow:var(--shadow)}.position-card.selected{background:#f4faf6;border-color:#b6d7c6}.position-number{font-family:Georgia,serif;font-size:1.25rem;color:var(--green)}.position-meta{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.8rem}.position-meta span{margin-left:auto}.position-content h3{margin:7px 0 3px}.position-content p{margin:4px 0;color:var(--muted)}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.tags span{background:#edf0ec;border-radius:99px;padding:4px 8px;font-size:.72rem}.observation{font-size:.82rem;border-left:3px solid var(--gold);padding-left:8px}.icon-button{width:36px;height:36px;border-radius:50%;border:0;background:var(--green);color:#fff;font-size:1.4rem;cursor:pointer}.selected-label{font-size:.75rem;color:var(--green);font-weight:800}.sticky-panel{position:sticky;top:94px;background:#fcfcf9;border:1px solid var(--line);border-radius:18px;padding:18px;max-height:calc(100vh - 120px);overflow:auto;box-shadow:var(--shadow)}.notice{background:#fff4dc;border-radius:9px;padding:10px;font-size:.84rem}.drag-help{color:var(--muted);font-size:.78rem}.preference-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}.preference-list>li{display:grid;grid-template-columns:30px 1fr auto;gap:9px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px;cursor:grab}.preference-list>li.dragging{opacity:.4}.rank{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--green-2);color:var(--green);font-weight:800}.preference-main{min-width:0}.preference-main strong,.preference-main small{display:block}.preference-main small{color:var(--muted);margin-top:3px}.preference-actions{display:flex;flex-direction:column;gap:3px}.preference-actions form{margin:0}.preference-actions button{border:0;background:#eef1ee;border-radius:6px;width:26px;height:24px;cursor:pointer}.preference-actions .danger{color:var(--danger)}.route-result{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:.76rem;color:var(--green)}.route-button{border:0;background:none;color:var(--green);padding:6px 0 0;font-size:.75rem;text-decoration:underline;cursor:pointer}.empty-preferences{display:flex!important;flex-direction:column;text-align:center;color:var(--muted);cursor:default!important}.pagination{display:flex;justify-content:center;gap:18px;align-items:center;margin:22px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.login-shell{min-height:calc(100vh - 160px);display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:8vw}.login-intro h1{font-family:Georgia,serif;font-size:clamp(2.5rem,6vw,5rem);line-height:1.02;margin:.2em 0}.login-intro p:last-child{font-size:1.15rem;color:var(--muted);max-width:600px}.login-card{max-width:430px;width:100%;justify-self:end}.login-card h2{font-size:1.8rem;margin-top:0}.login-card label{margin-top:15px}.muted,.fine-print{color:var(--muted)}.fine-print{font-size:.78rem}.field-error,.errorlist{color:var(--danger)}.narrow-page{max-width:760px;margin:20px auto}.narrow-page.wide{max-width:1150px}.form-card{margin-top:25px}.form-row{margin-bottom:16px}.form-row small{display:block;color:var(--muted);margin-top:5px}.status-row,.button-row{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:16px}.status{border-radius:999px;padding:4px 9px;background:#eee;font-size:.78rem}.status.success{background:var(--green-2);color:var(--green)}.status.failed,.status.not_found{background:#f8e4e1;color:var(--danger)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:24px 0}.stats div{background:#fff;padding:24px;border-radius:16px;border:1px solid var(--line)}.stats strong,.stats span{display:block}.stats strong{font-size:2rem;color:var(--green)}.admin-links{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.admin-links .card{color:var(--ink)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.simple-list>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line)}@media(max-width:1000px){.workspace{grid-template-columns:1fr}.sticky-panel{position:static;max-height:none}.filter-card{grid-template-columns:1fr 1fr}.login-shell{grid-template-columns:1fr}.login-card{justify-self:start}.admin-links,.admin-grid{grid-template-columns:1fr}}@media(max-width:650px){.site-header{height:auto;padding:12px 16px;align-items:flex-start}.site-header nav{gap:10px;flex-wrap:wrap;justify-content:flex-end}.brand span:last-child{display:none}main{padding:22px 14px}.page-heading{align-items:flex-start;gap:12px}.summary-chip span{display:none}.filter-card{grid-template-columns:1fr}.position-card{grid-template-columns:32px 1fr}.position-action{grid-column:2}.position-meta{display:block}.position-meta span{display:block;margin-top:3px}.stats{grid-template-columns:1fr}.login-intro h1{font-size:2.6rem}}
