Leyes
This commit is contained in:
parent
0c9d177f79
commit
df680fedaf
|
|
@ -0,0 +1,16 @@
|
|||
.denied-wrap {
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
min-height: 100vh; padding: 2rem; text-align: center;
|
||||
}
|
||||
.denied-card {
|
||||
background: var(--bg-alt); border: 1px solid var(--border);
|
||||
border-radius: 12px; padding: 3rem 2rem; max-width: 480px; width: 100%;
|
||||
}
|
||||
.denied-card h2 { color: var(--error, #f44747); font-size: 1.5rem; margin-bottom: 1rem; }
|
||||
.denied-card p { color: var(--text-muted); margin-bottom: 1.5rem; line-height: 1.6; }
|
||||
.denied-card a {
|
||||
display: inline-block; padding: .6rem 1.4rem; border-radius: 8px;
|
||||
background: var(--accent); color: #fff; text-decoration: none;
|
||||
font-weight: 600; transition: opacity .15s;
|
||||
}
|
||||
.denied-card a:hover { opacity: .88; }
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
body { padding-top: var(--topbar-h); }
|
||||
|
||||
/* ── Topbar admin ── */
|
||||
.topbar { background: #1a1a2e; border-bottom-color: #3c3c6e; }
|
||||
.topbar-brand { color: #c792ea; }
|
||||
.admin-badge {
|
||||
font-size: .72rem; font-weight: 700; padding: .15rem .5rem;
|
||||
background: rgba(199,146,234,.15); color: #c792ea;
|
||||
border: 1px solid #c792ea; border-radius: 4px;
|
||||
}
|
||||
|
||||
/* ── Layout ── */
|
||||
.admin-wrap { max-width: 1100px; margin: 2rem auto; padding: 0 1.5rem; }
|
||||
.admin-wrap h1 { font-size: 1.4rem; color: var(--accent-2); margin-bottom: 1.5rem; }
|
||||
|
||||
/* ── Mensajes ── */
|
||||
.msg-error {
|
||||
padding: .6rem .9rem; border-radius: 6px; margin-bottom: 1rem;
|
||||
background: rgba(244,71,71,.12); color: var(--error);
|
||||
border: 1px solid var(--error); font-size: .88rem;
|
||||
}
|
||||
|
||||
/* ── Nuevo usuario ── */
|
||||
.nuevo-form {
|
||||
background: var(--bg-alt); border: 1px solid var(--border);
|
||||
border-radius: 10px; padding: 1.2rem 1.4rem; margin-bottom: 2rem;
|
||||
display: flex; flex-wrap: wrap; gap: .8rem; align-items: flex-end;
|
||||
}
|
||||
.nuevo-form h3 { width: 100%; font-size: 1rem; color: var(--accent-2); margin-bottom: .2rem; }
|
||||
.nuevo-form input[type="email"],
|
||||
.nuevo-form input[type="password"] {
|
||||
background: var(--bg); border: 1px solid var(--border); border-radius: 6px;
|
||||
color: var(--text); padding: .45rem .7rem; font-size: .9rem; min-width: 200px;
|
||||
}
|
||||
.nuevo-form label.check-label { display: flex; align-items: center; gap: .4rem;
|
||||
font-size: .88rem; color: var(--text-muted); cursor: pointer; }
|
||||
.nuevo-btn {
|
||||
padding: .45rem 1.1rem; border-radius: 6px; border: none;
|
||||
background: var(--accent); color: #fff; font-weight: 600;
|
||||
font-size: .9rem; cursor: pointer;
|
||||
}
|
||||
|
||||
/* ── Tabla ── */
|
||||
.usuarios-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
|
||||
.usuarios-table th {
|
||||
background: var(--bg-alt); color: var(--text-muted); font-weight: 700;
|
||||
text-transform: uppercase; font-size: .72rem; letter-spacing: .06em;
|
||||
padding: .6rem .9rem; text-align: left; border-bottom: 1px solid var(--border);
|
||||
}
|
||||
.usuarios-table td {
|
||||
padding: .6rem .9rem; border-bottom: 1px solid var(--border);
|
||||
vertical-align: middle;
|
||||
}
|
||||
.usuarios-table tr:hover td { background: var(--bg-hover); }
|
||||
|
||||
/* Badges de estado */
|
||||
.badge {
|
||||
display: inline-block; font-size: .72rem; font-weight: 700;
|
||||
padding: .15rem .5rem; border-radius: 4px;
|
||||
}
|
||||
.badge-on { background: rgba(106,153,85,.15); color: #6a9955; border: 1px solid #6a9955; }
|
||||
.badge-off { background: rgba(244,71,71,.1); color: var(--error); border: 1px solid var(--error); }
|
||||
.badge-admin { background: rgba(199,146,234,.15); color: #c792ea; border: 1px solid #c792ea; }
|
||||
|
||||
/* Botones de acción */
|
||||
.btn-accion {
|
||||
padding: .3rem .7rem; border-radius: 5px; border: 1px solid var(--border);
|
||||
background: var(--bg); color: var(--text); font-size: .8rem;
|
||||
cursor: pointer; transition: border-color .12s, color .12s;
|
||||
}
|
||||
.btn-accion:hover { border-color: var(--accent); color: var(--accent-2); }
|
||||
.btn-accion.danger:hover { border-color: var(--error); color: var(--error); }
|
||||
.acciones { display: flex; gap: .4rem; flex-wrap: wrap; }
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
.leyes-layout {
|
||||
display: flex;
|
||||
height: calc(100vh - var(--topbar-h));
|
||||
margin-top: var(--topbar-h);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* ── Panel izquierdo ─── */
|
||||
.leyes-sidebar {
|
||||
width: 320px;
|
||||
flex-shrink: 0;
|
||||
background: var(--bg-alt);
|
||||
border-right: 1px solid var(--border);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
.leyes-sidebar-header {
|
||||
padding: 1rem 1.1rem .8rem;
|
||||
border-bottom: 1px solid var(--border);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.leyes-sidebar-header h2 {
|
||||
font-size: .9rem;
|
||||
font-weight: 700;
|
||||
color: var(--accent-2);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .06em;
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
.leyes-search {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: var(--bg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 6px;
|
||||
padding: .35rem .7rem;
|
||||
gap: .5rem;
|
||||
}
|
||||
.leyes-search i { color: var(--text-muted); font-size: .85rem; }
|
||||
.leyes-search input {
|
||||
background: none;
|
||||
border: none;
|
||||
outline: none;
|
||||
color: var(--text);
|
||||
font-size: .85rem;
|
||||
width: 100%;
|
||||
}
|
||||
.leyes-search input::placeholder { color: var(--text-muted); }
|
||||
|
||||
.leyes-list {
|
||||
overflow-y: auto;
|
||||
flex: 1;
|
||||
padding: .5rem 0;
|
||||
}
|
||||
|
||||
.ley-grupo-label {
|
||||
font-size: .7rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .07em;
|
||||
color: var(--text-muted);
|
||||
padding: .7rem 1.1rem .3rem;
|
||||
}
|
||||
.ley-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: .2rem;
|
||||
padding: .6rem 1.1rem;
|
||||
cursor: pointer;
|
||||
border-left: 3px solid transparent;
|
||||
transition: background .12s, border-color .12s;
|
||||
}
|
||||
.ley-item:hover { background: var(--bg-hover); }
|
||||
.ley-item.active {
|
||||
background: var(--bg-hover);
|
||||
border-left-color: var(--accent);
|
||||
}
|
||||
.ley-item.hidden { display: none; }
|
||||
.ley-nombre {
|
||||
font-size: .87rem;
|
||||
font-weight: 600;
|
||||
color: var(--text);
|
||||
line-height: 1.3;
|
||||
}
|
||||
.ley-subtitulo {
|
||||
font-size: .75rem;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
.ley-badge {
|
||||
display: inline-block;
|
||||
font-size: .68rem;
|
||||
font-weight: 700;
|
||||
padding: .1rem .4rem;
|
||||
border-radius: 4px;
|
||||
background: rgba(0,122,204,.15);
|
||||
color: var(--accent);
|
||||
margin-top: .1rem;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
/* ── Panel derecho ─── */
|
||||
.leyes-viewer {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
.leyes-viewer-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: .8rem;
|
||||
padding: .75rem 1.2rem;
|
||||
background: var(--bg-alt);
|
||||
border-bottom: 1px solid var(--border);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.leyes-viewer-title {
|
||||
font-size: .9rem;
|
||||
font-weight: 600;
|
||||
color: var(--text);
|
||||
flex: 1;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.leyes-viewer-actions {
|
||||
display: flex;
|
||||
gap: .5rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.leyes-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: .4rem;
|
||||
font-size: .8rem;
|
||||
font-weight: 600;
|
||||
padding: .35rem .8rem;
|
||||
border-radius: 6px;
|
||||
background: var(--bg);
|
||||
border: 1px solid var(--border);
|
||||
color: var(--text);
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
transition: background .12s, border-color .12s;
|
||||
}
|
||||
.leyes-btn:hover { background: var(--bg-hover); border-color: var(--accent); color: var(--accent-2); }
|
||||
.leyes-btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
|
||||
.leyes-btn.primary:hover { background: #0090e8; }
|
||||
|
||||
.leyes-viewer iframe {
|
||||
flex: 1;
|
||||
border: none;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.leyes-placeholder {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
.leyes-placeholder i { font-size: 3rem; opacity: .3; }
|
||||
.leyes-placeholder p { font-size: .95rem; }
|
||||
|
||||
/* ── Responsive ─── */
|
||||
@media (max-width: 700px) {
|
||||
.leyes-layout { flex-direction: column; height: auto; overflow: auto; }
|
||||
.leyes-sidebar { width: 100%; height: 260px; border-right: none; border-bottom: 1px solid var(--border); }
|
||||
.leyes-viewer { height: calc(100vh - var(--topbar-h) - 260px); min-height: 400px; }
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
.pagar-wrap {
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
min-height: 100vh; padding: 5rem 1.5rem 2rem;
|
||||
}
|
||||
.pagar-card {
|
||||
background: var(--bg-alt); border: 1px solid var(--border);
|
||||
border-radius: 14px; padding: 2.5rem 2rem; width: 100%; max-width: 500px;
|
||||
}
|
||||
.pagar-card h2 { color: var(--accent-2); font-size: 1.4rem; margin-bottom: .4rem; }
|
||||
.pagar-precio {
|
||||
font-size: 2.8rem; font-weight: 700; color: var(--accent);
|
||||
margin: 1.2rem 0 .3rem;
|
||||
}
|
||||
.pagar-precio small { font-size: 1rem; color: var(--text-muted); font-weight: 400; }
|
||||
.pagar-features { list-style: none; padding: 0; margin: 1.2rem 0 1.8rem; }
|
||||
.pagar-features li { padding: .4rem 0; color: var(--text-muted); font-size: .9rem; }
|
||||
.pagar-features li i { color: var(--accent); margin-right: .5rem; width: 1rem; }
|
||||
.pagar-badge {
|
||||
display: inline-block; font-size: .75rem; padding: .25rem .7rem;
|
||||
border-radius: 20px; background: rgba(106,153,85,.15);
|
||||
color: var(--success, #6a9955); border: 1px solid var(--success, #6a9955);
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.btn-stripe {
|
||||
display: flex; align-items: center; justify-content: center; gap: .6rem;
|
||||
width: 100%; padding: .8rem; border-radius: 10px; border: none;
|
||||
background: #635BFF; color: #fff; font-size: 1rem;
|
||||
font-weight: 700; cursor: pointer; font-family: inherit;
|
||||
transition: opacity .15s;
|
||||
}
|
||||
.btn-stripe:hover { opacity: .88; }
|
||||
.pagar-footer { margin-top: 1rem; font-size: .78rem; color: var(--text-muted); text-align: center; }
|
||||
.pagar-footer a { color: var(--accent); }
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
.result-wrap { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:2rem; text-align:center; }
|
||||
.result-card { background:var(--bg-alt); border:1px solid var(--border); border-radius:14px; padding:3rem 2rem; max-width:460px; width:100%; }
|
||||
.result-icon { font-size:3rem; color:var(--text-muted); margin-bottom:1rem; }
|
||||
.result-card h2 { color:var(--accent-2); font-size:1.4rem; margin-bottom:.8rem; }
|
||||
.result-card p { color:var(--text-muted); line-height:1.6; margin-bottom:1.5rem; }
|
||||
.btn-row { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
|
||||
.btn-row a { display:inline-block; padding:.6rem 1.4rem; border-radius:8px; text-decoration:none; font-weight:700; transition:opacity .15s; }
|
||||
.btn-primary { background:var(--accent); color:#fff; }
|
||||
.btn-secondary { background:var(--bg-hover); color:var(--text); }
|
||||
.btn-row a:hover { opacity:.85; }
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
.result-wrap { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:2rem; text-align:center; }
|
||||
.result-card { background:var(--bg-alt); border:1px solid var(--border); border-radius:14px; padding:3rem 2rem; max-width:460px; width:100%; }
|
||||
.result-icon { font-size:3rem; color:var(--success,#6a9955); margin-bottom:1rem; }
|
||||
.result-card h2 { color:var(--accent-2); font-size:1.4rem; margin-bottom:.8rem; }
|
||||
.result-card p { color:var(--text-muted); line-height:1.6; margin-bottom:1.5rem; }
|
||||
.result-card a { display:inline-block; padding:.65rem 1.6rem; border-radius:8px; background:var(--accent); color:#fff; text-decoration:none; font-weight:700; transition:opacity .15s; }
|
||||
.result-card a:hover { opacity:.85; }
|
||||
.result-note { margin-top:1rem; font-size:.8rem; color:var(--text-muted); }
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
/* Overrides y estilos específicos de la página de registro */
|
||||
.auth-card { max-width: 420px; }
|
||||
.auth-card h2 { margin-bottom: .4rem; }
|
||||
.auth-card p.subtitle { color: var(--text-muted); font-size: .88rem; margin-bottom: 1.5rem; }
|
||||
.auth-msg.info { background: rgba(0,122,204,.08); color: var(--accent); border: 1px solid var(--accent); }
|
||||
.hint { font-size: .78rem; color: var(--text-muted); margin-top: .2rem; }
|
||||
|
|
@ -134,7 +134,7 @@ function renderMarkdown(md, tema, bloque, bloqueId, temaNum) {
|
|||
<i class="fas fa-landmark"></i>
|
||||
<span class="tema-leyes-label">Leyes de este tema</span>
|
||||
${tema.leyes.map(l =>
|
||||
`<a class="tema-ley-btn" href="leyes.html?ley=${encodeURIComponent(l.ley)}" target="_blank" rel="noopener">
|
||||
`<a class="tema-ley-btn" href="/leyes?ley=${encodeURIComponent(l.ley)}" target="_blank" rel="noopener">
|
||||
<i class="fas fa-file-pdf"></i> ${l.label}
|
||||
</a>`
|
||||
).join('')}
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -5,24 +5,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>TAI – AGE | Acceso denegado</title>
|
||||
<link rel="stylesheet" th:href="@{/css/style.css}"/>
|
||||
<style>
|
||||
.denied-wrap {
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
min-height: 100vh; padding: 2rem; text-align: center;
|
||||
}
|
||||
.denied-card {
|
||||
background: var(--bg-alt); border: 1px solid var(--border);
|
||||
border-radius: 12px; padding: 3rem 2rem; max-width: 480px; width: 100%;
|
||||
}
|
||||
.denied-card h2 { color: var(--error, #f44747); font-size: 1.5rem; margin-bottom: 1rem; }
|
||||
.denied-card p { color: var(--text-muted); margin-bottom: 1.5rem; line-height: 1.6; }
|
||||
.denied-card a {
|
||||
display: inline-block; padding: .6rem 1.4rem; border-radius: 8px;
|
||||
background: var(--accent); color: #fff; text-decoration: none;
|
||||
font-weight: 600; transition: opacity .15s;
|
||||
}
|
||||
.denied-card a:hover { opacity: .88; }
|
||||
</style>
|
||||
<link rel="stylesheet" th:href="@{/css/acceso-denegado.css}"/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="denied-wrap">
|
||||
|
|
|
|||
|
|
@ -5,82 +5,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>TAI – AGE | Administración de usuarios</title>
|
||||
<link rel="stylesheet" th:href="@{/css/style.css}"/>
|
||||
<style>
|
||||
body { padding-top: var(--topbar-h); }
|
||||
|
||||
/* ── Topbar admin ── */
|
||||
.topbar { background: #1a1a2e; border-bottom-color: #3c3c6e; }
|
||||
.topbar-brand { color: #c792ea; }
|
||||
.admin-badge {
|
||||
font-size: .72rem; font-weight: 700; padding: .15rem .5rem;
|
||||
background: rgba(199,146,234,.15); color: #c792ea;
|
||||
border: 1px solid #c792ea; border-radius: 4px;
|
||||
}
|
||||
|
||||
/* ── Layout ── */
|
||||
.admin-wrap { max-width: 1100px; margin: 2rem auto; padding: 0 1.5rem; }
|
||||
|
||||
.admin-wrap h1 { font-size: 1.4rem; color: var(--accent-2); margin-bottom: 1.5rem; }
|
||||
|
||||
/* ── Mensajes ── */
|
||||
.msg-error {
|
||||
padding: .6rem .9rem; border-radius: 6px; margin-bottom: 1rem;
|
||||
background: rgba(244,71,71,.12); color: var(--error);
|
||||
border: 1px solid var(--error); font-size: .88rem;
|
||||
}
|
||||
|
||||
/* ── Nuevo usuario ── */
|
||||
.nuevo-form {
|
||||
background: var(--bg-alt); border: 1px solid var(--border);
|
||||
border-radius: 10px; padding: 1.2rem 1.4rem; margin-bottom: 2rem;
|
||||
display: flex; flex-wrap: wrap; gap: .8rem; align-items: flex-end;
|
||||
}
|
||||
.nuevo-form h3 { width: 100%; font-size: 1rem; color: var(--accent-2); margin-bottom: .2rem; }
|
||||
.nuevo-form input[type="email"],
|
||||
.nuevo-form input[type="password"] {
|
||||
background: var(--bg); border: 1px solid var(--border); border-radius: 6px;
|
||||
color: var(--text); padding: .45rem .7rem; font-size: .9rem; min-width: 200px;
|
||||
}
|
||||
.nuevo-form label.check-label { display: flex; align-items: center; gap: .4rem;
|
||||
font-size: .88rem; color: var(--text-muted); cursor: pointer; }
|
||||
.nuevo-btn {
|
||||
padding: .45rem 1.1rem; border-radius: 6px; border: none;
|
||||
background: var(--accent); color: #fff; font-weight: 600;
|
||||
font-size: .9rem; cursor: pointer;
|
||||
}
|
||||
|
||||
/* ── Tabla ── */
|
||||
.usuarios-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
|
||||
.usuarios-table th {
|
||||
background: var(--bg-alt); color: var(--text-muted); font-weight: 700;
|
||||
text-transform: uppercase; font-size: .72rem; letter-spacing: .06em;
|
||||
padding: .6rem .9rem; text-align: left; border-bottom: 1px solid var(--border);
|
||||
}
|
||||
.usuarios-table td {
|
||||
padding: .6rem .9rem; border-bottom: 1px solid var(--border);
|
||||
vertical-align: middle;
|
||||
}
|
||||
.usuarios-table tr:hover td { background: var(--bg-hover); }
|
||||
|
||||
/* Badges de estado */
|
||||
.badge {
|
||||
display: inline-block; font-size: .72rem; font-weight: 700;
|
||||
padding: .15rem .5rem; border-radius: 4px;
|
||||
}
|
||||
.badge-on { background: rgba(106,153,85,.15); color: #6a9955; border: 1px solid #6a9955; }
|
||||
.badge-off { background: rgba(244,71,71,.1); color: var(--error); border: 1px solid var(--error); }
|
||||
.badge-admin { background: rgba(199,146,234,.15); color: #c792ea; border: 1px solid #c792ea; }
|
||||
|
||||
/* Botones de acción */
|
||||
.btn-accion {
|
||||
padding: .3rem .7rem; border-radius: 5px; border: 1px solid var(--border);
|
||||
background: var(--bg); color: var(--text); font-size: .8rem;
|
||||
cursor: pointer; transition: border-color .12s, color .12s;
|
||||
}
|
||||
.btn-accion:hover { border-color: var(--accent); color: var(--accent-2); }
|
||||
.btn-accion.danger:hover { border-color: var(--error); color: var(--error); }
|
||||
.acciones { display: flex; gap: .4rem; flex-wrap: wrap; }
|
||||
</style>
|
||||
<link rel="stylesheet" th:href="@{/css/admin.css}"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,185 +4,10 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>TAI – AGE | Legislación</title>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<link rel="stylesheet" th:href="@{/css/style.css}">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
.leyes-layout {
|
||||
display: flex;
|
||||
height: calc(100vh - var(--topbar-h));
|
||||
margin-top: var(--topbar-h);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* ── Panel izquierdo ─── */
|
||||
.leyes-sidebar {
|
||||
width: 320px;
|
||||
flex-shrink: 0;
|
||||
background: var(--bg-alt);
|
||||
border-right: 1px solid var(--border);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
.leyes-sidebar-header {
|
||||
padding: 1rem 1.1rem .8rem;
|
||||
border-bottom: 1px solid var(--border);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.leyes-sidebar-header h2 {
|
||||
font-size: .9rem;
|
||||
font-weight: 700;
|
||||
color: var(--accent-2);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .06em;
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
.leyes-search {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: var(--bg);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 6px;
|
||||
padding: .35rem .7rem;
|
||||
gap: .5rem;
|
||||
}
|
||||
.leyes-search i { color: var(--text-muted); font-size: .85rem; }
|
||||
.leyes-search input {
|
||||
background: none;
|
||||
border: none;
|
||||
outline: none;
|
||||
color: var(--text);
|
||||
font-size: .85rem;
|
||||
width: 100%;
|
||||
}
|
||||
.leyes-search input::placeholder { color: var(--text-muted); }
|
||||
|
||||
.leyes-list {
|
||||
overflow-y: auto;
|
||||
flex: 1;
|
||||
padding: .5rem 0;
|
||||
}
|
||||
|
||||
.ley-grupo-label {
|
||||
font-size: .7rem;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .07em;
|
||||
color: var(--text-muted);
|
||||
padding: .7rem 1.1rem .3rem;
|
||||
}
|
||||
.ley-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: .2rem;
|
||||
padding: .6rem 1.1rem;
|
||||
cursor: pointer;
|
||||
border-left: 3px solid transparent;
|
||||
transition: background .12s, border-color .12s;
|
||||
}
|
||||
.ley-item:hover { background: var(--bg-hover); }
|
||||
.ley-item.active {
|
||||
background: var(--bg-hover);
|
||||
border-left-color: var(--accent);
|
||||
}
|
||||
.ley-item.hidden { display: none; }
|
||||
.ley-nombre {
|
||||
font-size: .87rem;
|
||||
font-weight: 600;
|
||||
color: var(--text);
|
||||
line-height: 1.3;
|
||||
}
|
||||
.ley-subtitulo {
|
||||
font-size: .75rem;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
.ley-badge {
|
||||
display: inline-block;
|
||||
font-size: .68rem;
|
||||
font-weight: 700;
|
||||
padding: .1rem .4rem;
|
||||
border-radius: 4px;
|
||||
background: rgba(0,122,204,.15);
|
||||
color: var(--accent);
|
||||
margin-top: .1rem;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
/* ── Panel derecho ─── */
|
||||
.leyes-viewer {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
.leyes-viewer-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: .8rem;
|
||||
padding: .75rem 1.2rem;
|
||||
background: var(--bg-alt);
|
||||
border-bottom: 1px solid var(--border);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.leyes-viewer-title {
|
||||
font-size: .9rem;
|
||||
font-weight: 600;
|
||||
color: var(--text);
|
||||
flex: 1;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.leyes-viewer-actions {
|
||||
display: flex;
|
||||
gap: .5rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.leyes-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: .4rem;
|
||||
font-size: .8rem;
|
||||
font-weight: 600;
|
||||
padding: .35rem .8rem;
|
||||
border-radius: 6px;
|
||||
background: var(--bg);
|
||||
border: 1px solid var(--border);
|
||||
color: var(--text);
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
transition: background .12s, border-color .12s;
|
||||
}
|
||||
.leyes-btn:hover { background: var(--bg-hover); border-color: var(--accent); color: var(--accent-2); }
|
||||
.leyes-btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
|
||||
.leyes-btn.primary:hover { background: #0090e8; }
|
||||
|
||||
.leyes-viewer iframe {
|
||||
flex: 1;
|
||||
border: none;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.leyes-placeholder {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
.leyes-placeholder i { font-size: 3rem; opacity: .3; }
|
||||
.leyes-placeholder p { font-size: .95rem; }
|
||||
|
||||
/* ── Responsive ─── */
|
||||
@media (max-width: 700px) {
|
||||
.leyes-layout { flex-direction: column; height: auto; overflow: auto; }
|
||||
.leyes-sidebar { width: 100%; height: 260px; border-right: none; border-bottom: 1px solid var(--border); }
|
||||
.leyes-viewer { height: calc(100vh - var(--topbar-h) - 260px); min-height: 400px; }
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" th:href="@{/css/leyes.css}">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,41 +6,7 @@
|
|||
<title>TAI – AGE | Comprar acceso</title>
|
||||
<link rel="stylesheet" th:href="@{/css/style.css}"/>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"/>
|
||||
<style>
|
||||
.pagar-wrap {
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
min-height: 100vh; padding: 5rem 1.5rem 2rem;
|
||||
}
|
||||
.pagar-card {
|
||||
background: var(--bg-alt); border: 1px solid var(--border);
|
||||
border-radius: 14px; padding: 2.5rem 2rem; width: 100%; max-width: 500px;
|
||||
}
|
||||
.pagar-card h2 { color: var(--accent-2); font-size: 1.4rem; margin-bottom: .4rem; }
|
||||
.pagar-precio {
|
||||
font-size: 2.8rem; font-weight: 700; color: var(--accent);
|
||||
margin: 1.2rem 0 .3rem;
|
||||
}
|
||||
.pagar-precio small { font-size: 1rem; color: var(--text-muted); font-weight: 400; }
|
||||
.pagar-features { list-style: none; padding: 0; margin: 1.2rem 0 1.8rem; }
|
||||
.pagar-features li { padding: .4rem 0; color: var(--text-muted); font-size: .9rem; }
|
||||
.pagar-features li i { color: var(--accent); margin-right: .5rem; width: 1rem; }
|
||||
.pagar-badge {
|
||||
display: inline-block; font-size: .75rem; padding: .25rem .7rem;
|
||||
border-radius: 20px; background: rgba(106,153,85,.15);
|
||||
color: var(--success, #6a9955); border: 1px solid var(--success, #6a9955);
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.btn-stripe {
|
||||
display: flex; align-items: center; justify-content: center; gap: .6rem;
|
||||
width: 100%; padding: .8rem; border-radius: 10px; border: none;
|
||||
background: #635BFF; color: #fff; font-size: 1rem;
|
||||
font-weight: 700; cursor: pointer; font-family: inherit;
|
||||
transition: opacity .15s;
|
||||
}
|
||||
.btn-stripe:hover { opacity: .88; }
|
||||
.pagar-footer { margin-top: 1rem; font-size: .78rem; color: var(--text-muted); text-align: center; }
|
||||
.pagar-footer a { color: var(--accent); }
|
||||
</style>
|
||||
<link rel="stylesheet" th:href="@{/css/pagar.css}"/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="pagar-wrap">
|
||||
|
|
|
|||
|
|
@ -6,18 +6,7 @@
|
|||
<title>TAI – AGE | Pago cancelado</title>
|
||||
<link rel="stylesheet" th:href="@{/css/style.css}"/>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"/>
|
||||
<style>
|
||||
.result-wrap { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:2rem; text-align:center; }
|
||||
.result-card { background:var(--bg-alt); border:1px solid var(--border); border-radius:14px; padding:3rem 2rem; max-width:460px; width:100%; }
|
||||
.result-icon { font-size:3rem; color:var(--text-muted); margin-bottom:1rem; }
|
||||
.result-card h2 { color:var(--accent-2); font-size:1.4rem; margin-bottom:.8rem; }
|
||||
.result-card p { color:var(--text-muted); line-height:1.6; margin-bottom:1.5rem; }
|
||||
.btn-row { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
|
||||
.btn-row a { display:inline-block; padding:.6rem 1.4rem; border-radius:8px; text-decoration:none; font-weight:700; transition:opacity .15s; }
|
||||
.btn-primary { background:var(--accent); color:#fff; }
|
||||
.btn-secondary { background:var(--bg-hover); color:var(--text); }
|
||||
.btn-row a:hover { opacity:.85; }
|
||||
</style>
|
||||
<link rel="stylesheet" th:href="@{/css/pago-cancelado.css}"/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="result-wrap">
|
||||
|
|
|
|||
|
|
@ -6,16 +6,7 @@
|
|||
<title>TAI – AGE | Pago completado</title>
|
||||
<link rel="stylesheet" th:href="@{/css/style.css}"/>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"/>
|
||||
<style>
|
||||
.result-wrap { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:2rem; text-align:center; }
|
||||
.result-card { background:var(--bg-alt); border:1px solid var(--border); border-radius:14px; padding:3rem 2rem; max-width:460px; width:100%; }
|
||||
.result-icon { font-size:3rem; color:var(--success,#6a9955); margin-bottom:1rem; }
|
||||
.result-card h2 { color:var(--accent-2); font-size:1.4rem; margin-bottom:.8rem; }
|
||||
.result-card p { color:var(--text-muted); line-height:1.6; margin-bottom:1.5rem; }
|
||||
.result-card a { display:inline-block; padding:.65rem 1.6rem; border-radius:8px; background:var(--accent); color:#fff; text-decoration:none; font-weight:700; transition:opacity .15s; }
|
||||
.result-card a:hover { opacity:.85; }
|
||||
.result-note { margin-top:1rem; font-size:.8rem; color:var(--text-muted); }
|
||||
</style>
|
||||
<link rel="stylesheet" th:href="@{/css/pago-exito.css}"/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="result-wrap">
|
||||
|
|
|
|||
|
|
@ -5,39 +5,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>TAI – AGE | Registro</title>
|
||||
<link rel="stylesheet" th:href="@{/css/style.css}"/>
|
||||
<style>
|
||||
.auth-wrap {
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
min-height: 100vh; padding: 2rem;
|
||||
}
|
||||
.auth-card {
|
||||
background: var(--bg-alt); border: 1px solid var(--border);
|
||||
border-radius: 12px; padding: 2.5rem 2rem; width: 100%; max-width: 420px;
|
||||
}
|
||||
.auth-card h2 { color: var(--accent-2); margin-bottom: .4rem; font-size: 1.4rem; }
|
||||
.auth-card p.subtitle { color: var(--text-muted); font-size: .88rem; margin-bottom: 1.5rem; }
|
||||
.auth-field { display: flex; flex-direction: column; gap: .4rem; margin-bottom: 1rem; }
|
||||
.auth-field label { font-size: .85rem; color: var(--text-muted); }
|
||||
.auth-field input {
|
||||
background: var(--bg); border: 1px solid var(--border); border-radius: 6px;
|
||||
color: var(--text); padding: .55rem .8rem; font-size: .95rem; outline: none;
|
||||
transition: border-color .15s;
|
||||
}
|
||||
.auth-field input:focus { border-color: var(--accent); }
|
||||
.auth-btn {
|
||||
width: 100%; padding: .65rem; border-radius: 8px; border: none;
|
||||
background: var(--accent); color: #fff; font-size: 1rem;
|
||||
font-weight: 600; cursor: pointer; margin-top: .5rem;
|
||||
transition: opacity .15s;
|
||||
}
|
||||
.auth-btn:hover { opacity: .88; }
|
||||
.auth-msg { font-size: .85rem; padding: .6rem .9rem; border-radius: 6px; margin-bottom: 1rem; }
|
||||
.auth-msg.error { background: rgba(244,71,71,.12); color: var(--error); border: 1px solid var(--error); }
|
||||
.auth-msg.info { background: rgba(0,122,204,.08); color: var(--accent); border: 1px solid var(--accent); }
|
||||
.auth-footer { margin-top: 1.2rem; text-align: center; font-size: .85rem; color: var(--text-muted); }
|
||||
.auth-footer a { color: var(--accent); }
|
||||
.hint { font-size: .78rem; color: var(--text-muted); margin-top: .2rem; }
|
||||
</style>
|
||||
<link rel="stylesheet" th:href="@{/css/registro.css}"/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="auth-wrap">
|
||||
|
|
|
|||
Loading…
Reference in New Issue