.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.76rem 1.2rem;min-height:2.85rem;border-radius:.75rem;border:1px solid transparent;font-size:.86rem;font-weight:650;line-height:1.2;text-align:center;transition:background var(--transition),border-color var(--transition),transform var(--transition);text-decoration:none}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:active{background:var(--primary-active)}.btn-secondary{background:var(--secondary);color:var(--on-secondary)}.btn-secondary:hover{background:var(--secondary-hover)}.btn-outline{border-color:var(--border-strong);background:var(--surface);color:var(--text)}.btn-outline:hover{background:var(--surface-alt);border-color:var(--primary)}.btn-ghost{color:var(--primary-text)}.btn-ghost:hover{background:var(--primary-soft)}.btn-small{padding:.55rem .8rem;min-height:2.55rem;font-size:.78rem}.btn-block{width:100%}.btn[disabled],button[disabled]{background:var(--disabled-bg);color:var(--disabled-text);border-color:transparent;transform:none;opacity:1}
.icon-btn{display:inline-grid;place-items:center;min-width:2.75rem;min-height:2.75rem;border:1px solid transparent;border-radius:.65rem;background:transparent;color:var(--muted);transition:background var(--transition),color var(--transition)}.icon-btn:hover{background:var(--surface-alt);color:var(--text)}.text-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.86rem;font-weight:650;color:var(--primary-text);border:0}.text-link:hover{text-decoration:underline;text-underline-offset:.25rem}.text-link .icon{width:1rem;height:1rem}
.badge{display:inline-flex;align-items:center;gap:.35rem;border:1px solid transparent;padding:.23rem .6rem;border-radius:99px;font-size:.69rem;font-weight:650;line-height:1.4;white-space:normal}.badge .icon{width:.85rem;height:.85rem}.badge-primary{background:var(--primary-soft);color:var(--primary-text)}.badge-info{background:var(--info-soft);color:var(--info-text)}.badge-success{background:var(--success-soft);color:var(--success-text)}.badge-warning{background:var(--warning-soft);color:var(--warning-text)}.badge-danger{background:var(--danger-soft);color:var(--danger-text)}.badge-accent{background:var(--accent-soft);color:var(--accent-text)}.badge-neutral{background:var(--neutral-soft);color:var(--neutral-text)}.badge-outline{border-color:var(--border);color:var(--muted)}
.notice{display:flex;align-items:flex-start;gap:.6rem;border:1px solid var(--info-border);background:var(--info-soft);color:var(--info-text);border-radius:.8rem;padding:.85rem 1rem;font-size:.8rem}.notice .icon{margin-top:.15rem;width:1rem;height:1rem}.notice-warning{background:var(--warning-soft);color:var(--warning-text);border-color:var(--warning-border)}.notice-danger{background:var(--danger-soft);color:var(--danger-text);border-color:var(--danger-border)}.notice-success{background:var(--success-soft);color:var(--success-text);border-color:var(--success-border)}.runtime-notice{margin-top:1rem}.runtime-notice button{border:0;color:inherit;text-decoration:underline;font-weight:700}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.field{display:grid;gap:.45rem}.field-label{font-size:.77rem;font-weight:650;color:var(--text)}.input{width:100%;min-width:0;padding:.8rem .95rem;border:1px solid var(--border-strong);border-radius:.7rem;background:var(--surface);color:var(--text);outline-offset:2px}.input::placeholder{color:var(--subtle)}.input:focus{border-color:var(--primary)}
.search-field{display:flex;align-items:center;gap:.7rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:.85rem;padding:.45rem .5rem .45rem 1rem}.search-field>.icon{color:var(--subtle)}.search-field:focus-within{outline:2px solid var(--focus);outline-offset:3px}.search-field input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--text);padding:.4rem 0;font-size:.87rem}.search-field input::placeholder{color:var(--subtle)}.search-field .btn{min-height:2.65rem;padding:.65rem .95rem}.search-field input::-webkit-search-cancel-button{cursor:pointer}
.dropdown{position:relative}.dropdown>summary{list-style:none;cursor:pointer}.dropdown>summary::-webkit-details-marker{display:none}.dropdown-panel{position:absolute;right:0;top:calc(100% + .4rem);min-width:11.5rem;max-width:calc(100vw - 2rem);z-index:55;padding:.4rem;background:var(--surface-raised);border:1px solid var(--border);border-radius:.8rem;box-shadow:var(--shadow-lg)}.dropdown-panel button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.6rem .65rem;min-height:2.7rem;border:0;border-radius:.5rem;text-align:left;font-size:.8rem}.dropdown-panel button:hover,.dropdown-panel button:focus-visible{background:var(--surface-alt)}.dropdown-panel button[aria-checked="true"],.dropdown-panel button[aria-selected="true"]{background:var(--primary-soft);color:var(--primary-text);font-weight:650}.dropdown-panel button[aria-selected="true"]::after,.dropdown-panel button[aria-checked="true"]::after{content:'\2713';margin-left:auto}.dropdown-panel .icon{width:1rem;height:1rem}.select-dropdown>summary{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:.7rem;min-height:2.75rem;padding:.65rem .8rem;font-size:.8rem}.select-dropdown>summary .icon{width:1rem;height:1rem}.select-dropdown .dropdown-panel{left:0;right:auto;min-width:100%;width:max-content;max-height:17rem;overflow-y:auto}.select-dropdown[open]>summary{border-color:var(--primary)}
.tooltip{position:fixed;z-index:1000;max-width:min(17rem,calc(100vw - 2rem));padding:.5rem .7rem;background:var(--tooltip-bg);color:var(--tooltip-text);font-size:.73rem;border-radius:.55rem;box-shadow:var(--shadow);pointer-events:none;line-height:1.5}
.dialog{padding:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);color:var(--text);width:min(42rem,calc(100vw - 2rem));max-height:calc(100vh - 3rem);box-shadow:var(--shadow-lg);overflow:auto;overscroll-behavior:contain}.dialog::backdrop{background:var(--overlay);backdrop-filter:blur(4px)}.dialog[open]{animation:dialog-in .18s var(--ease)}.dialog-header{display:flex;align-items:center;gap:1rem;justify-content:space-between;padding:1.35rem 1.5rem .8rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface-raised);z-index:2}.dialog-header h2{font-size:1.05rem;letter-spacing:-.02em}.dialog-body{padding:1.5rem}.dialog-body p+p{margin-top:1rem}.dialog-footer{padding:1rem 1.5rem 1.5rem;display:flex;gap:.65rem;justify-content:flex-end;flex-wrap:wrap}.dialog .modal-lead{font-size:1.55rem;line-height:1.2;letter-spacing:-.035em;font-weight:750;margin-bottom:.8rem}.dialog .modal-copy{font-size:.88rem;color:var(--muted);line-height:1.8}.gate-icon{width:3.7rem;height:3.7rem;display:grid;place-items:center;border-radius:1rem;background:var(--primary-soft);color:var(--primary-text);margin-bottom:1.25rem}.gate-icon .icon{width:1.7rem;height:1.7rem}.gate-benefits{display:grid;gap:.65rem;margin:1.3rem 0;font-size:.82rem;color:var(--muted)}.gate-benefits li{display:flex;align-items:center;gap:.6rem}.gate-benefits .icon{color:var(--success-text);width:1rem;height:1rem}.auth-coming{padding:.85rem;margin-top:1rem;border-radius:.8rem;font-size:.78rem;background:var(--warning-soft);color:var(--warning-text);border:1px solid var(--warning-border)}.auth-coming strong{display:block;margin-bottom:.3rem}.menu-dialog .dialog-body{display:grid;gap:.5rem}.menu-dialog .dialog-body>a{padding:.8rem 1rem;border-radius:.65rem;font-weight:600}.menu-dialog .dialog-body>a:hover{background:var(--surface-alt)}
.toast-stack{position:fixed;bottom:1.2rem;right:1.2rem;width:min(24rem,calc(100vw - 2.4rem));z-index:120;display:grid;gap:.6rem;pointer-events:none}.toast{display:flex;gap:.65rem;align-items:flex-start;background:var(--surface-raised);border:1px solid var(--border);border-left:4px solid var(--info);border-radius:.8rem;padding:.9rem;box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in .2s var(--ease);font-size:.82rem}.toast>.icon{color:var(--info-text);margin-top:.15rem}.toast>p{flex:1}.toast .icon-btn{min-height:1.7rem;min-width:1.7rem}.toast[data-tone="success"]{border-left-color:var(--success)}.toast[data-tone="success"]>.icon{color:var(--success-text)}.toast[data-tone="danger"]{border-left-color:var(--danger)}.toast[data-tone="danger"]>.icon{color:var(--danger-text)}.toast[data-tone="warning"]{border-left-color:var(--warning)}.toast[data-tone="warning"]>.icon{color:var(--warning-text)}
.skeleton{position:relative;overflow:hidden;background:var(--skeleton);border-radius:.5rem}.skeleton::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--skeleton-shine),transparent);animation:shimmer 1.7s infinite}.skeleton-card{padding:1.5rem}.skeleton-row{display:flex;gap:.8rem;margin-bottom:1.4rem}.skeleton-avatar{width:3rem;height:3rem;flex-shrink:0}.skeleton-lines{flex:1}.skeleton-line{height:.75rem;margin-bottom:.65rem}.skeleton-title{height:1.5rem;width:70%;margin-bottom:1rem}.skeleton-short{width:55%}.skeleton-button{height:2.8rem;margin-top:1.5rem}.spinner{width:1.7rem;height:1.7rem;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.loading-line{display:flex;align-items:center;justify-content:center;gap:.8rem;min-height:9rem;font-size:.85rem;color:var(--muted)}
.accordion{border-bottom:1px solid var(--border)}.accordion>summary{display:flex;justify-content:space-between;gap:1.25rem;align-items:center;cursor:pointer;list-style:none;padding:1.3rem 0;font-weight:600;font-size:.9rem}.accordion>summary::-webkit-details-marker{display:none}.accordion>summary .icon{width:1.15rem;height:1.15rem;color:var(--muted);transition:transform var(--transition)}.accordion[open]>summary .icon{transform:rotate(180deg)}.accordion-body{padding:0 2rem 1.4rem 0;font-size:.85rem;color:var(--muted);line-height:1.85}
.pagination{display:flex;gap:.4rem;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}.pagination button{min-width:2.6rem;min-height:2.6rem;display:grid;place-items:center;border:1px solid var(--border);border-radius:.65rem;background:var(--surface);font-size:.85rem}.pagination button:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}.pagination [aria-current="page"]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.pagination button:disabled{color:var(--disabled-text);background:var(--disabled-bg)}
.empty-state{text-align:center;padding:3rem 1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.empty-state>.icon{width:2.5rem;height:2.5rem;margin:0 auto 1rem;color:var(--muted)}.empty-state h2{font-size:1.3rem;letter-spacing:-.03em}.empty-state p{max-width:24rem;margin:.8rem auto 1.2rem;font-size:.86rem;color:var(--muted)}
.post-card{padding:1.3rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.post-head{display:flex;align-items:center;gap:.7rem}.company-logo{width:2.8rem;height:2.8rem;border-radius:.8rem;flex-shrink:0;object-fit:contain}.company-name{border:0;padding:0;text-align:left;font-size:.81rem;font-weight:700;line-height:1.3;max-width:100%;color:var(--text)}button.company-name:hover{text-decoration:underline}.post-company{min-width:0;flex:1}.post-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;margin-top:.15rem;font-size:.67rem;color:var(--muted)}.post-head-actions{display:flex;gap:0;flex-shrink:0}.post-head-actions .icon-btn{min-width:2.1rem;min-height:2.5rem}.post-head-actions .icon{width:1.1rem;height:1.1rem}.post-title{margin-top:1.2rem;font-size:1.2rem;line-height:1.3;font-weight:700;letter-spacing:-.03em}.post-title button{padding:0;text-align:left;border:0;line-height:inherit;letter-spacing:inherit;font-weight:inherit;font-size:inherit}.post-title button:hover{color:var(--primary-text)}.post-summary{font-size:.84rem;color:var(--muted);line-height:1.75;margin-top:.6rem}.post-tags{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.9rem}.post-facts{display:grid;gap:.55rem;margin-top:1.1rem;color:var(--muted);font-size:.77rem}.post-facts li{display:flex;align-items:flex-start;gap:.45rem}.post-facts .icon{width:1rem;height:1rem;margin-top:.1rem;color:var(--primary-text)}.post-actions{display:flex;gap:.6rem;margin-top:1.2rem}.post-actions .btn-primary{flex:1}.post-social{display:flex;justify-content:space-between;gap:.25rem;margin-top:1.1rem;padding-top:.7rem;border-top:1px solid var(--border)}.post-social button{display:flex;align-items:center;justify-content:center;gap:.4rem;flex:1;border:0;border-radius:.55rem;min-height:2.55rem;font-size:.74rem;color:var(--muted)}.post-social button:hover{background:var(--surface-alt);color:var(--primary-text)}.post-social .icon{width:1rem;height:1rem}.post-visual{position:relative;margin-top:1.15rem;padding:1.45rem;border-radius:.9rem;background:var(--primary-soft);color:var(--primary-text);overflow:hidden;min-height:8.3rem;display:flex;align-items:center;justify-content:space-between}.post-visual strong{font-size:1.45rem;letter-spacing:-.04em;line-height:1.2;max-width:12rem;position:relative;z-index:1}.post-visual .icon{width:3.5rem;height:3.5rem;opacity:.45;margin-left:1rem}.post-visual::after{content:'';width:11rem;height:11rem;border:1px solid var(--primary-border);border-radius:50%;position:absolute;right:-3rem;top:-2rem;box-shadow:0 0 0 1.3rem var(--primary-soft),0 0 0 1.35rem var(--primary-border)}.post-visual .icon{z-index:1}
.detail-company{display:flex;align-items:center;gap:.8rem;margin-bottom:1.4rem}.detail-company .company-logo{width:3.4rem;height:3.4rem}.detail-title{font-size:1.8rem;letter-spacing:-.04em;margin-bottom:.8rem}.detail-section{margin-top:1.7rem}.detail-section h3{font-size:.95rem;margin-bottom:.75rem}.detail-section p,.detail-section li{font-size:.85rem;color:var(--muted);line-height:1.8}.detail-section ul{padding-left:1.1rem;list-style:disc}.detail-section li+li{margin-top:.35rem}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:var(--surface-alt);padding:1rem;border-radius:.85rem;margin-top:1.25rem}.detail-facts dt{font-size:.7rem;color:var(--muted)}.detail-facts dd{margin:.2rem 0 0;font-size:.85rem;font-weight:650}.detail-sticky-actions{display:flex;gap:.5rem;position:sticky;bottom:-1.5rem;background:var(--surface-raised);border-top:1px solid var(--border);margin:1.5rem -1.5rem -1.5rem;padding:1rem 1.5rem}.detail-sticky-actions .btn-primary{flex:1}
@supports(width:1dvw){.dialog{width:min(42rem,calc(100dvw - 2rem));max-height:calc(100dvh - 3rem)}.tooltip{max-width:min(17rem,calc(100dvw - 2rem))}}
@media(max-width:699px){body[data-page="opportunity"] .toast-stack{bottom:calc(5rem + env(safe-area-inset-bottom,0px))}.toast-stack{right:1rem;width:calc(100% - 2rem)}.dialog{border-radius:1.1rem}.dialog-header{padding:1rem 1.1rem .65rem}.dialog-body{padding:1.1rem}.dialog-footer{padding:1rem 1.1rem 1.1rem}.detail-sticky-actions{margin-inline:-1.1rem;margin-bottom:-1.1rem;padding:1rem 1.1rem;bottom:-1.1rem}.detail-title{font-size:1.55rem}}
@keyframes shimmer{to{transform:translateX(100%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes dialog-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.company-public-list{display:grid;gap:.5rem}.company-opportunity-link{display:flex;justify-content:space-between;align-items:center;gap:.75rem;width:100%;text-align:left;border:1px solid var(--border);border-radius:.7rem;padding:.85rem;font-size:.82rem;background:var(--surface)}.company-opportunity-link:hover{background:var(--primary-soft);border-color:var(--primary-border)}.company-opportunity-link .icon{color:var(--primary-text);width:1rem;height:1rem}.link-copy-field{margin-top:1rem}.auth-choice-status p{margin-top:1rem}.filter-summary-text{display:inline-flex;align-items:center;gap:.35rem}.filter-summary-text .icon{width:.9rem;height:.9rem}.featured-grid>.empty-state{grid-column:1/-1}

/* Mobile drawer with compact, accessible navigation. */
.menu-dialog .menu-links{display:grid;gap:.4rem}
.menu-dialog .menu-links>a{display:flex;align-items:center;gap:.75rem;padding:.8rem 1rem;border-radius:.7rem;color:var(--text);font-weight:650;font-size:.88rem}
.menu-dialog .menu-links>a:hover,.menu-dialog .menu-links>a.active{background:var(--primary-soft);color:var(--primary-text)}
.menu-dialog .menu-links>a.btn{color:var(--on-primary);justify-content:center}
.menu-dialog .menu-links>a.btn:hover{background:var(--primary-hover);color:var(--on-primary)}
.menu-dialog .menu-links .icon{height:1.12rem;width:1.12rem}
.menu-dialog .menu-links hr{margin:.3rem 0}

/* v5 dialog audit: one spacing scale; bounded scroll body; reachable actions. */
.dialog { --dialog-pad:clamp(1rem,3vw,1.5rem); margin:auto; width:min(44rem,calc(100vw - 1.5rem)); max-height:calc(100vh - 2rem); overflow:hidden; }
.dialog[open] { display:flex; flex-direction:column; }
.dialog .dialog-header { position:relative; flex:0 0 auto; padding:1rem var(--dialog-pad); gap:.75rem; }
.dialog .dialog-header h2 { min-width:0; overflow-wrap:anywhere; line-height:1.4; }
.dialog .dialog-header>.icon-btn { flex-shrink:0; }
.dialog .dialog-body { min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; padding:var(--dialog-pad); }
.dialog .dialog-footer { flex:0 0 auto; padding:1rem var(--dialog-pad); border-top:1px solid var(--border); background:var(--surface-raised); }
.dialog :is(p,h2,h3,a,small) { overflow-wrap:anywhere; }
.dialog .dialog-footer .btn { min-height:2.75rem; }
.dialog .app-buttons { row-gap:.7rem; }
.dialog .app-form-grid { gap:1rem; }
.theme-toggle { flex-shrink:0; }
@supports(width:100dvw) { .dialog { width:min(44rem,calc(100dvw - 1.5rem)); } }
@supports(height:100dvh) { .dialog { max-height:calc(100dvh - 2rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)); } }
@media(max-width:599px) { .dialog :is(input:not([type="checkbox"]):not([type="radio"]),textarea){font-size:1rem!important;} .dialog .dialog-footer>.btn{flex:1;} }

/* Programmatically focused modal headings remain accessible without a false interactive outline. */
.dialog .dialog-header [tabindex="-1"]:focus{outline:none}
