body {font-family: system-ui, sans-serif; margin: 0; display: flex; flex-direction: column; min-height: 100vh;}
header {display: flex; align-items: center; justify-content: space-between; background: #333; color: white; padding: 10px 15px; position: relative;}
footer {background: #333; color: white; text-align: center; padding: 10px;}
main {flex: 1; padding: 20px; max-width: 1000px; margin: 0 auto;}
button {cursor:pointer; border-radius: 8px; border: 1px solid #ccc; background:#e4e4e4; padding: 10px 12px; font-size: 16px;}
button:hover {background: #aa92f8;}
input {background: #ffffff; padding: 10px 12px; font-size: 15px; border-radius: 8px; border: 1px solid #ccc; transition: border 0.2s, box-shadow 0.2s; width:200px;}
input:focus {border-color: #7f57ff; box-shadow: 0 0 0 2px rgba(127, 87, 255, 0.2); outline: none;}
select{background: #ffffff; padding: 10px 12px; font-size: 15px; border-radius: 8px; border: 1px solid #ccc; transition: border 0.2s, box-shadow 0.2s; width:225px;}
select:focus {border-color: #7f57ff; box-shadow: 0 0 0 2px rgba(127, 87, 255, 0.2); outline: none;}
/* навигация */
nav ul {list-style: none; display: flex; gap: 20px; margin: 0; padding: 0;}
nav a {color: white; text-decoration: none; font-weight: 500;}
nav a:hover {text-decoration: underline;}
/* бургер */
.burger {display: none; flex-direction: column; justify-content: center; gap: 5px; width: 30px; height: 25px; background: none; border: none; cursor: pointer;}
.burger span {display: block; height: 3px; width: 100%; background: white; border-radius: 2px; transition: 0.3s;}
.burger.active span:nth-child(1) {transform: translateY(8px) rotate(45deg);}
.burger.active span:nth-child(2) {opacity: 0;}
.burger.active span:nth-child(3) {transform: translateY(-8px) rotate(-45deg);}
/* сетка */
.grid-3 {display: grid; grid-template-columns: 15% 70% 15%; gap: 20px; margin-top: 20px;}
.grid-block {background: #f5f5f5; padding: 15px; border-radius: 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.1);}
/* Полупрозрачный фон */
.overlay {position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); display: flex; justify-content: center; align-items: center; z-index: 1000;}

/* Окна */
/* Message */
.window-popup {width:400px; height:150px; background:#fff; border-radius:10px; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:20px; box-shadow:0 0 10px rgba(0,0,0,0.3); }


/* Menu */
.window-menu { position:absolute; background:#fff; border-radius:10px; border:1px solid rgba(0,0,0,0.12); box-shadow:0 6px 18px rgba(0,0,0,0.12); min-width:160px; z-index:9999; overflow:hidden; }
.window-item { padding:8px 12px; cursor:pointer; white-space:nowrap; font-size:14px; }
.window-item:hover { background:rgba(0,0,0,0.04); }

/* File */
.window-panel { width:420px; background:#f0f0f0; border:1px solid #888; border-radius:10px; box-shadow:0 0 12px rgba(0,0,0,0.4); position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); user-select:none; display:flex; flex-direction:column; }
.window-header { background:#f0f0f0; padding:10px; font-size:16px; font-weight:600; border-bottom:1px solid #aaa; cursor:move; }
.window-tabs { display:flex; border-bottom:1px solid #aaa; background:#f0f0f0; }
.window-tab { padding:8px 14px; cursor:pointer; border-right:1px solid #aaa; user-select:none; }
.window-tab.active { background:#fff; font-weight:600; border-bottom:2px solid #fff; }
.window-content { display:none; padding:15px; background:#fff; }
.window-content.active { display:block; }
.window-row { display:flex; justify-content:space-between; margin-bottom:8px; font-size:14px; }
.window-buttons { display:flex; justify-content:flex-end; padding:10px; gap:8px; border-top:1px solid #aaa; background:#f0f0f0; }
.window-buttons button { padding:6px 16px; cursor:pointer; }

/* адаптив */
@media (max-width: 425px) {
  .grid-3 {grid-template-columns: 1fr;}
  .burger {display: flex;}
  nav {position: absolute; top: 100%; left: 0; width: 100%; background: #222; display: none; flex-direction: column; text-align: center; padding: 10px 0; z-index: 10;}
  nav.open {display: flex; animation: slideDown 0.3s ease;}
  nav ul {flex-direction: column; gap: 10px;}
  @keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
  }
}
.ui-overlay {position: fixed; inset: 0; background: rgba(0,0,0,.4); display: flex; align-items: center; justify-content: center;}
.ui-alert {background: #fff; padding: 20px; border-radius: 16px; min-width: 300px; font-family: sans-serif; text-align: center;}
/* .ui-alert button {margin-top: 20px; border: 1px solid #ccc; padding: 8px 16px; cursor: pointer; border-radius: 8px;} */
.ui-popup-list {position: fixed; background: #fff; border: 1px solid #ccc; border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,.15); z-index: 1000;}
.ui-popup-list .icon {width: 16px; text-align: center;}
.ui-popup-list div {padding: 8px 12px; cursor: pointer; display: flex; align-items: center;}
.ui-popup-list div:hover {background: #eee;}
.ui-window {background: #fff; padding: 16px; border-radius: 8px; min-width: 300px; font-family: sans-serif; width: 360px;}
.ui-window .header {display: flex; justify-content: space-between; font-weight: bold; margin-bottom: 10px; cursor: move; user-select: none;}
.ui-window .row {display: flex; justify-content: space-between; padding: 4px 0;}
/* Tabs */
.tabs {display: flex; border-bottom: 1px solid #ccc; margin-bottom: 10px;}
.tab {padding: 6px 12px; cursor: pointer;}
.tab.active {border-bottom: 2px solid #0078d7; font-weight: bold;}
.tab-content {display: none;}
.tab-content.active {display: block;}
