:root{--ink: #14232e;--ink-soft: #47606f;--sea: #0e7490;--sea-deep: #155e75;--paper: #ffffff;--sand: #f7f5f0;--line: #e3ded4;--danger: #b4232a;--ok: #1a7f4b;--radius: 8px}*{box-sizing:border-box;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--sand);color:var(--ink);line-height:1.5;font-size:15px}#root{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--paper);border-bottom:1px solid var(--line);padding:0 0 0 1.25rem;display:flex;align-items:stretch;justify-content:space-between;min-height:3.1rem;position:relative;z-index:40}.topbar .brand{font-weight:700;color:var(--ink);text-decoration:none;display:flex;align-items:center}.topbar .brand span{color:var(--sea)}.tb-items{display:flex;align-items:stretch}.tb-wrap{position:relative;display:flex;align-items:stretch}.tb-item{display:flex;align-items:center;gap:.5rem;padding:0 1.1rem;border:0;border-left:1px solid var(--line);border-radius:0;background:none;color:var(--ink);font-size:.9rem;text-decoration:none;cursor:pointer}.tb-item:hover{background:var(--sand);border-left-color:var(--line)}.tb-bell{position:relative;display:inline-flex}.tb-badge{position:absolute;top:-.55rem;right:-.65rem;background:var(--danger);color:#fff;border-radius:999px;font-size:.65rem;font-weight:700;min-width:1.05rem;height:1.05rem;display:flex;align-items:center;justify-content:center;padding:0 .25rem}.dropdown{position:absolute;top:100%;right:0;min-width:20rem;max-width:90vw;max-height:24rem;overflow-y:auto;background:var(--paper);border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);box-shadow:0 8px 24px #14232e26;z-index:50}.dropdown-menu{min-width:13rem}.dropdown-menu button{display:flex;align-items:center;gap:.5rem;width:100%;border:0;border-radius:0;background:none;padding:.65rem 1rem;text-align:left}.dropdown-menu button:hover{background:var(--sand)}.dropdown-empty{padding:.75rem 1rem;color:var(--ink-soft);font-size:.9rem}.notif{display:flex;gap:.6rem;padding:.65rem 1rem;border-top:1px solid var(--line);align-items:flex-start}.notif:first-child{border-top:0}.notif-dot{width:.55rem;height:.55rem;border-radius:999px;margin-top:.4rem;flex-shrink:0}.notif-dot.warn{background:#b07d1a}.notif-dot.error{background:var(--danger)}.notif-msg{font-size:.9rem;line-height:1.4}.tb-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35}main.panel{max-width:60rem;width:100%;margin:0 auto;padding:1.5rem 1.25rem 4rem}h1{font-size:1.35rem;margin-bottom:1rem}h2{font-size:1.05rem}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:.75rem}.card.link{display:block;text-decoration:none;color:inherit}.card.link:hover{border-color:var(--sea)}.card .meta{color:var(--ink-soft);font-size:.85rem}.row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.stack{display:flex;flex-direction:column;gap:.5rem}button,.btn{font:inherit;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:var(--radius);padding:.45rem .9rem;cursor:pointer}button:hover{border-color:var(--sea)}button.primary{background:var(--sea);border-color:var(--sea);color:#fff}button.primary:hover{background:var(--sea-deep)}button.subtle{border-color:transparent;color:var(--ink-soft)}button.danger{color:var(--danger)}button:disabled{opacity:.5;cursor:default}label.field{display:block;margin-bottom:.75rem}label.field .name{display:block;font-size:.8rem;color:var(--ink-soft);margin-bottom:.2rem}input,textarea,select{font:inherit;width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:.45rem .6rem;background:var(--paper);color:var(--ink)}textarea{min-height:5.5rem;resize:vertical}input:focus,textarea:focus{outline:2px solid var(--sea);outline-offset:0;border-color:var(--sea)}.block-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);margin-bottom:.75rem}.block-card.flash{outline:2px solid var(--sea);outline-offset:1px;transition:outline-color .2s}.block-card header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .9rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--sand) 55%,var(--paper));border-radius:var(--radius) var(--radius) 0 0}.block-card header .type{font-size:.8rem;font-weight:600;color:var(--sea-deep);text-transform:uppercase;letter-spacing:.04em}.block-card header .tools{display:flex;gap:.25rem}.block-card header .tools button{padding:.15rem .5rem;font-size:.85rem}.block-card .body{padding:.9rem}.status{font-size:.85rem}.status.dirty{color:var(--danger)}.status.clean{color:var(--ok)}.toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:.55rem 1.1rem;border-radius:999px;font-size:.9rem}.center{text-align:center;padding:4rem 1rem;color:var(--ink-soft)}.shell{display:flex;flex:1;min-height:0}.sidebar{width:14rem;flex-shrink:0;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:.75rem .6rem}.switcher{position:relative;margin-bottom:.6rem}.switcher-btn{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.6rem .75rem;font-weight:700;border:1px solid var(--line);background:var(--sand)}.switcher-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switcher-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #14232e26;max-height:20rem;overflow-y:auto}.switcher-menu button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;border:0;border-radius:0;background:none;padding:.55rem .75rem;text-align:left}.switcher-menu button:hover{background:var(--sand)}.switcher-menu button.active{background:color-mix(in srgb,var(--sea) 12%,var(--paper))}.switcher-menu .switcher-all{flex-direction:row;align-items:center;gap:.5rem;border-top:1px solid var(--line);color:var(--sea-deep);font-weight:600}.switcher-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55}.sidebar nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);padding:.9rem .75rem .25rem}.sidebar nav a,.sidebar .back-link{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;min-height:40px;border-radius:var(--radius);color:var(--ink);text-decoration:none;font-size:.95rem}.sidebar nav a:hover,.sidebar .back-link:hover{background:var(--sand)}.sidebar nav a.active{background:var(--sea);color:#fff}.sidebar .back-link{color:var(--ink-soft);margin-top:.5rem;border-top:1px solid var(--line);border-radius:0;padding-top:.85rem}.content{flex:1;min-width:0;padding:1rem;max-width:96rem;display:flex;flex-direction:column}.content>*{flex-shrink:0}.app-footer{margin-top:auto;padding-top:3rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;color:var(--ink-soft);font-size:.8rem}.footer-heart{color:#d6455f}.footer-flag{--fa-primary-color: #3c3b6e;--fa-secondary-color: #b22234;--fa-secondary-opacity: 1}.footer-link{color:inherit;text-decoration:none}.footer-link:hover{text-decoration:underline}.menu-btn,.backdrop{display:none}.widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.widget{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.widget-head{display:flex;align-items:center;gap:.6rem;color:var(--sea-deep)}.widget-head h2{font-size:1rem;color:var(--ink)}.widget>a{margin-top:auto;font-size:.9rem;text-decoration:none;font-weight:600}.widget>a:hover{text-decoration:underline}.page-head{margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:1rem}.media-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.media-card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block}.media-placeholder{aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);background:var(--sand);font-size:.85rem}.media-meta{padding:.5rem .65rem;display:flex;align-items:center;justify-content:space-between;gap:.4rem}.media-meta .meta{font-size:.75rem}.media-actions{display:flex;gap:.25rem}.media-actions button{padding:.25rem .5rem;font-size:.85rem}.media-doc{aspect-ratio:4 / 3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:var(--sand);color:var(--sea-deep);text-decoration:none;padding:.75rem;text-align:center;font-size:.8rem;word-break:break-all}.invite-form{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}.invite-form input{flex:1;min-width:14rem;max-width:22rem}.invite-form select{width:auto}.grant-chips{display:flex;gap:.4rem;flex-wrap:wrap}.grant-chip{display:inline-flex;align-items:center;gap:.4rem;background:var(--sand);border:1px solid var(--line);border-radius:999px;padding:.2rem .35rem .2rem .75rem;font-size:.85rem}.grant-chip button{border:0;background:none;padding:.1rem .35rem;color:var(--ink-soft);min-height:0}.grant-chip button:hover{color:var(--danger)}.chips{display:flex;gap:.4rem;margin-bottom:1rem}.chip{border-radius:999px;padding:.3rem .9rem;font-size:.85rem}.chip.active{background:var(--sea);border-color:var(--sea);color:#fff}.page-head h1{margin:0}.actions{display:flex;gap:.5rem;flex-wrap:wrap}@media(max-width:64rem){.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:30;transform:translate(-100%);transition:transform .2s ease;box-shadow:2px 0 12px #00000026}.sidebar.open{transform:translate(0)}.backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#14232e59}.content{padding:1rem 1rem 4rem}.menu-btn{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1rem;font-weight:600}.tb-label{display:none}}@media(max-width:48rem){input,textarea,select{font-size:16px}}@media(pointer:coarse){button,.btn,.sidebar nav a,.sidebar .back-link{min-height:44px}.block-card header .tools button{min-width:44px}}.editor-grid{display:grid;grid-template-columns:minmax(24rem,1fr) minmax(0,1fr);gap:1.5rem;align-items:start}.preview-pane{width:100%;height:calc(100vh - 7.5rem);border:1px solid var(--line);border-radius:var(--radius);background:#fff;position:sticky;top:1rem}@media(max-width:64rem){.editor-grid{grid-template-columns:1fr}.preview-pane{height:60vh;position:static}}
