:root{--bg:#f4f6f8;--card:#fff;--ink:#18212b;--muted:#687585;--line:#dfe5eb;--accent:#1769aa;--accent2:#e8f2fb;--ok:#2e7d32;--warn:#b26a00;--danger:#b42318}
*{box-sizing:border-box}
body{margin:0;padding:0;overflow-x:hidden;display:block;font-family:system-ui,-apple-system,sans-serif;color:var(--ink);font-size:15px;line-height:1.5}

#app{display:block;width:100%;min-height:100vh}

#sidebar{width:220px;position:fixed;top:0;bottom:0;left:0;height:100vh;background-color:rgb(19,32,43);color:#dbe6ee;z-index:1000;transition:transform .3s ease;overflow-y:auto;padding-top:56px}
#sidebar a{display:block;padding:12px 18px;color:#9fb3c7;text-decoration:none;border-left:3px solid transparent;font-size:14px}
#sidebar a:hover,#sidebar a.active{color:#fff;background:#1a2d3d;border-left-color:var(--accent)}

.main-content{flex-grow:1;min-width:0;padding:40px;max-width:1200px;margin:0 auto;width:100%}

.page{display:none}
.page.active{display:block;animation:fadeIn .2s ease-out}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:24px}
.card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,0.05);border:1px solid #eee;transition:transform 0.2s,box-shadow 0.2s}
.card.clickable{cursor:pointer}
.card.clickable:hover{transform:translateY(-4px);box-shadow:0 4px 12px rgba(0,0,0,0.1)}
.card-static{cursor:default}
.card-static:hover{transform:none;box-shadow:0 2px 8px rgba(0,0,0,0.05)}

.stat{font-size:32px;font-weight:700;color:var(--accent)}
.badge{display:inline-block;padding:3px 10px;border-radius:20px;background:var(--accent2);color:var(--accent);font-size:12px;font-weight:600}
.badge.todo{background:#fff8e6;color:var(--warn)}
.badge.done{background:#e9f6ea;color:var(--ok)}
.badge.danger{background:#fde8e7;color:var(--danger)}

.item{border:1px solid var(--line);border-radius:10px;padding:14px;margin:10px 0;background:#fff}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.between{justify-content:space-between}
.muted{color:var(--muted);font-size:13px}
.empty{padding:28px;text-align:center;color:var(--muted);border:2px dashed var(--line);border-radius:12px}

button,.btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 14px;cursor:pointer;font-size:14px}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
button.danger{color:var(--danger);border-color:#f5c6cb;background:#fff5f5}
button:hover{opacity:.88}
button:active{transform:scale(.97)}

input,textarea,select{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit}
textarea{min-height:110px;resize:vertical}
.field{margin:12px 0}
.field label{display:block;font-weight:600;margin-bottom:6px;font-size:14px}

.progress{height:8px;background:#e7ebef;border-radius:20px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--accent);transition:width .3s}

h2{margin:0 0 16px;font-size:22px}h3{margin:0 0 10px;font-size:17px}
.link{color:var(--accent);cursor:pointer;text-decoration:underline}

.journal-entry{border-left:3px solid var(--accent);padding-left:14px;margin:14px 0}
.journal-date{font-size:12px;color:var(--muted);margin-bottom:4px}

.tree{border-left:2px solid var(--line);padding-left:14px;margin-left:6px}

/* Toolbar */
.fmt-bar{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.fmt-bar button{background:#f1f5f9;border:1px solid var(--line);border-radius:6px;padding:4px 10px;font-size:13px;cursor:pointer;line-height:1.4}
.fmt-bar button:hover{background:#e2e8f0}

/* Login Screen */
.login-screen {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: #f4f7fb;
}

.login-card {
  width: min(100%, 390px);
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 28px;
  box-shadow: 0 12px 35px rgba(15, 23, 42, .12);
}

.login-card h1 {
  margin-top: 0;
  margin-bottom: 8px;
}

.login-card .field {
  margin-top: 16px;
}

.login-card input {
  width: 100%;
  box-sizing: border-box;
  margin-top: 6px;
}

.login-card button {
  width: 100%;
  margin-top: 22px;
}

.login-message {
  min-height: 22px;
  margin-top: 14px;
  color: #b42318;
  font-size: 14px;
}

.logout-button {
  width: 100%;
  margin-top: 18px;
  color: #b42318;
}

header{background:#13202b;color:#fff;padding:16px 20px;position:sticky;top:0;z-index:10;border-radius:12px;margin-bottom:24px}
header h1{margin:0;font-size:20px;font-weight:700}
header h2{margin:0 0 16px;font-size:22px;font-weight:700}
header h3{margin:0 0 10px;font-size:17px;font-weight:600}
header small{color:#9fb3c7;font-size:13px}

.sidebar-toggle{display:none}

.logout-btn{display:block;width:85%;margin:20px auto;padding:12px;background-color:#e74c3c;color:white!important;text-align:center;border-radius:8px;font-weight:bold;text-decoration:none;transition:background .3s;border:none;cursor:pointer}
.logout-btn:hover{background-color:#c0392b}

@media(max-width:768px){
  #sidebar{position:fixed;left:-220px;transition:transform .3s ease;background-color:rgb(19,32,43)!important;z-index:2000}
  #sidebar.show{transform:translateX(220px)}

  .sidebar-toggle{display:flex!important;flex-direction:column;justify-content:center;align-items:center;position:fixed;left:0;top:50%;transform:translateY(-50%);width:15px;height:60px;background-color:rgba(0,0,0,.2)!important;border-radius:0 4px 4px 0;opacity:.5;z-index:2001}

  .sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:999}
  .sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1999}

  .grid{grid-template-columns:1fr}
  h2{font-size:19px}
  .item{padding:12px}
  .main-content{padding:14px 12px}
}

@media(min-width:769px){
  #sidebar{position:fixed;left:0;transform:none}
  .sidebar-toggle{display:none}
  .sidebar-overlay{display:none!important}
}