:root{ --paper:#F7F5F0; --card:#FFFFFF; --ink:#12233A; --ink-soft:#2A3B50; --muted:#6B7480; --hair:#E1DDD3; --hair-2:#EDEAE2; --aqua:#17B0A6; --aqua-deep:#0E6E68; --signal:#E8963A; --danger:#C24A3A; --radius:12px; } *{box-sizing:border-box} body{ margin:0;background:var(--paper);color:var(--ink); font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:15px;line-height:1.55; -webkit-font-smoothing:antialiased; } a{color:var(--aqua-deep)} .muted{color:var(--muted)} code{font-family:"IBM Plex Mono",monospace;font-size:.85em;background:var(--hair-2);padding:1px 5px;border-radius:5px} /* nav */ .anav{ display:flex;align-items:center;justify-content:space-between; padding:14px 26px;background:var(--ink);color:var(--paper); position:sticky;top:0;z-index:10; } .anav__brand{ font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:1.2rem; color:var(--paper);text-decoration:none;letter-spacing:-.01em; } .anav__brand span{ font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:.7rem; letter-spacing:.18em;text-transform:uppercase;color:var(--aqua);margin-left:8px; } .anav__right{display:flex;align-items:center;gap:16px} .anav__link{color:rgba(247,245,240,.8);text-decoration:none;font-size:.86rem} .anav__link:hover{color:var(--aqua)} .anav__user{ font-family:"IBM Plex Mono",monospace;font-size:.78rem;color:rgba(247,245,240,.55); } .anav form{margin:0} /* layout */ .awrap{max-width:900px;margin:0 auto;padding:32px 26px 80px} .page-head{ display:flex;align-items:flex-start;justify-content:space-between;gap:20px; margin-bottom:26px;flex-wrap:wrap; } .page-head h1{ font-family:"Bricolage Grotesque",sans-serif;font-weight:700; font-size:1.9rem;letter-spacing:-.02em;margin:0 0 4px; } .page-head__actions{display:flex;gap:10px} /* flashes */ .flashes{margin-bottom:20px;display:flex;flex-direction:column;gap:8px} .flash{padding:11px 15px;border-radius:10px;font-size:.9rem;border:1px solid transparent} .flash--ok{background:#E7F6F4;border-color:#B9E6E0;color:#0A5A54} .flash--error{background:#FBEAE6;border-color:#F0C7BE;color:#9C3325} /* buttons */ .btn{ display:inline-flex;align-items:center;gap:6px;cursor:pointer;text-decoration:none; font-family:"IBM Plex Sans",sans-serif;font-weight:600;font-size:.88rem; padding:9px 16px;border-radius:100px;border:1px solid transparent;line-height:1; transition:background .18s,border-color .18s,color .18s,transform .18s; } .btn--sm{padding:6px 12px;font-size:.8rem} .btn--primary{background:var(--aqua);color:#04201E} .btn--primary:hover{background:var(--aqua-deep);color:#fff} .btn--ghost{background:var(--card);border-color:var(--hair);color:var(--ink-soft)} .btn--ghost:hover{border-color:var(--aqua);color:var(--aqua-deep)} .btn--danger{background:transparent;border-color:var(--hair);color:var(--danger)} .btn--danger:hover{background:var(--danger);border-color:var(--danger);color:#fff} form{display:inline} /* section cards */ .sec-card{ background:var(--card);border:1px solid var(--hair);border-radius:var(--radius); margin-bottom:18px;overflow:hidden; } .sec-card__head{ display:flex;align-items:center;justify-content:space-between;gap:14px; padding:16px 18px;border-bottom:1px solid var(--hair-2);flex-wrap:wrap; } .sec-card__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap} .sec-card__meta h2{ font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.2rem;margin:0; } .sec-card__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap} .sec-card__empty{padding:14px 18px;margin:0} .pill{ font-family:"IBM Plex Mono",monospace;font-size:.74rem;font-weight:600; color:var(--aqua-deep);background:#E7F6F4;padding:4px 9px;border-radius:7px; } /* topic rows */ .topic-rows{list-style:none;margin:0;padding:0} .topic-row{ display:flex;align-items:center;justify-content:space-between;gap:14px; padding:12px 18px;border-bottom:1px solid var(--hair-2); } .topic-row:last-child{border-bottom:0} .topic-row__main{display:flex;align-items:center;gap:12px;min-width:0;flex-wrap:wrap} .topic-row__order{ font-family:"IBM Plex Mono",monospace;font-size:.76rem;color:var(--muted); min-width:2ch;text-align:right; } .topic-row__title{font-weight:600;color:var(--ink);text-decoration:none} .topic-row__title:hover{color:var(--aqua-deep)} .topic-row__actions{display:flex;gap:8px;flex:none} .chip{ font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.03em; text-transform:uppercase;color:var(--muted);border:1px solid var(--hair); padding:2px 7px;border-radius:6px; } .chip--link{color:var(--aqua-deep);border-color:#B9E6E0} .empty{ background:var(--card);border:1px dashed var(--hair);border-radius:var(--radius); padding:36px;text-align:center;color:var(--muted); } /* forms */ .form-card{ background:var(--card);border:1px solid var(--hair);border-radius:var(--radius); padding:24px; } .stack{display:flex;flex-direction:column;gap:16px} .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px} .field{display:flex;flex-direction:column;gap:6px} .field>span{font-weight:600;font-size:.86rem} .field input,.field select,.field textarea{ font-family:inherit;font-size:.94rem;color:var(--ink); padding:10px 12px;border:1px solid var(--hair);border-radius:9px;background:#fff; width:100%;transition:border-color .18s,box-shadow .18s; } .field textarea{font-family:"IBM Plex Mono",monospace;font-size:.86rem;line-height:1.5;resize:vertical} .field input:focus,.field select:focus,.field textarea:focus{ outline:none;border-color:var(--aqua);box-shadow:0 0 0 3px rgba(23,176,166,.15); } .fieldset{border:1px solid var(--hair-2);border-radius:10px;padding:16px;margin:0;display:flex;flex-direction:column;gap:14px} .fieldset legend{ font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.1em; text-transform:uppercase;color:var(--muted);padding:0 6px; } .hint{font-size:.8rem;margin:0} .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px} /* login */ .login-body{display:grid;place-items:center;min-height:100vh} .login-card{ background:var(--card);border:1px solid var(--hair);border-radius:16px; padding:36px 32px;width:min(360px,90vw);box-shadow:0 20px 50px -30px rgba(18,35,58,.5); } .login-brand{ font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:1.6rem; letter-spacing:-.02em; } .login-brand span{ font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:.7rem; letter-spacing:.18em;text-transform:uppercase;color:var(--aqua-deep);margin-left:8px; } .login-hint{color:var(--muted);font-size:.9rem;margin:6px 0 22px} .login-card .btn{width:100%;justify-content:center;margin-top:4px} @media (max-width:620px){ .grid-2{grid-template-columns:1fr} .page-head{flex-direction:column} }