:root{
  --bg: #FBFBF7;
  --card: #FFFFFF;
  --muted: #65766b;
  --accent-1: #7DBA7A; /* soft green */
  --accent-2: #B9D7D2; /* seafoam */
  --accent-3: #EFD9B4; /* warm sand */
  --shadow: rgba(38,50,44,0.08);
  --glass: rgba(255,255,255,0.6);
}

/* dark theme variables */
:root[data-theme='dark']{
  --bg: #0f1412;
  --card: #0f1916;
  --muted: #9aa79d;
  --accent-1: #4f9a63;
  --accent-2: #6aa9a0;
  --accent-3: #bfa67a;
  --shadow: rgba(0,0,0,0.5);
  --glass: rgba(255,255,255,0.02);
  color-scheme: dark;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background: linear-gradient(180deg,var(--bg) 0%, #F6F8F6 100%);
  color: #203028;
  -webkit-font-smoothing:antialiased;
}

.container{
  max-width:1000px;
  margin:48px auto;
  padding:24px;
}

.site-header{
  display:flex;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
}
.brand{display:flex;gap:14px;align-items:center}
.logo{width:64px;height:64px;flex:0 0 64px;border-radius:10px;box-shadow:0 8px 18px var(--shadow)}

h1{font-size:20px;margin:0}
.subtitle{margin:2px 0 0;color:var(--muted);font-size:13px}

.search-wrap{flex:0 0 320px}
.theme-toggle-wrap{display:flex;align-items:center;margin-left:12px}
#theme-toggle{background:transparent;border:1px solid rgba(32,48,40,0.06);padding:8px;border-radius:10px;cursor:pointer}
#theme-toggle:focus{outline:2px solid var(--accent-2)}

/* navigation */
.site-nav{display:flex;gap:12px;align-items:center}
.site-nav a{text-decoration:none;color:inherit;padding:8px 10px;border-radius:8px}
.site-nav a[aria-current]{font-weight:700}

/* hamburger for small screens */
#nav-toggle{display:none;background:transparent;border:1px solid rgba(32,48,40,0.06);padding:8px;border-radius:8px;margin-left:8px}
.hamburger{width:20px;height:2px;background:currentColor;display:block;position:relative}
.hamburger::before,.hamburger::after{content:'';position:absolute;left:0;right:0;height:2px;background:currentColor}
.hamburger::before{top:-6px}
.hamburger::after{top:6px}

@media(max-width:760px){
  .site-nav{position:fixed;top:68px;right:16px;flex-direction:column;background:var(--card);padding:12px;border-radius:10px;box-shadow:0 10px 30px var(--shadow);display:none}
  .site-nav.show{display:flex}
  #nav-toggle{display:inline-flex}
  .search-wrap{display:none}
}
input[type="search"]{
  width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(32,48,40,0.08);background:var(--card);box-shadow:0 4px 10px var(--shadow);font-size:14px}
input[type="search"]:focus{outline:2px solid var(--accent-2);box-shadow:0 6px 18px var(--shadow)}

.section-title{font-size:14px;color:var(--muted);margin:18px 0}

.links-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

/* toolbar */
.toolbar-section{margin-top:18px}
.toolbar{display:flex;gap:12px;flex-wrap:wrap}
.tool-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:var(--card);box-shadow:0 8px 18px var(--shadow);border:1px solid rgba(32,48,40,0.04);text-decoration:none;color:inherit;min-width:220px}
.tool-card.placeholder{opacity:0.6}
.tool-card[aria-disabled="true"]{pointer-events:none}
.tool-title{font-weight:600}
.tool-desc{font-size:13px;color:var(--muted);margin-top:4px}

/* external link icon in tool cards */
.external-icon{width:18px;height:18px;margin-left:auto;fill:currentColor;opacity:0.9}
.tool-card:hover .external-icon{opacity:1;transform:translateX(3px)}

/* form inside toolbar */
.tool-form{display:flex;align-items:center;gap:12px}
.tool-input{display:block;padding:8px;border-radius:8px;border:1px solid rgba(32,48,40,0.06);background:var(--card);min-width:120px}
.tool-input:focus{outline:2px solid var(--accent-2)}

/* calendar */
.calendar-section{margin-top:20px}
.calendar-card{background:var(--card);border-radius:12px;padding:12px;box-shadow:0 8px 20px var(--shadow);border:1px solid rgba(32,48,40,0.04)}

.link-card{
  display:flex;align-items:center;gap:12px;padding:14px;border-radius:12px;background:linear-gradient(180deg,var(--card),var(--glass));box-shadow:0 8px 20px var(--shadow);border:1px solid rgba(32,48,40,0.03);transition:transform .18s ease,box-shadow .18s ease;
}
.link-card:focus-within,.link-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(32,48,40,0.14)}

.fav{width:48px;height:48px;border-radius:10px;display:grid;place-items:center;font-weight:700;color:white;flex:0 0 48px}
.meta{display:flex;flex-direction:column}
.meta .title{font-weight:600}
.meta .desc{font-size:13px;color:var(--muted);margin-top:4px}

/* make link focus obvious for keyboard users */
.link-card a:focus{outline:3px solid rgba(125,186,122,0.18);outline-offset:4px;border-radius:6px}

.site-footer{margin-top:22px;color:var(--muted);font-size:13px}

.muted-pill{font-size:12px;color:var(--muted);padding:6px 8px;border-radius:999px;background:transparent;border:1px solid rgba(32,48,40,0.04)}

/* color variants */
.c-green{background:linear-gradient(180deg,var(--accent-1),#6ba36c);color:#fff}
.c-sea{background:linear-gradient(180deg,var(--accent-2),#95b9b5);color:#07323a}
.c-sand{background:linear-gradient(180deg,var(--accent-3),#e6c98f);color:#3b2f20}

/* Responsive */
@media (max-width:900px){
  .links-grid{grid-template-columns:repeat(2,1fr)}
  .search-wrap{flex:1}
}
@media (max-width:560px){
  .container{margin:18px;padding:16px}
  .site-header{flex-direction:column;align-items:flex-start}
  .links-grid{grid-template-columns:1fr}
}

.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

.back-link{margin-bottom:14px}
.back-link .muted-pill{display:inline-block}
