*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f4f5f7;color:#1f2430}a{color:#2f5fda}button{cursor:pointer;border:1px solid #c7cbd4;background:#fff;border-radius:6px;padding:6px 12px;font-size:.9rem}button:hover{background:#eef1f8}.button,a.button{display:inline-block;border:1px solid #2f5fda;background:#2f5fda;color:#fff;border-radius:6px;padding:8px 14px;text-decoration:none}.button-danger{border-color:#c0392b;color:#c0392b}input,select,textarea{font-family:inherit;font-size:.95rem;padding:6px 8px;border:1px solid #c7cbd4;border-radius:6px}label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:#4a5060}.checkbox-label{flex-direction:row;align-items:center;gap:6px;font-size:.9rem}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#1f2a44;color:#fff;display:flex;align-items:center;gap:24px;padding:12px 24px;flex-wrap:wrap}.app-header-title{font-weight:700;font-size:1.1rem}.app-nav{display:flex;gap:16px;flex:1;flex-wrap:wrap}.app-nav a{color:#c9d3ef;text-decoration:none;font-size:.9rem}.app-nav a.active,.app-nav a:hover{color:#fff;text-decoration:underline}.app-header-user{display:flex;align-items:center;gap:10px;color:#c9d3ef;font-size:.9rem}.app-content{flex:1;padding:24px;max-width:1100px;width:100%;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.auth-page{display:flex;justify-content:center;align-items:center;min-height:100vh}.auth-form{background:#fff;padding:32px;border-radius:10px;box-shadow:0 4px 20px #00000014;width:320px;display:flex;flex-direction:column;gap:14px}.form-error{color:#c0392b;font-size:.9rem}.filters{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.contact-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.contact-list li a{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:12px 16px;border-radius:8px;text-decoration:none;color:inherit;box-shadow:0 1px 3px #0000000d}.contact-name{font-weight:600}.contact-nickname{font-weight:400;color:#6a7185}.badge{background:#2f5fda;color:#fff;font-size:.7rem;padding:2px 8px;border-radius:10px;margin-left:8px}.contact-categories{color:#6a7185;font-size:.85rem}.contact-form,.share-editor{background:#fff;padding:20px;border-radius:10px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}fieldset{border:1px solid #dde1ea;border-radius:8px;padding:12px}.category-checkboxes{display:flex;flex-wrap:wrap;gap:12px}.detail-section{background:#fff;padding:20px;border-radius:10px;box-shadow:0 1px 3px #0000000d;margin-bottom:20px}.simple-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.simple-list li{display:flex;align-items:center;gap:10px}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.address-form{border:1px solid #dde1ea;border-radius:8px;padding:16px;margin-bottom:16px}.address-actions{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}.map-picker{margin-top:10px}.map-hint,.hint{color:#6a7185;font-size:.85rem}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}.data-table th,.data-table td{text-align:left;padding:10px 12px;border-bottom:1px solid #eee}.tree-scroll{overflow:auto;background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000000d;padding:12px}.tree-node{cursor:pointer}.tree-node-box{fill:#eef1f8;stroke:#7a8bb5;stroke-width:1.5}.tree-node-self{fill:#dfe9ff;stroke:#2f5fda}.tree-node-name{font-size:13px;font-weight:600;fill:#1f2430}.tree-node-nickname{font-size:11px;fill:#6a7185}.tree-edge-label{font-size:10px;fill:#6a7185;text-anchor:middle}.share-profile-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:16px}.share-profile-card{background:#fff;padding:16px 20px;border-radius:10px;box-shadow:0 1px 3px #0000000d}.family-member-row{padding:8px 0;border-bottom:1px solid #eee}.share-public-page{max-width:640px;margin:40px auto;padding:0 20px}.shared-person-card{background:#fff;padding:20px;border-radius:10px;box-shadow:0 1px 3px #0000000d;margin-bottom:16px}.page-loading{padding:40px;text-align:center}
