:root{--ivory:#F6F1E7;--card:#FFFDF9;--ink:#2A2330;--ink-soft:#6B6270;--sage:#4F7A63;--sage-soft:#DCE8DF;--bronze:#A87C3F;--bronze-soft:#F0E3CB;--mauve:#C79E96;--line:#E6DFD0;--danger:#B5563F;--good:#3F7A52}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#ebe4d3;font-family:Manrope,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}.app-shell{max-width:460px;margin:0 auto;min-height:100vh;background:var(--ivory);display:flex;flex-direction:column;position:relative}.contenido{flex:1;padding-bottom:90px}.topbar{padding:26px 22px 14px}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.08em;color:var(--sage);text-transform:uppercase;margin:0 0 4px}h1.greeting{font-family:Fraunces,serif;font-size:26px;font-weight:500;margin:0;line-height:1.15}h1.greeting .name{color:var(--sage);font-style:italic}.sub{color:var(--ink-soft);font-size:13.5px;margin:6px 0 0;line-height:1.4}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;margin:14px 22px}.card h3{font-family:Fraunces,serif;font-weight:500;font-size:16.5px;margin:0 0 4px}.card p{font-size:13px;color:var(--ink-soft);line-height:1.5;margin:0}.dial-card{background:linear-gradient(160deg,#33453b,#2a3830);border-radius:24px;margin:6px 22px 18px;padding:26px 22px 22px;color:#f6f1e7;position:relative;overflow:hidden}.dial-card:after{content:"";position:absolute;right:-40px;bottom:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(168,124,63,.35),transparent 70%)}.dial-row{display:flex;align-items:center;gap:18px;position:relative;z-index:2}.dial-label{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;opacity:.75;margin:0 0 6px}.dial-value{font-family:Fraunces,serif;font-size:34px;font-weight:500;margin:0}.dial-value span{font-size:15px;font-weight:400;opacity:.7}.dial-foot{font-size:12px;opacity:.8;margin-top:14px;line-height:1.5;position:relative;z-index:2}.row{display:flex;justify-content:space-between;align-items:center;margin:22px 22px 10px}.row h4{font-family:Fraunces,serif;font-size:15px;font-weight:500;margin:0}.link{font-size:12px;color:var(--sage);font-weight:600;text-decoration:none;background:none;border:none;cursor:pointer}.turno-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin:0 22px 12px}.turno-top{display:flex;justify-content:space-between;align-items:center}.turno-fecha{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--bronze);font-weight:500;margin:0 0 3px}.turno-titulo{font-size:14px;font-weight:700;margin:0 0 2px}.turno-meta{font-size:12px;color:var(--ink-soft);margin:0}.badge{font-size:10.5px;font-weight:700;padding:4px 10px;border-radius:20px;background:var(--sage-soft);color:var(--sage);white-space:nowrap}.badge.virtual{background:var(--bronze-soft);color:var(--bronze)}.msg{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 16px;margin:0 22px 10px}.msg.propio{border-color:var(--sage);background:var(--sage-soft)}.msg .who{font-size:11.5px;font-weight:700;color:var(--sage);margin:0 0 4px}.msg p{font-size:13px;color:var(--ink);line-height:1.45;margin:0}.msg .when{font-size:10.5px;color:var(--ink-soft);margin-top:6px;display:block}.obj{margin:0 22px 12px}.obj-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.obj-name{font-weight:700}.obj-val{font-family:IBM Plex Mono,monospace;color:var(--sage);font-size:12px}.bar{height:8px;background:var(--sage-soft);border-radius:6px;overflow:hidden}.bar-fill{height:100%;background:var(--sage);border-radius:6px}.doc{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 16px;margin:0 22px 10px}.doc-icon{width:38px;height:38px;border-radius:10px;background:var(--bronze-soft);display:flex;align-items:center;justify-content:center;color:var(--bronze);font-size:16px;flex-shrink:0}.doc-name{font-size:13px;font-weight:700;margin:0 0 2px}.doc-meta{font-size:11.5px;color:var(--ink-soft);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;background:var(--ink);color:var(--ivory);font-weight:700;font-size:13px;padding:12px 18px;border-radius:14px;border:none;text-decoration:none;cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.btn.block{display:block;width:calc(100% - 44px);margin:16px 22px 4px}.btn.ghost{background:transparent;border:1.5px solid var(--ink);color:var(--ink)}.btn.sm{padding:8px 13px;font-size:12px;border-radius:10px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12px;font-weight:700;color:var(--ink-soft)}.field input,.field textarea{font-family:Manrope,sans-serif;font-size:14px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.error-text{color:var(--danger);font-size:12.5px;margin:0 22px 10px}.banner{margin:0 22px 14px;padding:11px 14px;border-radius:12px;font-size:12.5px}.banner.good{background:#e4efe6;color:var(--good)}.banner.info{background:#f3efe3;color:var(--ink-soft)}.lock-note{margin:18px 22px 0;padding:12px 14px;border-radius:14px;background:#f3efe3;border:1px dashed var(--line);font-size:11px;color:var(--ink-soft);line-height:1.5;display:flex;gap:8px;align-items:flex-start}.navbar{position:sticky;bottom:0;left:0;right:0;height:78px;background:var(--card);border-top:1px solid var(--line);display:flex;align-items:flex-start;padding-top:12px}.navitem{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;background:none;border:none;font-family:inherit}.navitem.active{color:var(--sage)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:32px 28px;width:100%;max-width:380px}.video-wrap{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#111}
