:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#223b35;background:#f6f8f7;font-size:16px;font-synthesis:none;--green:#153e32;--border:#dce4df;--muted:#62736c;--lime:#c1ed88}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{transition:background .15s}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:var(--green)}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #648c37;outline-offset:3px}header{height:86px;padding:0 5%;display:flex;align-items:center;gap:60px;background:white;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:24px;text-decoration:none;letter-spacing:-1px}.brand span{font-weight:400;margin-left:-6px}.local{margin-left:auto;font-size:12px;letter-spacing:1.4px;border:1px solid var(--border);padding:7px 11px;border-radius:5px;color:var(--muted)}nav{display:flex;gap:30px;height:100%}.nav{border:0;background:none;color:var(--muted);font-size:14px;padding:0;position:relative}.nav.active{color:var(--green);font-weight:650}.nav.active:after{content:"";position:absolute;bottom:0;height:3px;left:0;right:0;background:var(--green)}main{max-width:1440px;padding:42px 5% 0;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:25px}.eyebrow{font-size:12px;letter-spacing:1.9px;font-weight:650;color:#587268}h1{font-size:clamp(26px,2.7vw,39px);letter-spacing:-1.2px;font-weight:650;line-height:1.2;margin:12px 0}p{line-height:1.65;color:var(--muted)}.heading p{margin:0;font-size:16px}.primary{border:0;background:var(--green);color:white;border-radius:7px;padding:13px 20px;white-space:nowrap;font-size:14px;font-weight:650}.primary:hover{background:#285845}.notice{font-size:14px;color:#536a5c;min-height:25px;margin-bottom:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);background:white;border:1px solid var(--border);border-radius:10px;margin-bottom:32px;padding:24px 0}.stats>div{padding:0 25px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.stats>div:last-child{border:0}.stats span{font-size:14px;color:#4a6358}.stats strong{font-size:36px;line-height:1.2;font-weight:650;letter-spacing:-1px}.stats small{font-size:12px;color:var(--muted)}.workspace{display:grid;grid-template-columns:245px minmax(0,1fr);gap:32px}aside{align-self:start}h2{font-size:18px;letter-spacing:-.3px}.filter-title{display:flex;justify-content:space-between;align-items:center}.text-button{background:none;border:0;color:#557645;font-size:14px;padding:5px}label{display:block;font-size:14px;font-weight:550;margin:20px 0 8px}input,select{width:100%;padding:11px 12px;border:1px solid #d4ded7;border-radius:6px;background:white;color:#31483e;font-size:14px;min-height:42px}input::placeholder{color:#809087}input[type=search]{padding:13px 12px}.hint{font-size:12px;line-height:1.55}.filter-note{background:#eaf0e9;padding:20px;border-radius:8px;margin-top:26px;font-size:14px}.filter-note strong{display:block;font-size:14px;margin:10px 0}.filter-note p{font-size:13px;margin:0}.shield{background:#d4e6c8;border-radius:50%;padding:2px 7px}.tabs{display:flex;border-bottom:1px solid var(--border);gap:24px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:16px 1px;font-size:14px}.tabs .selected{color:var(--green);font-weight:650;border-bottom-color:var(--green)}.result-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:18px 0;color:var(--muted);font-size:14px}.sort-label{display:flex;align-items:center;gap:9px;margin:0;font-size:12px;font-weight:400}.sort-label select{width:auto;padding:7px 28px 7px 10px;min-height:36px;font-size:13px}#results{display:grid;gap:16px}.card{background:white;border:1px solid var(--border);border-radius:9px;padding:23px 25px;position:relative}.card-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.org{font-size:12px;font-weight:750;letter-spacing:1px;color:#587267;display:flex;align-items:center;gap:10px}.org-icon{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid #dae5df;background:#f2f6f2;color:#45633f;border-radius:6px;font-size:12px}.badge{display:inline-flex;font-size:12px;line-height:1.5;padding:4px 9px;border-radius:5px;background:#eaf4e5;color:#37662d;white-space:nowrap}.badge.warn{background:#fff1d7;color:#875a08}.badge.gray{background:#edf0ef;color:#5c6963}.badge.blue{background:#eaf0fc;color:#3c5f93}.card h3{font-size:19px;letter-spacing:-.35px;line-height:1.45;font-weight:650;margin:15px 0 9px;max-width:850px}.card .description{font-size:14px;line-height:1.65;margin:0;color:#66786d;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0}.tag{font-size:12px;border:1px solid #e1e7e2;color:#60705f;border-radius:4px;padding:3px 8px}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid #edf0ed;padding-top:16px;margin-top:17px}.deadline{font-size:14px;font-weight:650;display:flex;gap:10px;flex-wrap:wrap}.deadline small{font-weight:400;color:var(--muted);font-size:12px;align-self:center}.details-button{background:white;border:1px solid #cddacf;color:#214c38;border-radius:5px;padding:8px 12px;font-size:13px;font-weight:600;white-space:nowrap}.details-button:hover{background:#f0f5ef}.restriction{color:#896325;font-size:13px;margin-top:10px}.empty{padding:55px 30px;text-align:center;border:1px dashed var(--border);border-radius:8px;color:var(--muted);line-height:1.7}.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:25px}.source-card{padding:25px;background:white;border:1px solid var(--border);border-radius:8px}.source-card h3{margin-top:0;display:flex;justify-content:space-between;gap:10px}.source-card p{font-size:14px;overflow-wrap:anywhere}.source-card a{font-size:14px}.method{padding:15px 0;max-width:850px}.method p{font-size:14px}footer{display:flex;justify-content:space-between;gap:20px;padding:28px 0;border-top:1px solid var(--border);margin-top:50px;font-size:12px;color:var(--muted)}.muted{color:#87958b}dialog{border:1px solid var(--border);border-radius:12px;width:min(780px,94vw);max-height:88vh;padding:0;box-shadow:0 25px 100px #102c3433;color:#20382e}dialog::backdrop{background:#0d271f80;backdrop-filter:blur(3px)}.dialog-top{padding:18px 26px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:1px}.dialog-top button{background:#f1f5f2;border:0;border-radius:5px;padding:8px 12px}#detail-body{padding:26px}#detail-body h2{font-size:25px;line-height:1.45;margin:15px 0}#detail-body h3{font-size:16px;margin-top:26px}#detail-body p,#detail-body li{font-size:15px;line-height:1.7;overflow-wrap:anywhere}#detail-body li{margin-bottom:8px;color:#55695d}.evidence{background:#f2f5f1;padding:15px;border-left:3px solid #86ac65;font-size:14px;line-height:1.7;overflow-wrap:anywhere}.detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0}.detail-actions a{text-decoration:none}.skip{position:absolute;top:-60px;left:12px;background:white;padding:12px;z-index:20}.skip:focus{top:5px}[hidden]{display:none!important}@media(max-width:850px){header{gap:25px;padding:0 4%}.local{display:none}main{padding:30px 4% 0}.heading{align-items:flex-start}.heading h1{max-width:420px}.stats>div{padding:0 15px}.workspace{grid-template-columns:205px minmax(0,1fr);gap:20px}.card{padding:20px}.sort-label{font-size:0}.source-grid{grid-template-columns:1fr}}@media(max-width:620px){header{height:auto;flex-wrap:wrap;padding-top:16px;gap:8px 22px}.brand{font-size:22px}nav{gap:22px}.nav{padding:20px 0;font-size:13px}.heading{display:block}.heading .primary{margin-top:20px}.eyebrow{font-size:10px;letter-spacing:1px}.stats{grid-template-columns:repeat(2,1fr);gap:20px 0}.stats>div:nth-child(2){border:0}.stats strong{font-size:30px}.stats span{font-size:13px}.workspace{display:block}aside{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin-bottom:20px}aside label{margin:0;align-self:end}.filter-title{grid-column:1/-1}aside input,aside select,aside label{grid-column:1/-1}.filter-note,.hint{display:none}.card h3{font-size:17px}.card-top{align-items:flex-start}.badge{white-space:normal;max-width:50%;text-align:right}.card-bottom{align-items:flex-start}.deadline{display:block}.deadline small{display:block;margin-top:5px}.result-head{font-size:13px}footer{display:block;line-height:2}footer>span{display:block}.tabs{gap:25px}}
/* v0.2: calendar, funding evidence and code version */
header{gap:35px}.local{font-size:12px;letter-spacing:.2px;white-space:nowrap}.copyright{text-align:center}.copyright a{color:inherit;text-underline-offset:3px}.budget-line{font-size:14px;margin:14px 0 9px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.budget-line strong{color:#204e39;font-size:16px}.budget-line span{font-size:12px;color:var(--muted)}.budget-evidence summary{cursor:pointer;font-size:14px;padding:12px 0}.budget-evidence .evidence{margin:10px 0}.calendar-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}.calendar-toolbar h2{font-size:24px;margin:0}.calendar-toolbar p{margin:6px 0;font-size:14px}.month-controls{display:flex;align-items:center;gap:10px}.month-controls button{min-height:40px;min-width:40px;border:1px solid var(--border);border-radius:6px;background:white;color:var(--green);padding:8px 12px}.month-controls h3{font-size:17px;text-transform:capitalize;text-align:center;min-width:170px;margin:0}.calendar-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.calendar-filters label{margin:0}.calendar-filters select{width:210px}.calendar-filters p{margin-left:auto;font-size:14px}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px 22px;padding:22px 0;font-size:13px;color:#506258}.calendar-legend span{display:flex;gap:7px;align-items:center}.cal-dot{width:9px;height:9px;display:inline-block;border-radius:50%;flex-shrink:0}.cal-open{background:#388356}.cal-urgent{background:#ca423b}.cal-review{background:#b27817}.cal-closed{background:#87918b}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:var(--green);color:white;border-radius:8px 8px 0 0;text-align:center;padding:13px 0;font-size:14px}.calendar-grid{gap:1px;background:var(--border);border:1px solid var(--border);border-radius:0 0 8px 8px;overflow:hidden}.calendar-day,.calendar-blank{min-height:104px;background:white}.calendar-blank{background:#eef2ef}.calendar-day{border:0;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:13px;color:#3d5347;position:relative}.calendar-day:hover{background:#f0f6eb}.calendar-day.is-selected{background:#eaf4df;box-shadow:inset 0 0 0 2px #688c44}.calendar-day.is-today .day-number{background:var(--green);color:white;border-radius:50%;width:27px;height:27px;display:grid;place-items:center}.day-number{font-weight:650;font-size:15px;min-height:27px;display:grid;place-items:center}.day-dots{display:flex;gap:4px}.day-count{font-size:12px;color:#59705c}.calendar-day-list{display:grid;gap:12px}.calendar-entry{background:white;border:1px solid var(--border);border-radius:8px;padding:20px;display:flex;justify-content:space-between;align-items:center;gap:18px}.calendar-entry h3{font-size:16px;line-height:1.5;margin:10px 0}.calendar-entry p{font-size:13px;margin:7px 0}.calendar-entry .badge{max-width:none}.calendar-entry .details-button{flex-shrink:0}footer{align-items:center;flex-wrap:wrap}footer>span{flex:1}footer>span:last-child{text-align:right}@media(max-width:1000px){header{gap:20px}nav{gap:18px}.local{max-width:200px;white-space:normal}.calendar-toolbar{align-items:flex-start;flex-direction:column}.copyright{min-width:100%}footer>span:first-child,footer>span:last-child{flex-basis:100%;text-align:left}}@media(max-width:620px){header{justify-content:space-between}.local{display:block;font-size:11px;padding:5px 8px;max-width:190px;margin-left:0;order:0}nav{order:1;width:100%;justify-content:space-between;gap:15px}.nav{font-size:13px;padding:14px 0}.calendar-day,.calendar-blank{min-height:85px}.calendar-day{padding:7px;gap:5px}.day-count span{display:none}.month-controls{gap:6px;flex-wrap:wrap}.month-controls h3{min-width:140px;font-size:15px}.calendar-filters p{margin:0}.calendar-legend{font-size:12px;gap:12px}.calendar-entry{flex-direction:column;align-items:flex-start}.copyright{text-align:left}footer>span:last-child{text-align:left}.calendar-weekdays{font-size:12px}}

/* Account and access management */
[hidden]{display:none!important}.account{display:flex;align-items:center;gap:12px;font-size:13px}.account a{color:var(--green,#176b49)}.account button,.admin-panel button{padding:10px 14px;border-radius:8px;border:1px solid #d6e2dc;cursor:pointer}.auth-card{max-width:480px;margin:60px auto;background:#fff;padding:36px;border:1px solid #dce6df;border-radius:16px}.auth-card h1{font-size:32px}.auth-card label{display:block;margin:18px 0 8px}.auth-card input,.admin-panel input{width:100%;padding:12px;border:1px solid #bdcfc3;border-radius:8px;font:inherit}.auth-card .primary{width:100%;margin-top:24px}.auth-card p{line-height:1.6}.auth-card [role=status],#admin-message{color:#7c351e}.admin-panel{background:#fff;padding:24px;margin:24px 0;border:1px solid #dce6df;border-radius:12px}.invite-form{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;max-width:800px}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid #e0e8e3;overflow-wrap:anywhere}.admin-row p{margin:6px 0;color:#52685a}.row-actions{display:flex;gap:8px;flex-wrap:wrap}#invite-result{max-width:800px;padding:20px 0}#invite-result input{margin:8px 0}button:disabled{opacity:.6;cursor:wait}
@media(max-width:760px){header{flex-wrap:wrap;gap:12px}.account{width:100%;justify-content:flex-end}.auth-card{margin:24px auto;padding:24px}.invite-form{grid-template-columns:1fr}.admin-row{align-items:flex-start;flex-direction:column}.admin-panel{padding:18px}}
