:root{--brand:#080738;--glass-bg:rgba(255,255,255,.60);--glass-border:rgba(255,255,255,.72);--text:#1f2030;--muted:#747687;--radius:28px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:'Kanit',sans-serif;color:var(--text);background:#f4f5f8;overflow-x:hidden;font-size:17px}.page-backdrop{position:fixed;inset:0;z-index:-2;background-image:linear-gradient(145deg,rgba(250,251,253,.93),rgba(242,244,248,.86)),radial-gradient(circle at 15% 8%,color-mix(in srgb,var(--brand) 9%,transparent),transparent 34%),radial-gradient(circle at 90% 15%,rgba(255,255,255,.82),transparent 28%);background-size:cover;background-position:center;background-attachment:fixed}.page-backdrop.has-image:after{content:"";position:absolute;inset:0;background:rgba(246,247,250,.54);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.liquid-glass{background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(255,255,255,.47));border:1px solid var(--glass-border);box-shadow:0 14px 40px rgba(35,38,55,.08),inset 0 1px 0 rgba(255,255,255,.74);backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%)}.directory-shell{width:min(840px,calc(100% - 30px));margin:0 auto;padding:12px 0 30px;position:relative}.profile-card{border-radius:var(--radius);padding:25px 27px;display:flex;align-items:center;gap:22px;overflow:hidden}.logo-wrap{width:92px;height:92px;flex:0 0 92px;border-radius:24px;background:rgba(255,255,255,.66);border:1px solid rgba(255,255,255,.8);display:grid;place-items:center;padding:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 10px 30px rgba(31,32,48,.06)}.logo-wrap img{max-width:100%;max-height:100%;object-fit:contain}.profile-copy{min-width:0}.system-name{display:inline-flex;align-items:center;min-height:30px;padding:5px 12px;border-radius:999px;background:color-mix(in srgb,var(--brand) 8%,rgba(255,255,255,.82));color:var(--brand);font-size:13px;font-weight:500;letter-spacing:.02em}.profile-copy h1{font-size:clamp(30px,4vw,42px);line-height:1.15;margin:9px 0 6px;color:#202130;font-weight:600}.profile-copy p{margin:0;color:var(--muted);font-size:17px;line-height:1.65}.search-wrap{margin-top:12px;border-radius:999px;min-height:62px;display:flex;align-items:center;padding:0 8px;overflow:hidden}.search-wrap .input-group-text{font-size:20px;color:var(--brand);padding-left:15px}.search-wrap input{font:400 17px 'Kanit',sans-serif!important;color:#242535!important;min-width:0}.search-wrap input::placeholder{color:#9698a5}.btn-glass-icon{width:44px;height:44px;border-radius:999px!important;border:1px solid transparent!important;color:#858794;display:grid;place-items:center}.btn-glass-icon:hover{background:rgba(255,255,255,.7);border-color:rgba(255,255,255,.8)!important;color:var(--brand)}.category-tabs{display:flex;gap:9px;overflow:auto;padding:15px 2px 8px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.chip{white-space:nowrap;border:1px solid rgba(255,255,255,.74)!important;background:rgba(255,255,255,.58)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:999px!important;padding:9px 16px!important;font:400 15px 'Kanit',sans-serif!important;color:#686a7a!important;cursor:pointer;transition:.2s ease;box-shadow:0 6px 18px rgba(35,38,55,.035)}.chip i{margin-right:5px}.chip:hover,.chip.active{background:var(--brand)!important;color:#fff!important;border-color:var(--brand)!important;box-shadow:0 9px 22px color-mix(in srgb,var(--brand) 18%,transparent)}.link-grid{display:grid;gap:11px;padding-top:8px}.link-card{position:relative;border-radius:24px;min-height:90px;padding:15px 16px;display:flex;align-items:center;gap:15px;text-decoration:none;color:inherit;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,255,255,.46));overflow:hidden;font-family:'Kanit',sans-serif;cursor:pointer}.link-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(32,35,52,.10),inset 0 1px 0 rgba(255,255,255,.9);border-color:rgba(255,255,255,.95)}.link-icon{width:56px;height:56px;flex:0 0 56px;border-radius:18px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 9%,rgba(255,255,255,.86));border:1px solid color-mix(in srgb,var(--accent) 7%,rgba(255,255,255,.95));color:var(--accent);font-size:24px}.link-copy{display:flex;flex-direction:column;min-width:0;flex:1}.link-copy strong{font-size:18px;color:#242535;font-weight:500;overflow-wrap:anywhere}.link-copy small{margin-top:4px;color:#7b7d8b;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-meta{display:flex;align-items:center;gap:9px;color:#888a97;font-size:18px}.type-badge{font-size:12px;font-weight:500;color:var(--brand);background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.78);border-radius:999px;padding:6px 10px}.action-orb{width:40px;height:40px;border-radius:999px;background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.78);display:grid;place-items:center;transition:.2s}.link-card:hover .action-orb{background:var(--brand);border-color:var(--brand);color:#fff}.empty-state{padding:50px 20px;text-align:center;color:#8c8e9b;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:15px}.empty-state i{font-size:40px;color:var(--brand);opacity:.42}.empty-state strong{color:#575968;margin-top:7px;font-size:18px}.is-hidden,.link-card.filtered-out{display:none!important}footer{text-align:center;color:#898b99;font-size:13px;padding:27px 10px 4px}footer span{margin:0 6px}.preview-modal-content{border-radius:28px;overflow:hidden;box-shadow:0 28px 90px rgba(25,28,45,.22)}.modal-header,.modal-footer{border-color:rgba(255,255,255,.65);padding:17px 20px}.preview-label{font-size:11px;letter-spacing:.1em;color:var(--brand);font-weight:600}.modal-title{font-family:'Kanit',sans-serif;color:#242535;font-weight:500}.modal-body{background:rgba(240,242,246,.84);min-height:62vh;display:grid;place-items:center}.preview-loading{min-height:62vh;display:grid;place-items:center;color:var(--brand)}.preview-image{display:block;max-width:100%;max-height:72vh;object-fit:contain;margin:auto}.preview-pdf{width:100%;height:72vh;border:0;background:#fff}.preview-file-name{font-size:13px;color:#7c7e8c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65%}.btn{font-family:'Kanit',sans-serif;border-radius:999px!important;min-height:44px;padding:.58rem 1.15rem}.btn-brand{background:var(--brand);color:#fff;border-color:var(--brand)}.btn-brand:hover,.btn-brand:focus{background:color-mix(in srgb,var(--brand) 88%,#fff);color:#fff;border-color:color-mix(in srgb,var(--brand) 88%,#fff)}button.link-card{appearance:none;-webkit-appearance:none}@media(max-width:600px){body{font-size:16px}.directory-shell{padding-top:7px}.profile-card{padding:20px 18px;border-radius:24px;align-items:flex-start;gap:15px}.logo-wrap{width:74px;height:74px;flex-basis:74px;border-radius:20px}.system-name{font-size:11.5px;min-height:27px;padding:4px 10px}.profile-copy h1{font-size:26px;margin-top:7px}.profile-copy p{font-size:15px}.search-wrap{min-height:58px}.link-card{min-height:84px;border-radius:22px;padding:13px 14px}.link-icon{width:50px;height:50px;flex-basis:50px;font-size:21px}.link-copy strong{font-size:16.5px}.link-copy small{font-size:13px}.type-badge{display:none}.action-orb{width:38px;height:38px}.preview-file-name{max-width:48%}.modal-body,.preview-loading{min-height:55vh}.preview-pdf{height:64vh}}

/* v1.3 - cleaner button shadows */
.category-tabs{padding-top:15px;padding-bottom:14px}
.chip{box-shadow:inset 0 1px 0 rgba(255,255,255,.72)!important}
.chip:hover,.chip.active{box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 4px 12px color-mix(in srgb,var(--brand) 10%,transparent)!important}
.link-grid{gap:16px;padding-top:10px;padding-bottom:10px}
.link-card{isolation:isolate;box-shadow:0 7px 22px rgba(32,35,52,.055),inset 0 1px 0 rgba(255,255,255,.78)}
.link-card:hover{z-index:2;box-shadow:0 12px 30px rgba(32,35,52,.09),inset 0 1px 0 rgba(255,255,255,.92)}
button.link-card:focus,button.link-card:focus-visible{outline:0;box-shadow:0 12px 30px rgba(32,35,52,.09),0 0 0 3px color-mix(in srgb,var(--brand) 9%,transparent),inset 0 1px 0 rgba(255,255,255,.92)}
@media(max-width:600px){.link-grid{gap:14px}}
