:root{color-scheme:light;--bg: #f6faf8;--panel: #ffffff;--surface: #fcfdfd;--ink: #1b211e;--muted: #717a75;--line: #eaeceb;--accent: #00bf63;--accent-deep: #009e52;--accent-soft: #eaf8f0;--success: #009e52;--danger: #9b3d3d;--shadow: 0 1px 2px rgba(20, 30, 25, .04), 0 10px 30px rgba(20, 30, 25, .05);font-family:Hanken Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:linear-gradient(180deg,#fbfdfc,#f2f8f5);color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,textarea{font:inherit}h1,h2,h3{font-family:inherit;font-weight:500;margin:0}.app-shell{min-height:100vh;padding:2rem 2rem .5rem}@media(min-width:901px){.app-shell{height:100vh;display:flex;flex-direction:column}.layout>.section{min-height:0}.resource-panel{display:flex;flex-direction:column;overflow:hidden}.resource-panel .resource-list{flex:1;overflow-y:auto;min-height:0;align-content:start;grid-auto-rows:max-content}.resource-panel .loading,.resource-panel .empty,.resource-panel .error{flex:1}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.topbar-brand{display:flex;align-items:center}.topbar p{margin:.35rem 0 0;color:var(--muted)}.topbar-actions{display:flex;align-items:right;flex-direction:column}.powered-by{display:inline-flex;justify-content:right;margin-top:.5rem;gap:.5rem;font-size:.78rem;color:var(--muted)}.brand-logo{display:block;height:24px;width:auto}.brand-logo--login{height:40px;margin-bottom:1rem}.session-pill{display:inline-flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:999px;background:#fff;overflow:hidden}.session-email{padding:.45rem .9rem;font-size:.78rem;color:var(--muted);letter-spacing:.01em;white-space:nowrap;opacity:.75}.session-divider{display:block;width:1px;align-self:stretch;background:var(--line);flex-shrink:0}.session-signout{padding:.45rem .9rem;border:none;background:transparent;font:inherit;font-size:.82rem;color:var(--muted);cursor:pointer;transition:color .15s ease,background .15s ease;white-space:nowrap}.session-signout:hover{color:var(--accent-deep);background:var(--accent-soft)}.layout{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:1.5rem}@media(max-width:900px){.layout{grid-template-columns:1fr}}.section{padding:1.5rem}@media(max-width:900px){.section+.section{margin-top:1.5rem}}.field{display:grid;gap:.45rem;margin-bottom:1rem}.field label{font-size:.92rem;color:var(--muted)}.field input,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.85rem 1rem;background:#fff}.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field textarea{min-height:140px;resize:vertical}.button{border:none;border-radius:10px;padding:.85rem 1.2rem;font-weight:500;cursor:pointer;transition:transform .12s ease,background .12s ease}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-deep)}.button-secondary{background:transparent;border:1px solid var(--line);color:var(--ink)}.status{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.85rem;text-transform:capitalize}.resource-list{display:grid;gap:.85rem;margin-top:1rem}.resource-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.resource-card-header{display:flex;align-items:stretch;gap:.5rem}.resource-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:.25rem;padding:.75rem .75rem .75rem 0;flex-shrink:0;width:calc(60px + 1rem)}.resource-action-icon{width:30px;height:30px;border:none;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:color .15s ease,background .15s ease,transform .12s ease}.resource-action-icon svg{width:14px;height:14px;pointer-events:none}.resource-action-icon:hover:not(:disabled){color:var(--accent-deep);background:var(--accent-soft);transform:scale(1.05)}.resource-action-icon--active{color:var(--accent);background:var(--accent-soft)}.resource-action-icon--danger:hover:not(:disabled){color:var(--danger);background:#9b3d3d1a;transform:scale(1.05)}.resource-action-icon--confirming{color:var(--danger);background:#9b3d3d1a}.resource-action-icon:disabled{opacity:.35;cursor:not-allowed;transform:none}.resource-delete-confirm{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid rgba(155,61,61,.18);padding:.65rem 1.1rem;background:#9b3d3d0a;animation:confirm-slide-in .16s ease forwards}.resource-delete-confirm-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}@keyframes confirm-slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.resource-delete-prompt{font-size:.82rem;color:var(--danger);min-width:0}.resource-confirm-btn{padding:.28rem .7rem;border-radius:999px;border:none;cursor:pointer;font:inherit;font-size:.76rem;font-weight:500;transition:transform .1s ease,background .12s ease,box-shadow .12s ease;white-space:nowrap}.resource-confirm-btn:hover{transform:translateY(-1px)}.resource-confirm-btn--danger{background:var(--danger);color:#fff8f8;box-shadow:0 2px 8px #9b3d3d4d}.resource-confirm-btn--danger:hover{background:#7d2c2c;box-shadow:0 4px 12px #9b3d3d66}.resource-confirm-btn--cancel{background:transparent;color:var(--muted)}.resource-confirm-btn--cancel:hover{color:var(--ink);background:#1c18100f}.resource-deleting-label{font-size:.78rem;color:var(--muted);padding-right:.25rem;animation:deleting-pulse 1.2s ease infinite}@keyframes deleting-pulse{0%,to{opacity:1}50%{opacity:.45}}.resource-card--deleting{opacity:.6;pointer-events:none;transition:opacity .25s ease}.resource-action-error{margin-bottom:.25rem}.resource-edit{border-top:1px solid var(--line);padding:1rem 1.1rem 0;max-height:min(55vh,10000px);overflow-y:auto}.resource-edit-actions{position:sticky;bottom:0;display:flex;align-items:center;gap:.75rem;padding:.85rem 0 1.1rem;background:linear-gradient(180deg,#fff0,#ffffffeb 28%,#fffffffa)}.resource-card--clickable{cursor:pointer}.resource-card--clickable:hover{border-color:#00bf6359;background:#fff}.resource-card--expanded{border-color:#00bf6373;background:#fff}.resource-card-button{display:flex;justify-content:space-between;gap:1rem;flex:1;min-width:0;padding:1rem 1.1rem;border:none;background:transparent;color:inherit;text-align:left;cursor:inherit}.resource-card-button:disabled{cursor:default}.resource-card-button h3,.resource-card-button small{pointer-events:none}.resource-preview{border-top:1px solid var(--line);padding:1rem 1.1rem 1.1rem}.resource-preview-loading,.resource-preview-error{padding:.85rem 1rem;border-radius:14px}.resource-preview-loading{background:var(--surface);color:var(--muted)}.resource-preview-error{background:#9b3d3d14;color:var(--danger)}.upload-hint{margin:0;color:var(--muted);font-size:.92rem;line-height:1.45}.resource-source-url,.resource-refresh-error{display:inline;margin-top:0}.resource-website-meta{display:grid;gap:.45rem;margin-bottom:.85rem;padding-bottom:.85rem;border-bottom:1px solid var(--line);font-size:.92rem}.resource-website-meta-line{margin:0;color:var(--muted);line-height:1.45}.resource-website-meta-label{color:var(--ink);font-weight:500;margin-right:.45rem}.resource-source-url{color:var(--accent-deep);word-break:break-all}.resource-refresh-error{color:var(--danger)}.resource-preview-text{margin:0;max-height:320px;overflow:auto;padding:1rem;border-radius:14px;background:var(--surface);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:.95rem;line-height:1.55}.resource-preview-pdf{width:100%;min-height:480px;border:1px solid var(--line);border-radius:14px;background:#fff}.resource-card small{color:var(--muted)}.empty,.error,.loading{padding:1rem;border-radius:16px}.empty{background:var(--surface);color:var(--muted)}.error{background:#9b3d3d14;color:var(--danger)}.login-page{display:grid;place-items:center;min-height:calc(100vh - 4rem)}.login-card{width:min(100%,420px);padding:2rem}.eyebrow{margin:0 0 .45rem;color:var(--accent);font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.login-card p{color:var(--muted)}.login-card form{margin-top:1.5rem}.panel-header{display:flex;align-items:center;justify-content:space-between}.button-ghost.panel-back{padding:0;font-size:.88rem;color:var(--muted);line-height:1}.button-ghost.panel-back:hover{color:var(--accent)}.upload-slot{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}.upload-slot--open{grid-template-rows:1fr}.upload-slot>div{overflow:hidden}.upload-form{padding-top:1rem}.upload-choice{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding-top:1rem}.upload-choice-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.2rem 1rem;border:1.5px dashed var(--line);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .12s ease;font:inherit;color:var(--ink)}.upload-choice-btn:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.upload-choice-icon{font-size:1.6rem;line-height:1}.upload-choice-label{font-size:.92rem}.upload-actions{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.button-ghost{background:transparent;border:none;color:var(--muted);padding:.85rem .5rem;font-size:.92rem;cursor:pointer;transition:color .12s ease}.button-ghost:hover{color:var(--ink)}.file-drop{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.4rem 1rem;border:1.5px dashed var(--line);border-radius:10px;background:var(--surface);cursor:pointer;transition:border-color .12s ease,background .12s ease;text-align:center}.file-drop:hover{border-color:var(--accent);background:var(--accent-soft)}.file-drop--selected{border-color:var(--accent);border-style:solid;background:var(--accent-soft)}.file-drop-icon{font-size:1.6rem;line-height:1}.file-drop-text{font-size:.92rem;color:var(--ink);word-break:break-all}.file-drop-size{font-size:.8rem;color:var(--muted)}
