/* Tripple.eco admin – uses the tokens from site.css */
body{background:var(--linen)}
.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.side{background:#fff;border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;gap:28px;position:sticky;top:0;height:100vh}
.side-logo{display:flex;align-items:center;gap:10px;text-decoration:none;line-height:0}
.side-logo img{height:38px;width:auto}
.side-logo span{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--deep);background:var(--moss-tint);border-radius:999px;padding:3px 8px;line-height:1.4}
.side-nav{display:flex;flex-direction:column;gap:2px}
.side-nav a{text-decoration:none;color:var(--ink-2);font-size:15px;padding:9px 12px;border-radius:8px;font-weight:500}
.side-nav a:hover{background:var(--linen);color:var(--ink)}
.side-nav a.on{background:var(--stone);color:var(--ink);font-weight:700}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--ink-3)}
.side-foot a{color:var(--ink-2);text-decoration:none}
.side-foot .who{word-break:break-all}
.side-foot .link{text-align:left;color:var(--ink-2);font-size:13px}
.topbar{display:none}
.main{padding:36px 40px 80px;min-width:0;max-width:1180px}
.link{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-2);cursor:pointer;background:none;border:none;color:inherit;font:inherit}

h1.h{font-family:var(--display);font-weight:700;font-size:30px;letter-spacing:-.03em;line-height:1.1;margin:6px 0 6px}
h2.h{font-size:17px;font-weight:700;letter-spacing:-.01em;margin:0 0 12px}
.sub{color:var(--ink-2);font-size:15px;margin-bottom:24px}
.muted{color:var(--ink-3)}
.small{font-size:13px}
.err{color:#A33A2A;font-size:14px;min-height:20px}

/* Cards */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0 28px}
.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 18px 16px}
.stat .n{font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.stat .l{font-size:13px;color:var(--ink-2);margin-top:8px;font-weight:500}
.stat .d{font-size:13px;color:var(--ink-3);margin-top:4px}
.stat .d b{color:var(--deep);font-weight:700}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.feed{list-style:none}
.feed li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.feed li:first-child{border-top:none}
.feed .what{min-width:0}
.feed .what b{font-weight:600}
.feed .when{color:var(--ink-3);white-space:nowrap;font-size:13px}
.feed a{color:inherit;text-decoration:none}
.feed a:hover b{text-decoration:underline}

/* Tables */
.tools{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 14px;align-items:center}
.tools input[type=search],.tools select{font:inherit;font-size:15px;padding:9px 14px;border:1px solid var(--line-2);border-radius:999px;background:#fff;color:var(--ink)}
.tools input[type=search]{flex:1;min-width:200px}
.tools input:focus,.tools select:focus{outline:none;border-color:var(--deep)}
.count{font-size:13px;color:var(--ink-3);margin-left:auto}
.tbl-wrap{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.tbl th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tbody tr{cursor:pointer}
.tbl tbody tr:hover{background:var(--linen)}
.tbl td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.bar{display:inline-block;width:64px;height:5px;border-radius:3px;background:var(--line);vertical-align:middle;margin-right:8px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--deep)}
.pill{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px;background:var(--linen);color:var(--ink-2);white-space:nowrap}
.pill.green{background:var(--moss-tint);color:var(--deep)}
.pill.amber{background:#F6EBCD;color:#7A5A12}
.pill.blue{background:#DDEEF9;color:#1C6A99}
.empty{padding:28px;text-align:center;color:var(--ink-3)}

/* Detail */
.back{font-size:14px;color:var(--ink-2);text-decoration:none}
.back:hover{color:var(--ink)}
dl.facts{display:grid;grid-template-columns:160px 1fr;gap:8px 16px;font-size:14px}
dl.facts dt{color:var(--ink-3)}
dl.facts dd{word-break:break-word}
.pillars3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:6px 0}
.pillars3 div{border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.pillars3 b{font-size:24px;letter-spacing:-.02em}
.dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:-1px;opacity:.85}
.ans-area{border-top:1px solid var(--line);padding:12px 0}
.ans-area h3{font-size:15px;font-weight:700;margin-bottom:6px}
.ans-q{padding:6px 0 6px 12px;border-left:2px solid var(--line);margin:6px 0;font-size:14px}
.ans-q .qq{font-weight:500}
.ans-q .dd{color:var(--ink-2);white-space:pre-wrap}
.ans-q .ee{color:var(--ink-3);font-style:italic;white-space:pre-wrap}

/* Content editor */
.cms{display:grid;grid-template-columns:260px 1fr;gap:20px;align-items:start}
.cms-tree{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}
.cms-tree > summary{list-style:none;cursor:pointer;font-weight:700;font-size:14px;padding:8px}
.cms-tree > summary::-webkit-details-marker{display:none}
.cms-tree > summary::after{content:' ▾';color:var(--ink-3)}
@media(min-width:1001px){.cms-tree > summary{display:none}}
.cms-tree h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:12px 8px 6px}
.cms-tree a{display:flex;justify-content:space-between;gap:8px;text-decoration:none;color:var(--ink-2);font-size:14px;padding:7px 8px;border-radius:6px}
.cms-tree a:hover{background:var(--linen)}
.cms-tree a.on{background:var(--stone);color:var(--ink);font-weight:600}
.cms-tree a .c{font-size:11px;font-weight:700;color:var(--deep)}
.pubbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:16px 0 18px;position:sticky;top:0;z-index:5}
.pubbar .msg{font-size:14px;color:var(--ink-2);margin-right:auto}
.pubbar .msg b{color:var(--ink)}
.field-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:12px}
.field-card.draft{border-color:#E6C873;box-shadow:inset 3px 0 0 #E6C873}
.fc-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.fc-head .name{font-weight:700;font-size:14px}
.fc-head .key{font-size:12px;color:var(--ink-3);font-family:ui-monospace,Menlo,monospace}
.fc-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fc-cols label{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--ink-3);margin-bottom:4px}
.fc-cols textarea{width:100%;overflow:hidden;font:inherit;font-size:15px;line-height:1.5;padding:9px 11px;border:1px solid var(--line-2);border-radius:6px;background:var(--linen);color:var(--ink);resize:vertical;min-height:44px}
.fc-cols textarea:focus{outline:none;border-color:var(--deep);background:#fff}
.fc-def{font-size:12px;color:var(--ink-3);margin-top:4px;white-space:pre-wrap}
.fc-hint{font-size:12px;color:#7A5A12;margin-top:8px}
.fc-actions{display:flex;gap:12px;margin-top:8px;font-size:13px}
.search-results a{display:block;text-decoration:none;color:inherit;padding:10px 12px;border-top:1px solid var(--line)}
.search-results a:hover{background:var(--linen)}

/* Preview */
.preview{position:fixed;inset:0;background:rgba(7,25,26,.45);z-index:50;display:flex;justify-content:flex-end}
.preview[hidden]{display:none}
.preview-box{background:#fff;width:min(1100px,100%);height:100%;display:flex;flex-direction:column}
.preview-head{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.preview-head b{margin-right:auto}
.preview iframe{flex:1;border:0;width:100%}

/* Login */
.login{max-width:440px;margin:8vh auto 0}
.login form{display:flex;flex-direction:column;gap:14px;margin-top:22px}
.login input{font:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--line-2);border-radius:6px;background:#fff}
.login input:focus{outline:none;border-color:var(--deep);box-shadow:0 0 0 3px var(--moss-tint)}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--near);color:#fff;padding:11px 18px;border-radius:999px;font-size:14px;opacity:0;pointer-events:none;transition:all .2s;z-index:60;max-width:calc(100vw - 32px)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:1000px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .grid2,.cms{grid-template-columns:1fr}
  .cms-tree{position:static;max-height:none}
}
@media(max-width:760px){
  .shell{grid-template-columns:1fr}
  .topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
  .menu-toggle{font-size:14px;font-weight:600;border:1px solid var(--line-2);border-radius:999px;padding:6px 14px}
  .side{position:fixed;inset:0 30% 0 0;z-index:40;transform:translateX(-102%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.15);height:100%}
  .side.open{transform:none}
  .main{padding:22px 16px 64px}
  .fc-cols{grid-template-columns:1fr}
  dl.facts{grid-template-columns:1fr;gap:2px 0}
  dl.facts dd{margin-bottom:8px}
  .pillars3{grid-template-columns:1fr}
}
