@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root { --ink:#17231f; --muted:#68746e; --paper:#f5f7f2; --card:#fff; --line:#e2e8e0; --green:#267557; --green-dark:#1d5b43; --mint:#dceee5; --orange:#e77c43; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'DM Sans',sans-serif; }
a { color:inherit; text-decoration:none; }
button, input, textarea, select { font:inherit; }
button { cursor:pointer; }
h1,h2,h3 { font-family:'Space Grotesk',sans-serif; margin:0; letter-spacing:-.03em; }
.shell { max-width:1120px; margin:auto; padding:0 28px; }
.topbar { height:76px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.brand { display:flex; gap:11px; align-items:center; font-family:'Space Grotesk'; font-weight:700; font-size:20px; }
.brand-mark { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:white; background:var(--green); font-size:18px; }
.nav { display:flex; align-items:center; gap:20px; color:var(--muted); font-size:14px; }
.nav a:hover { color:var(--green); }
.button { border:0; border-radius:9px; background:var(--green); color:white; padding:11px 16px; font-weight:600; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.button:hover { background:var(--green-dark); }
.button.secondary { background:var(--mint); color:var(--green-dark); }
.button.ghost { color:var(--muted); background:transparent; border:1px solid var(--line); }
.button.danger { background:#fff0ec; color:#b44a35; }
.hero { padding:82px 0 45px; display:flex; align-items:flex-end; justify-content:space-between; gap:30px; }
.eyebrow { color:var(--green); text-transform:uppercase; letter-spacing:.13em; font-size:11px; font-weight:700; margin-bottom:14px; }
.hero h1 { font-size:clamp(42px,6vw,70px); line-height:.98; max-width:680px; }
.hero p { color:var(--muted); max-width:510px; line-height:1.65; font-size:16px; margin:20px 0 0; }
.hero-art { width:170px; height:170px; border-radius:50%; background:var(--mint); display:grid; place-items:center; font-size:65px; transform:rotate(8deg); }
.section-head { display:flex; align-items:flex-end; justify-content:space-between; padding:26px 0 17px; border-bottom:1px solid var(--line); }
.section-head h2 { font-size:24px; }
.count { color:var(--muted); font-size:13px; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; padding:22px 0 70px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:21px; box-shadow:0 5px 20px #2d463111; }
.app-card { min-height:230px; display:flex; flex-direction:column; }
.app-icon { width:47px; height:47px; border-radius:13px; background:var(--mint); display:grid; place-items:center; font-size:24px; margin-bottom:18px; }
.app-card h3 { font-size:19px; }
.app-card p { color:var(--muted); font-size:13px; line-height:1.55; margin:10px 0; flex:1; }
.meta { display:flex; gap:8px; align-items:center; color:var(--muted); font-size:12px; }
.pill { background:#edf2ed; border-radius:20px; padding:5px 9px; color:var(--green-dark); font-weight:600; font-size:11px; }
.muted { color:var(--muted); }
.empty { grid-column:1/-1; text-align:center; padding:65px 20px; color:var(--muted); }
.detail { padding:58px 0 80px; max-width:800px; }
.back { color:var(--green); font-size:13px; font-weight:600; display:inline-block; margin-bottom:28px; }
.detail-header { display:flex; gap:20px; align-items:flex-start; }
.detail-header .app-icon { width:65px; height:65px; font-size:32px; }
.detail-header h1 { font-size:42px; }
.detail-header p { color:var(--muted); line-height:1.7; }
.notice { margin-top:30px; padding:18px 20px; border:1px dashed #bdd5c7; border-radius:12px; color:var(--green-dark); background:#eff8f2; font-size:14px; line-height:1.6; }
.version-list { margin-top:30px; display:grid; gap:10px; }
.version-row { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.version-row h3 { font-size:16px; }
.version-row p { margin:6px 0 0; color:var(--muted); font-size:12px; }
.auth-wrap { min-height:100vh; display:grid; place-items:center; padding:25px; }
.auth-card { width:min(420px,100%); }
.auth-card .brand { margin-bottom:38px; }
.auth-card h1 { font-size:34px; }
.auth-card > p { color:var(--muted); line-height:1.5; margin:10px 0 25px; }
.field { display:grid; gap:7px; margin:15px 0; }
.field label { font-size:13px; font-weight:600; }
.field input,.field textarea,.field select { width:100%; border:1px solid var(--line); background:white; border-radius:8px; padding:11px 12px; color:var(--ink); outline:none; }
.field textarea { min-height:120px; resize:vertical; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--green); box-shadow:0 0 0 3px #26755718; }
.error { color:#b44a35; background:#fff0ec; border-radius:8px; padding:11px 13px; font-size:13px; margin:14px 0; }
.admin-shell { max-width:1120px; margin:auto; padding:0 28px 70px; }
.admin-header { padding:45px 0 25px; display:flex; justify-content:space-between; align-items:flex-end; gap:20px; }
.admin-header h1 { font-size:36px; }
.admin-header p { color:var(--muted); margin:8px 0 0; }
.admin-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:18px; align-items:start; }
.card h2 { font-size:20px; margin-bottom:18px; }
.admin-list { display:grid; gap:11px; }
.admin-row { display:flex; justify-content:space-between; align-items:center; gap:15px; border-top:1px solid var(--line); padding-top:14px; }
.admin-row:first-child { border:0; padding-top:0; }
.admin-row h3 { font-size:15px; }
.admin-row p { color:var(--muted); font-size:12px; margin:5px 0 0; }
.actions { display:flex; gap:7px; align-items:center; flex-wrap:wrap; }
.actions .button { padding:8px 10px; font-size:12px; }
.form-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }
.subtle { font-size:12px; color:var(--muted); line-height:1.5; }
.table { width:100%; border-collapse:collapse; font-size:13px; }
.table th { text-align:left; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; padding:10px 8px; border-bottom:1px solid var(--line); }
.table td { padding:13px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
.link-code { background:#f0f4f0; padding:8px; border-radius:7px; word-break:break-all; font-size:11px; display:block; }
.footer { padding:25px 0; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
@media (max-width:760px) { .shell,.admin-shell { padding-left:18px; padding-right:18px; } .hero { padding-top:52px; } .hero-art { display:none; } .grid { grid-template-columns:1fr; } .admin-grid { grid-template-columns:1fr; } .admin-header { align-items:flex-start; flex-direction:column; } .detail-header h1 { font-size:34px; } .version-row { align-items:flex-start; flex-direction:column; gap:10px; } .topbar { height:auto; padding:18px 0; gap:12px; } .nav { gap:10px; } }
