:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color-scheme:light dark;--tile-border: color-mix(in srgb, currentColor 15%, transparent);--tile-hover: color-mix(in srgb, currentColor 8%, transparent)}*{box-sizing:border-box}body,html,#root{margin:0;height:100%}.app-shell{min-height:100%;display:flex;flex-direction:column;padding:1.5rem 2rem;gap:1.5rem;max-width:1280px;margin:0 auto;width:100%}.app-shell__header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--tile-border);padding-bottom:1rem;gap:1rem;flex-wrap:wrap}.app-shell__brand{display:flex;align-items:center;gap:.75rem}.hub-waffle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:.5rem;color:inherit;text-decoration:none;transition:background .12s ease,transform .12s ease}.hub-waffle:hover{background:var(--tile-hover)}.hub-waffle:active{transform:scale(.96)}.hub-waffle:focus-visible{outline:2px solid currentColor;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell__brand h1{margin:0;font-size:1.25rem;font-weight:600}.app-shell__title{cursor:pointer;-webkit-user-select:none;user-select:none}.app-shell__title:hover{opacity:.75}.app-shell__user{font-size:.875rem;color:color-mix(in srgb,currentColor 65%,transparent)}.badge{display:inline-block;padding:.05rem .4rem;margin-left:.25rem;font-size:.7rem;font-style:normal;border-radius:.25rem;background:color-mix(in srgb,currentColor 12%,transparent)}.app-shell__actions{display:flex;gap:.5rem}.lang-toggle{background:transparent;border:1px solid currentColor;border-radius:.375rem;padding:.375rem .75rem;font:inherit;color:inherit;cursor:pointer}.lang-toggle:hover{background:var(--tile-hover)}.launchpad{display:flex;flex-direction:column;gap:1rem}.launchpad__hint{margin:2rem auto;color:color-mix(in srgb,currentColor 70%,transparent)}.launchpad__hint--error{color:#d63031}.launchpad__toolbar{display:flex;gap:.75rem;align-items:center}.launchpad__search{flex:1;padding:.6rem .75rem;font:inherit;background:transparent;border:1px solid var(--tile-border);border-radius:.375rem;color:inherit}.launchpad__count{font-size:.875rem;color:color-mix(in srgb,currentColor 70%,transparent);white-space:nowrap}.launchpad__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.app-tile{display:flex;gap:.75rem;align-items:flex-start;padding:1rem;border:1px solid var(--tile-border);border-radius:.5rem;text-decoration:none;color:inherit;transition:background .12s ease}.app-tile:hover,.app-tile:focus-visible{background:var(--tile-hover);outline:none}.app-tile__icon{flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:.5rem;background:color-mix(in srgb,currentColor 14%,transparent);display:grid;place-items:center;font-weight:600;font-size:1.125rem}.app-tile__body{display:flex;flex-direction:column;gap:.25rem;min-width:0}.app-tile__title{margin:0;font-size:1rem;font-weight:600;overflow:hidden;text-overflow:ellipsis}.app-tile__category{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:color-mix(in srgb,currentColor 60%,transparent)}.app-tile__description{margin:0;font-size:.875rem;color:color-mix(in srgb,currentColor 75%,transparent);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.lang-toggle--active{background:color-mix(in srgb,currentColor 12%,transparent)}.admin{display:flex;flex-direction:column;gap:1rem}.admin__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.admin__header h2{margin:0;font-size:1.125rem}.admin__table{width:100%;border-collapse:collapse;font-size:.875rem}.admin__table th,.admin__table td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--tile-border);vertical-align:top}.admin__table th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:color-mix(in srgb,currentColor 70%,transparent)}.admin__actions{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.admin__actions button{font:inherit;background:transparent;border:1px solid var(--tile-border);border-radius:.25rem;padding:.3rem .6rem;cursor:pointer;color:inherit}.admin__actions button:hover{background:var(--tile-hover)}.admin__probe{font-size:.8rem}.admin__probe--ok{color:#2ecc71}.admin__probe--err{color:#d63031}.admin__empty{text-align:center;padding:1.5rem;color:color-mix(in srgb,currentColor 60%,transparent)}.admin__form{border:1px solid var(--tile-border);border-radius:.5rem;padding:1rem;display:flex;flex-direction:column;gap:.75rem;background:color-mix(in srgb,currentColor 4%,transparent)}.admin__form h3{margin:0;font-size:1rem}.admin__field{display:flex;flex-direction:column;gap:.25rem}.admin__field--inline{flex-direction:row;align-items:center;gap:.5rem}.admin__field label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:color-mix(in srgb,currentColor 70%,transparent)}.admin__field input,.admin__field textarea{font:inherit;padding:.45rem .6rem;background:transparent;border:1px solid var(--tile-border);border-radius:.25rem;color:inherit}.admin__field textarea{min-height:4rem;resize:vertical}.admin__form-actions{display:flex;gap:.5rem}.admin__form-actions button{font:inherit;padding:.45rem .9rem;border:1px solid currentColor;background:transparent;border-radius:.25rem;cursor:pointer;color:inherit}.admin__form-actions button[type=submit]{background:currentColor;color:canvas}
