:root{--gray-1: oklch(98.5% 0 0);--gray-2: oklch(97% 0 0);--gray-3: oklch(92.2% 0 0);--gray-4: oklch(87% 0 0);--gray-6: oklch(55.6% 0 0);--gray-7: oklch(43.9% 0 0);--gray-8: oklch(37.1% 0 0);--gray-10: oklch(26.9% 0 0);--gray-12: oklch(14.5% 0 0)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;background:var(--gray-2);color:var(--gray-10);font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}[x-cloak]{display:none}h1,h2,h3,h4,h5,h6{color:var(--gray-12)}header{max-width:1440px;margin:auto;padding:0 30px}header>div{display:flex;justify-content:space-between;align-items:center;height:64px}header nav{display:flex;align-items:center;gap:26px}header nav a{font-weight:500;color:var(--gray-8)}header nav a:hover,header nav a.current{color:var(--gray-12)}main{max-width:1440px;margin:0 30px;display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100vh - 65px);background:#fff;border:1px solid var(--gray-3)}.hero{padding:100px 50px;max-width:880px}.hero h1{margin-bottom:15px;font-size:52px;font-weight:600;letter-spacing:-1px;line-height:1.05}.hero p{font-size:22px;color:var(--gray-7)}.hero .button{margin-top:30px;display:inline-block;padding:10px 16px}.cards{display:grid;grid-template-columns:repeat(3,1fr);padding:0 50px;border-top:1px solid var(--gray-3)}.cards a{padding:30px 40px;border-right:1px solid var(--gray-3)}.cards a:first-child{border-left:1px solid var(--gray-3)}.cards a:hover{background:var(--gray-1)}.cards h3{margin-bottom:10px;font-size:20px;font-weight:600;letter-spacing:-.4px}.cards p{color:var(--gray-6)}.form-container{display:flex;flex-direction:column;justify-content:center;max-width:400px;margin:auto}.form-container h1{font-size:32px;letter-spacing:-.5px;margin:5px 0}.form-container p{font-size:18px;margin-bottom:48px;color:var(--gray-6)}form{display:flex;flex-direction:column;gap:24px}label{margin-bottom:4px;display:block;font-size:14px;font-weight:500}input,textarea,button{width:100%;border-radius:4px;font:inherit}input{height:40px;border:1px solid var(--gray-4);padding:0 16px}input[data-invalid=true],textarea[data-invalid=true]{border-color:#fb2c36}input[data-invalid=true]+div,textarea[data-invalid=true]+div{color:#fb2c36;font-size:14px;font-weight:500;margin-top:2px}button{background:var(--gray-12);color:#fff;border:none;padding:10px;font-weight:500}button:hover{background:var(--gray-10)}.alert{background:#fff;position:relative;padding:12px 16px;font-size:14px;min-width:380px;font-weight:500;border:1px solid var(--gray-3);border-radius:10px;animation:scale-up .2s cubic-bezier(.39,.575,.565,1) both}.alert-destructive{color:#fb2c36;background:#fb2c361a;border-color:#fb2c36}.alert-success{color:#00a63e;background:#00a63e1a;border-color:#00a63e}.flash-container{position:fixed;top:80px;left:0;right:0;display:flex;flex-direction:column;align-items:center}@keyframes scale-up{0%{transform:scale(.7)}to{transform:scale(1)}}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#fff;border-bottom:1px solid var(--gray-3)}.portal-header nav{display:flex;align-items:center;gap:1rem}.portal-header button{background:none;border:1px solid var(--gray-4);border-radius:6px;padding:.35rem .85rem;cursor:pointer}.portal-main{max-width:860px;margin:0 auto;padding:2rem 1.5rem}.portal-intro{color:var(--gray-7);margin:.5rem 0 1.5rem}.portal-empty{background:#fff;border:1px solid var(--gray-3);border-radius:10px;padding:2.5rem;text-align:center;color:var(--gray-7)}.portal-list{list-style:none;display:grid;gap:1rem}.portal-card{background:#fff;border:1px solid var(--gray-3);border-radius:10px;overflow:hidden}.portal-card>a{display:flex;gap:1rem}.portal-card-preview,.portal-detail-preview{width:140px;min-height:140px;flex-shrink:0;background:var(--gray-3);display:flex;align-items:center;justify-content:center}.portal-card-preview img,.portal-detail-preview img{width:100%;height:100%;object-fit:cover}.portal-card-placeholder{color:var(--gray-6);font-weight:600}.portal-card-body{padding:1rem 1rem 1rem 0}.portal-badge{display:inline-block;font-size:.75rem;font-weight:600;border-radius:999px;padding:.15rem .7rem;margin-bottom:.4rem;background:var(--gray-3);color:var(--gray-8)}.portal-badge-pending_review{background:#ffecc1;background:oklch(95% .08 85);color:#794900;color:oklch(45% .12 70)}.portal-badge-approved,.portal-badge-scheduled,.portal-badge-published{background:#d8f9dd;color:#115629}.portal-badge-changes_requested{background:#ffe8e6;background:oklch(95% .05 25);color:#972527}.portal-caption{color:var(--gray-7);font-size:.9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.portal-caption-full{color:var(--gray-8);white-space:pre-wrap}.portal-date{color:var(--gray-6);font-size:.85rem;margin-top:.35rem}.portal-detail{display:flex;gap:1.5rem;background:#fff;border:1px solid var(--gray-3);border-radius:10px;overflow:hidden;margin-top:1rem}.portal-detail-preview{width:260px}.portal-detail-body{padding:1.5rem 1.5rem 1.5rem 0;flex:1}.portal-detail-body section{margin-top:1.25rem}.portal-actions{display:flex;gap:.75rem;margin-top:1.5rem}.button-secondary{background:none;border:1px solid var(--gray-4);border-radius:6px;padding:.5rem 1rem;cursor:pointer}.portal-changes-form{margin-top:1.5rem;display:grid;gap:.5rem}.portal-changes-form textarea{border:1px solid var(--gray-4);border-radius:6px;padding:.6rem;font:inherit;resize:vertical}.portal-changes-form textarea[data-invalid]{border-color:#cc272e}.portal-error{color:#a20519;font-size:.85rem}.portal-info{margin-top:1.5rem;color:var(--gray-7);font-style:italic}.portal-history ul{list-style:none;display:grid;gap:.6rem;margin-top:.5rem}.admin-main{max-width:780px;margin:0 auto;padding:2rem 1.5rem}.admin-header{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.admin-version{font-size:.85rem;color:var(--gray-6)}.admin-intro{color:var(--gray-7);margin:.5rem 0 1.5rem}.admin-list{list-style:none;display:grid;gap:.5rem}.admin-list a{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#fff;border:1px solid var(--gray-3);border-radius:8px;padding:.9rem 1rem}.admin-list-name{font-weight:600}.admin-list-meta{font-size:.85rem;color:var(--gray-6)}.admin-fieldset{background:#fff;border:1px solid var(--gray-3);border-radius:10px;padding:1.25rem;margin-bottom:1.25rem}.admin-fieldset legend{font-weight:600;padding:0 .4rem}.admin-fieldset label{display:block;margin:.9rem 0 .3rem;font-size:.9rem;color:var(--gray-8)}.admin-fieldset input,.admin-fieldset textarea{width:100%;border:1px solid var(--gray-4);border-radius:6px;padding:.5rem;font:inherit;resize:vertical}.admin-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.admin-row .admin-share{width:6rem;flex-shrink:0}.admin-row button{flex-shrink:0}.admin-hint{font-size:.85rem;color:var(--gray-6);margin:.5rem 0}.admin-hint-warn{color:#7c4700;color:oklch(45% .15 70)}.admin-error{color:#a20519;font-size:.85rem;margin-top:.3rem}.admin-actions{display:flex;gap:.75rem;margin:1.5rem 0}.admin-empty{background:#fff;border:1px solid var(--gray-3);border-radius:10px;padding:1.5rem;color:var(--gray-7);margin-bottom:1.25rem}.admin-fieldset h2{font-size:1rem;margin-bottom:.5rem}.admin-fieldset h2~h2{margin-top:1.25rem}.admin-attempts{list-style:none;display:grid;gap:.6rem;margin:.75rem 0}.admin-hooks{list-style:none;display:grid;gap:.75rem}.admin-hooks li p{margin-top:.25rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;vertical-align:top;padding:.5rem .6rem;border-bottom:1px solid var(--gray-3)}.admin-table th{color:var(--gray-7);font-weight:600}.admin-pre{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.85rem;background:var(--gray-2);border-radius:6px;padding:.9rem;overflow-x:auto}code{background:var(--gray-3);border-radius:4px;padding:.1rem .35rem;font-size:.85em}.admin-actions-wrap{flex-wrap:wrap}.admin-derived{background:#fff;border:1px solid var(--gray-3);border-radius:8px;padding:.9rem 1rem;display:grid;gap:.35rem}.admin-derived .portal-badge{justify-self:start}
