/* Dashboard Telseg - estilos base */ :root { color-scheme: dark; /* Tema escuro neutro (preto) */ --bg: #000000; /* preto puro */ --panel: #0a0a0a; /* preto levemente mais claro que o bg */ --card: #121212; /* cards um tom mais claro (igual à barra) */ --muted: #cbd5e1; /* texto secundário claro */ --text: #f1f5f9; /* texto principal muito claro */ --primary: #22c55e; /* green-500 */ --primary-600: #16a34a; --border: #262626; /* cinza neutro para contornos sutis */ --danger: #ef4444; /* red-500 */ --warning: #f59e0b; /* amber-500 */ --link: #93c5fd; /* blue-300 */ } [data-theme="light"] { color-scheme: light; --bg: #f8fafc; /* slate-50 */ --panel: #ffffff; --card: #fdfdfd; --muted: #475569; /* slate-600 */ --text: #0f172a; /* slate-900 */ --primary: #16a34a; --primary-600: #15803d; --border: #e2e8f0; --link: #2563eb; /* blue-600 */ } * { box-sizing: border-box; } html, body { height: 100%; } body { margin: 0; font: 16px/1.5 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, "Apple Color Emoji", "Segoe UI Emoji"; color: var(--text); background: radial-gradient(1200px 800px at 20% 0%, rgba(34,197,94,0.06), transparent 45%), var(--bg); } .app-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; } .brand { display: flex; align-items: center; gap: 12px; } .brand h1 { font-size: 20px; margin: 0; font-weight: 700; letter-spacing: 0.3px; } .logo { display: none; } .logo-img { height: 64px; width: auto; display: inline-block; margin-right: 8px; } .logo-img.dark { display: none; } [data-theme="dark"] .logo-img.dark { display: inline-block; } [data-theme="dark"] .logo-img.light { display: none; } .top-actions { display: flex; gap: 8px; align-items: center; } /* Links legíveis no escuro */ a { color: var(--link); text-decoration: underline; } a:hover { filter: brightness(1.1); } .tabs { display: flex; gap: 8px; padding: 0 12px 8px; border-bottom: 1px solid var(--border); } .tab { background: transparent; color: var(--muted); border: none; padding: 10px 14px; border-radius: 8px; cursor: pointer; } .tab.active { background: var(--panel); color: var(--text); box-shadow: inset 0 0 0 1px var(--border); } .views { padding: 16px; max-width: 1680px; margin: 0 auto; } .view { display: none; } .view.active { display: block; } .view-bar { display: flex; justify-content: space-between; gap: 12px; margin: 12px 0 16px; } .view-bar .right, .view-bar .left { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .input { width: 100%; padding: 10px 12px; background: var(--panel); color: var(--text); border: 1px solid var(--border); border-radius: 10px; outline: none; } .input::placeholder { color: var(--muted); } .btn { padding: 10px 14px; border: 1px solid var(--border); background: var(--panel); color: var(--text); border-radius: 10px; cursor: pointer; } .btn:hover { filter: brightness(1.05); } .btn.primary { background: linear-gradient(180deg, var(--primary), var(--primary-600)); border: none; color: white; } .btn.danger { background: linear-gradient(180deg, #f87171, #ef4444); border: none; color: white; } .btn.small { padding: 6px 10px; font-size: 13px; } .icon-btn { padding: 8px 10px; border-radius: 8px; background: var(--panel); color: var(--text); border: 1px solid var(--border); cursor: pointer; } .cards { display: grid; grid-template-columns: 1fr; gap: 16px; } /* Unidades em duas colunas em telas largas */ @media (min-width: 980px) { /* Em telas largas, usar colunas responsivas com largura mínima suficiente para manter os botões na mesma linha. */ #unidadesList.cards, #credsList.cards { grid-template-columns: repeat(auto-fit, minmax(720px, 1fr)); } /* notas agora usam contêiner de colunas */ /* Manter as ações numa única linha; se apertar muito, permite rolagem. */ .card .actions { flex-wrap: nowrap; overflow-x: auto; } } .card { background: var(--card, var(--panel)); border: 1px solid var(--border); border-radius: 14px; padding: 20px; display: grid; gap: 10px; font-size: 1.12rem; line-height: 1.45; } .card.clickable { cursor: pointer; } .card.clickable:hover { box-shadow: 0 0 0 1px var(--border); } .card h4 { margin: 0; font-size: 22px; } .meta { color: var(--muted); font-size: 15px; } .chips { display: flex; gap: 6px; flex-wrap: wrap; } .chip { font-size: 14px; padding: 4px 10px; border-radius: 999px; color: var(--text); background: rgba(148,163,184,0.25); border: 1px solid var(--border); } .actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; } /* botões mais legíveis dentro dos cards */ .card .btn { font-size: 14px; padding: 10px 14px; } .card .btn.small { font-size: 14px; padding: 8px 12px; } /* Evitar quebra de layout com textos longos (ex.: notas, URLs, tokens) */ /* Mantém quebras de linha digitadas e permite quebrar palavras muito grandes */ .card .k { white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; } .card .meta { overflow-wrap: anywhere; word-break: break-word; } .card a { overflow-wrap: anywhere; word-break: break-word; } /* Passos (notas) */ .step-card { background: var(--panel); border: 1px dashed var(--border); border-radius: 10px; padding: 10px; display: flex; justify-content: space-between; align-items: center; gap: 8px; } .step-card .text { flex: 1; } .step-card .text[contenteditable="true"] { outline: 1px dashed var(--border); border-radius: 6px; padding: 3px 6px; } /* Visualização de nota */ .note-view .title { font-size: 22px; margin: 0; } .note-view .meta { margin-top: 4px; } .note-view .content { white-space: pre-wrap; line-height: 1.5; font-size: 1.05rem; overflow-wrap: anywhere; word-break: break-word; } .note-view ol { margin: 6px 0 0 22px; } /* Visualização de credencial */ .cred-view .content { white-space: pre-wrap; line-height: 1.5; font-size: 1.05rem; overflow-wrap: anywhere; word-break: break-word; } .note-view .modal-body, .cred-view .modal-body { max-height: 70vh; overflow: auto; } .note-view .modal-body a, .cred-view .modal-body a { overflow-wrap: anywhere; word-break: break-word; } .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; } label span { display: block; font-size: 13px; color: var(--muted); margin-bottom: 6px; } .modal { position: fixed; inset: 0; background: rgba(2,6,23,0.6); display: grid; place-items: center; padding: 16px; z-index: 20; } .modal.hidden { display: none; } .modal-card { width: min(720px, 100%); background: var(--card, var(--panel)); border: 1px solid var(--border); border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.35); overflow-wrap: anywhere; } .modal .modal-card { background: var(--card, var(--panel)); } .modal-card.wide { width: min(960px, 100%); } .modal-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--border); } .modal-head h3 { margin: 0; font-size: 16px; } .modal-body { padding: 14px; display: grid; gap: 12px; } .modal-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 6px; } .hidden { display: none !important; } .app-footer { padding: 18px; text-align: center; color: var(--muted); } /* Helpers */ .k { color: var(--muted); font-size: 13px; } .row a { display: inline-block; max-width: 100%; } .row { display: flex; gap: 8px; align-items: center; } /* Notas: duas colunas (Notas | Passo a Passo) */ .notes-columns { display: grid; grid-template-columns: 1fr; gap: 16px; } .notes-col { display: grid; gap: 8px; align-content: start; } .column-title { margin: 2px 4px 4px; font-size: 16px; color: var(--muted); font-weight: 600; } @media (min-width: 980px) { .notes-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 520px) { .view-bar { flex-direction: column; align-items: stretch; } .top-actions { flex-wrap: wrap; } /* Logo um pouco menor em telas muito pequenas */ .logo-img { height: 40px; } }