* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial; }
.layout { display: flex; min-height: 100vh; }

.sidebar {
  width: 260px;
  padding: 18px;
  border-right: 1px solid #e8e8e8;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.brand { font-weight: 700; font-size: 18px; }
.userbox { padding: 12px; border: 1px solid #eee; border-radius: 12px; }
.userbox .role { opacity: .7; font-size: 12px; margin-top: 4px; }
.nav a { display:block; padding: 10px 12px; border-radius: 10px; text-decoration:none; color:#111; }
.nav a:hover { background: #f5f5f5; }
.spacer { flex: 1; }
.logout { text-decoration:none; color:#b00020; padding: 10px 12px; border-radius: 10px; }
.logout:hover { background:#fff2f2; }

.content { flex: 1; padding: 22px; }
h1 { margin: 0 0 16px 0; font-size: 22px; }

.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.tile { border: 1px solid #eee; border-radius: 16px; padding: 14px; background: #fff; }
.tile-title { font-weight: 700; margin-bottom: 8px; }
.tile-desc { opacity: .85; font-size: 14px; min-height: 42px; }
.tile-meta { margin-top: 10px; font-size: 12px; opacity: .6; }

.login { display:flex; min-height:100vh; align-items:center; justify-content:center; background:#fafafa; }
.card { width: 360px; background:#fff; border:1px solid #eee; border-radius: 18px; padding: 18px; display:flex; flex-direction:column; gap: 10px; }
.card h1 { margin: 0 0 6px 0; }
input { padding: 10px 12px; border-radius: 10px; border:1px solid #ddd; }
button { padding: 10px 12px; border-radius: 10px; border:0; cursor:pointer; }
.error { margin-top: 6px; color:#b00020; font-size: 13px; }
.hint { opacity:.7; }
.formgrid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
label{ display:block; font-size:12px; opacity:.7; margin-bottom:6px; }

select{ width:100%; padding:10px 12px; border-radius:10px; border:1px solid #ddd; background:#fff; }

.tbl{ width:100%; border-collapse: collapse; margin-top: 10px; }
.tbl th, .tbl td{ border-bottom:1px solid #eee; padding:10px; text-align:left; font-size: 14px; }
.tbl th{ font-size: 12px; opacity: .7; }
.tile-link { color: inherit; text-decoration: none; display:block; }
.tile-link:hover { border-color:#ddd; box-shadow: 0 6px 18px rgba(0,0,0,.04); }

.topbar{ display:flex; align-items:flex-start; justify-content:space-between; gap: 12px; margin-bottom: 14px; }
.crumbs a{ text-decoration:none; color:#111; opacity:.75; }
.crumbs a:hover{ opacity:1; }

.grid2{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:14px; }
@media (max-width: 900px){ .grid2{ grid-template-columns: 1fr; } }

.kv{ display:grid; grid-template-columns: 200px 1fr; gap: 10px; margin-top: 10px; }
.kv .k{ font-size: 12px; opacity:.7; }
.kv .v{ font-size: 14px; }

.chips{ display:flex; flex-wrap:wrap; gap: 8px; margin-top: 10px; }
.chip { text-decoration:none; color: inherit; display:inline-block; }
.chip:hover { background:#f7f7f7; }

.btn{ padding:10px 12px; border-radius: 10px; border:1px solid #ddd; background:#fff; cursor:pointer; }
.btn:hover{ background:#f7f7f7; }

.modal-card{
  width: min(520px, 100%);
  background:#fff; border:1px solid #eee; border-radius: 18px; padding: 14px;
}
.modal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 10px; }
.x{ border:0; background:transparent; cursor:pointer; font-size: 18px; opacity:.7; }
.x:hover{ opacity: 1; }
.stack { display:flex; flex-direction:column; gap:14px; }
textarea { font-family: inherit; }
.tasks{ display:flex; flex-direction:column; gap:8px; }
.task{ display:flex; gap:10px; align-items:center; cursor:pointer; }
.task input{ width:16px; height:16px; }
.modal{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.25);
  align-items: center;
  justify-content: center;
  padding: 16px;
  display: none;        /* ВАЖНО */
  z-index: 1000;        /* можно оставить */
}

.modal.is-open{
  display: flex;        /* ВАЖНО */
}
/* Полноширинные секции под карточкой */
.wide-section {
  margin-top: 16px;
}

/* если карточка внутри .content — растягиваем */
.wide-section .tile {
  width: 100%;
}

/* чтобы таблицы не ломались */
.wide-section table {
  width: 100%;
}

/* ===== Startup Tabs ===== */

.startup-tabs{
  display: flex;
  align-items: center;
  gap: 28px;
  margin: 18px 0 24px 0;
  padding: 0 4px;
  border-bottom: 1px solid #e8e8e8;
}

.startup-tab{
  position: relative;
  padding: 10px 0;
  font-size: 15px;
  font-weight: 500;
  color: #555;
  text-decoration: none;
  cursor: pointer;
}

.startup-tab:hover{
  color: #111;
}

.startup-tab.active{
  color: #111;
  font-weight: 700;
}

.startup-tab.active::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: #111;
}

/* disabled */
.startup-tab.disabled{
  opacity: .35;
  cursor: not-allowed;
}

.tbl input{
  width: 110px;
}
.finance-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap: wrap;
  max-width: 100%;
}

.finance-year-form{
  max-width: 100%;
}

.finance-year-select{
  width: auto;
  max-width: 100%;
  padding: 8px 10px;
  border-radius: 10px;
}
.tile-kv{
  display:grid;
  grid-template-columns: 120px 1fr;
  gap: 6px 10px;
  margin-top: 10px;
  font-size: 13px;
}

.tile-kv .k{ opacity: .65; }
.tile-kv .v{ opacity: .95; }

.tile-warn{ background: #fff2f2; border-color: #ffd0d0; }
.tile-good{ background: #f1fff3; border-color: #c9f3d0; }

input[type="file"]{
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #fff;
}
.mindmap-wrap{
  display:flex;
  height: calc(100vh - 220px);
  min-height: 520px;
}

.mindmap-svg{
  flex: 1;
  background: #fbfbfb;
  border-right: 1px solid #eee;
  cursor: grab;
}

.mindmap-panel{
  width: 340px;
  padding: 14px;
  background:#fff;
}

.mm-link{ stroke:#333; opacity:.6; }
.mm-node .mm-rect{ stroke:#111; stroke-opacity:.25; stroke-width:1.5; }
.mm-node.is-selected .mm-rect{ stroke:#111; stroke-opacity:.6; stroke-width:2; }
.mm-text{ font: 14px system-ui, -apple-system, Segoe UI, Roboto, Arial; fill:#111; pointer-events:none; }

#btnLink.is-active{ background:#f7f7f7; }
.meeting-top{ margin-bottom: 12px; }

.meeting-meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top: 10px;
}

.pill{
  border:1px solid #eee;
  background:#fff;
  border-radius: 999px;
  padding: 8px 10px;
  font-size: 13px;
}

.meeting-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

@media (max-width: 1100px){
  .meeting-grid{ grid-template-columns: 1fr; }
}

.fastarea{
  width:100%;
  resize: vertical;
  padding: 12px;
  border-radius: 12px;
  border:1px solid #ddd;
  font-family: inherit;
  line-height: 1.35;
}

.task-add-grid{
  display:grid;
  grid-template-columns: 2fr 1.4fr 1fr auto;
  gap: 10px;
  margin-top: 10px;
}

@media (max-width: 900px){
  .task-add-grid{ grid-template-columns: 1fr; }
}

.score-row{
  display:flex;
  align-items:center;
  gap: 12px;
  margin-top: 10px;
}

.score-row input[type="range"]{ width: 100%; }
.score-val{
  min-width: 44px;
  text-align:center;
  font-weight:700;
  border:1px solid #eee;
  border-radius: 12px;
  padding: 8px 10px;
  background:#fff;
}

.meeting-actions{
  display:flex;
  gap:10px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.topbar-right{ display:flex; align-items:center; }
.yearbox{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top: 6px;
  flex-wrap: wrap;
}
.yearbox select{ min-width: 110px; }
.spark{
  width: 160px;
  height: 26px;
  opacity: .85;
}
.spark-hint{ font-size: 11px; margin-top: 2px; opacity: .6; }

.tbl thead th.is-sorted-asc::after{ content:"  ↑"; opacity:.6; }
.tbl thead th.is-sorted-desc::after{ content:"  ↓"; opacity:.6; }
.badge{
  margin-left:auto;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ff3b30;
  color: #fff;
}
/* ===== No-sidebar layout (login, public pages) ===== */
.layout--no-sidebar .sidebar{
  display: none !important;
}

.layout--no-sidebar .content{
  padding: 0 !important;
}

/* чтобы login точно занимал экран */
.layout--no-sidebar .login{
  min-height: 100vh;
}